Skip to main content

Introdução | Devops

  • Introdução | Devops

Ambientes de desenvolvimento

  • Development
  • Stage
  • Production

Deployment Pattern

Alt text

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)~ 📚

alt text

Monitoramento

alt text