Fundamentos DEVOPS/CI-CD
Introdução ao DevOps
O DevOps é um conjunto de práticas, princípios e ferramentas que integram o desenvolvimento de software (Dev) e as operações de TI (Ops) para melhorar a colaboração, a automação e a entrega contínua de software. Seu objetivo principal é reduzir o tempo entre a escrita do código e sua disponibilização em produção, garantindo qualidade e confiabilidade.
Os principais benefícios do DevOps incluem:
Automação de processos manuais, reduzindo erros e tempo de entrega.
Integração contínua para garantir que novas alterações sejam testadas constantemente.
Entrega contínua para disponibilizar software rapidamente com segurança.
Monitoramento contínuo para detectar falhas e melhorar a performance.
Integração e Entrega Contínua (CI/CD)
O termo CI/CD (Continuous Integration / Continuous Delivery ou Continuous Deployment) representa um conjunto de práticas essenciais no DevOps.
Integração Contínua (CI - Continuous Integration)
A integração contínua refere-se ao processo de automação da integração de código de múltiplos desenvolvedores em um repositório compartilhado. Cada nova alteração no código passa por testes automatizados para garantir que não ocorram falhas antes da fusão ao projeto principal.
Etapas da CI:
Desenvolvedores enviam código para um repositório (ex: GitHub, GitLab).
Um servidor de CI (ex: Jenkins, GitHub Actions, GitLab CI) verifica e executa testes automatizados.
Se os testes forem bem-sucedidos, o código é integrado ao repositório principal.
Entrega Contínua (CD - Continuous Delivery)
A entrega contínua estende a integração contínua ao automatizar a entrega do software a um ambiente de teste ou homologação. A implantação em produção ainda requer uma aprovação manual.
Implantação Contínua (Continuous Deployment)
Já na implantação contínua, todo o processo é automatizado, desde a integração até a implantação final em produção, sem necessidade de intervenção manual.
Ferramentas Comuns no DevOps e CI/CD
Algumas ferramentas populares para suportar DevOps e CI/CD incluem:
Controle de versão: Git, GitHub, GitLab, Bitbucket
Integração e entrega contínua: Jenkins, GitHub Actions, GitLab CI/CD, Travis CI
Containerização e orquestração: Docker, Kubernetes
Monitoramento e observabilidade: Prometheus, Grafana, ELK Stack
Slides Utilizados nas Aulas
Last updated