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.

Navegue pelo índice

    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 Dedicada da Locaweb!

    CLIQUE AQUI!
    O autor

    Rodrigo Cardoso (Pokemaobr)

    Conhecido como Poke, é Streamer (Live "Coder") na Twitch, Web Developer e apresentador do talk show "The Velopers". Com bacharelado em Matemática e MBA em SOA, Poke atua como desenvolvedor e organizador de eventos de TI. É evangelista PHPSP e criador do PokePHP, focando em disseminar conteúdos técnicos e humor para a comunidade de desenvolvedores. Nas horas vagas, ele adora se conectar com a comunidade e compartilhar seu conhecimento de maneira divertida e informativa.

    Veja outros conteúdos desse autor