Basicamente, grande parte do que deveríamos fazer como desenvolvedores é automatizar tarefas. Lembro até daquele caso de um dev que automatizou todo o seu trabalho e sei lá quantos anos demoraram para descobrir que era tudo automatizado.

Quando pensamos em desenvolvimento e principalmente em: entrega, subir para produção, deploy ou qualquer outro nome que referenciamos à entregar o código para o ambiente de produção de modo seguro. É interessante também pensarmos em como podemos automatizar esse processo. Não estamos mais na era onde tudo é regido pelo FTP e temos que subir arquivo por arquivo de um site da web manualmente.

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.

CI e CD em TI conheça esse processo

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.

Desejo que tenha gostado do conteúdo, até a próxima!

Quer ter mais performance nos seus projetos? Conheça a Hospedagem VPS da Locaweb!

CLIQUE AQUI!