Introdução | Devops
- Introdução | Devops
Ambientes de desenvolvimento
- Development
- Stage
- Production
Deployment Pattern

Continuos
Continuos development- Esse estágio envolve comitar o código para o controlador de versão como o GIT
Continuos integration- Esse estágio é onde é executado várias tarefas quando o código é modificado (teste e compilação do projeto)
Continuos deployment- Esse é o estágio onde o código é buildado ou a aplicação é containirizada e enviada para o servidor
Continuos testing- Esse é o estágio onde executa os testes criados pelo desenvolvedor
Continuos monitoring- Coleta feedbacks para mandar ao desenvolvedor
O que é DevOps?
DevOps (desenvolvimento + operação) é uma cultura que preza o estreitamento entre as áreas de desenvolvimento e infraestrutura, através de ferramentas e metodologias, de modo que seja possível automatizar, monitorar, observar, testar e metrificar todas as etapas de desenvolvimento, até o deploy, fez com que ficasse ainda mais simples e rápido a melhoria na qualidade de código e do desenvolvimento como um todo.
Dentro os processos que visam o aumento dessa qualidade e também a facilitação de colocar um projeto em produção é o que chamamos de CI e CD .
O que é CI DevOps?
CI (Continuous Integration ou Integração Contínua) é uma prática em desenvolvimento utilizando DevOps em que DEVs frequentemente integram suas alterações de código em um repositório central. Após isso, são executados builds e testes para verificar a confiabilidade do código. Basicamente, a cada modificação relevante o código de uma pessoa DEV, o código será integrado com esse repositório central.
Normalmente, cada DEV desenvolve separadamente a funcionalidade em que está trabalhando em uma branch própria e só depois de terminado o desenvolvimento da funcionalidade essa branch é integrada com o repositório central. No CI, de tempos em tempos esse código modificado é integrado automaticamente com o repositório central e feito as devidas builds e testes.
A ideia com isso é receber um feedback rápido sobre as modificações que estão ocorrendo no código do projeto, adiantar e prever possíveis falhas, facilitando assim o processo de melhoria do código, reduzindo o tempo de validação desse código e de lançamento de uma nova atualização no software em questão.
Testes em CI DevOps
Dentre os testes que seriam ideais para a realização do processo de CI, temos:
- Testes de unidade: onde são testados unitariamente cada unidade do código (em geral cada método das classes do projeto);
- Testes de API: onde são testadas as integrações do software com serviços que fornecem dados internos ou externos ao sistema;
- Testes Funcionais: onde são testados os fluxos de trabalho dos usuários do software.
Com feedbacks mais rápidos de qualidade as pessoas desenvolvedoras podem corrigir mais rapidamente os erros em seus códigos e garantir que o código em si está entregando as funcionalidades que deveriam. Aumentando a confiabilidade do time com o código do software. Além de evitar conflitos entre as branchs quando muitas funcionalidades são desenvolvidas ao mesmo tempo.
!https://www.locaweb.com.br/blog/wp-content/uploads/2022/03/CI-e-CD-em-TI-conheca-esse-processo.png
O que é CD DevOps?
CD (Continuous Delivery – Entrega Contínua e/ou Implantação Contínua) é uma prática em desenvolvimento utilizando DevOps em que os times de desenvolvimento lançam novas funcionalidades de forma constante e automatizada. A ideia aqui é que quando uma nova funcionalidade é finalizada, automaticamente ela será disponibilizada no ambiente de testes e posteriormente no ambiente de produção (em alguns casos já vai direto para produção).
Como o código é testado regularmente por causa da CI, em geral os times que utilizam CI/CD tem uma confiabilidade maior de disponibilizar as novas funcionalidades mais rapidamente para seus clientes.
Com a CD são criadas sequências lógicas, chamadas de pipelines, para aplicação de checagens para validar se está tudo ok com o código e a funcionalidade. Facilitando também a desabilitação e/ou fácil correção de bugs ou algumas situações inesperadas.
Uma técnica muito utilizada por equipes que fazem o uso de CD é o teste A/B. Nesse caso consiste em liberar a nova funcionalidade para um número pequeno de usuários e validar se está tudo ocorrendo conforme o esperado. Caso a validação seja concluída com sucesso. A nova funcionalidade será disponibilizada para os demais usuários da aplicação.
Como tudo estará automatizado, em caso de erros, basta voltar a aplicação para a versão anterior para que as pessoas devs possam trabalhar na correção.
Algumas grandes empresas utilizam esses conceitos de CI e CD em suas equipes de desenvolvimento, e com certeza esse tipo de processo faz com que as equipes sejam mais autônomas e confiáveis, dando maturidade as pessoas desenvolvedoras, facilitando e tornando mais rápido todo processo de criação de novas funcionalidades e disponibilização das mesmas.
Platform Engineering vs DevOps vs Site Reliability Engineering (SRE)~ 📚

Monitoramento
