O que é a entrega contínua?

Concluído

Aqui, você seguirá a equipe da Tailspin enquanto eles discutem como um pipeline de entrega contínua (CD) pode ajudá-los com seu próximo lançamento.

A equipe da Tailspin está começando a se sentir melhor sobre seu processo de construção. Eles têm um processo automatizado em execução no Azure Pipelines, o que significa que o ambiente de compilação é estável. Amita sabe imediatamente quando precisa testar um artefato. Ela encontra menos bugs porque Andy e Mara começaram a adicionar testes de unidade e testes de qualidade de código. A vida está bem. Vamos ver como está a equipa.

Reunião matinal

A equipe está na sala de reuniões esperando por Irwin, o gerente de produto, que quer falar com eles. Eles estão ansiosos para contar a ele sobre seu progresso. Mas quando Irwin entra, ele não parece feliz. Ele começa a falar imediatamente.

Irwin: Eu tive uma reunião esta manhã com a equipe de gestão. Eles querem saber por que estamos demorando tanto para lançar nossos jogos e sites. Nossos concorrentes mais próximos obtêm novos recursos e novos jogos muito mais rápido do que nós. Temos de acelerar as coisas. Eu não estou alertando apenas você. Estou a alertar todas as equipas. O que podemos fazer para ajudar sua equipe a implantar mais rapidamente?

Andy: Isso é um pouco repentino, mas estamos um pouco à sua frente. Temos vindo a automatizar a forma como construímos os nossos websites. Talvez agora seja hora de estender nossa automação ao nosso processo de lançamento.

Irwin: Como você faria isso?

Mara: Criamos um pipeline de compilação automatizado usando o Azure Pipelines. Ele constrói um artefato que Amita pode testar. Também poderíamos construir um pipeline de entrega contínua (CD).

Irwin: O que é um pipeline de CD?

Mara começa a explicar, mas é interrompida quando o celular de Irwin apita. Irwin lê uma mensagem de texto e murmura sob a respiração.

Irwin: Desculpe, mas isso é urgente. Tenho de ir. Por que vocês não descobrem este negócio de CD e voltam para mim em breve?

Andy olha em volta para sua equipe.

Andy: Café?

Andy e o resto da equipa dirigem-se ao café para criar um plano.

O que é a entrega contínua?

A equipe está se reunindo durante o café para descobrir como configurar um fluxo de trabalho de entrega contínua.

Andy: Mara, você pode nos dizer o que sabe sobre entrega contínua?

Mara: Para mim, CD e DevOps são inseparáveis. Lembre-se de que definimos DevOps como a união de pessoas, processos e produtos para permitir a entrega contínua de valor aos nossos usuários finais.

CD por si só é um conjunto de processos, ferramentas e técnicas que permitem a entrega rápida, confiável e contínua de software. Portanto, o CD não se trata apenas de configurar um pipeline, embora essa parte seja importante. CD é sobre a criação de um ambiente de trabalho onde:

  • Temos um processo confiável e repetível para liberar e implantar software.
  • Automatizamos o máximo possível.
  • Não deixamos de fazer algo que seja difícil ou doloroso; em vez disso, fazemo-lo com mais frequência para descobrirmos como torná-lo rotineiro.
  • Mantemos tudo sob controle do código-fonte.
  • Todos concordamos que feito significa libertado.
  • Incorporamos qualidade no processo. A qualidade nunca é uma reflexão tardia.
  • Somos todos responsáveis pelo processo de lançamento. Já não trabalhamos em silos.
  • Tentamos sempre melhorar.

Já colocámos muitas destas ideias em prática e todos concordamos que melhoraram a forma como trabalhamos. O CD é uma extensão do que já começámos.

Por que preciso de entrega contínua?

A CD ajuda as equipes de software a fornecer atualizações de software confiáveis para seus clientes em uma cadência rápida. O CD também ajuda a garantir que os clientes e as partes interessadas tenham os recursos e correções mais recentes rapidamente.

Vamos continuar a ouvir a equipe enquanto eles falam sobre isso.

Andy: Obrigado, Mara. Precisamos de CD porque, como todos sabemos, o mundo mudou. Novos recursos estão sendo lançados mais rapidamente. Atualizações e correções de bugs precisam estar disponíveis imediatamente. Não é só a nossa gestão que quer acelerar os nossos lançamentos. A gestão é simplesmente reagir às exigências dos nossos clientes. Se os clientes não conseguirem obter o que querem de nós, irão para outro lugar.

Tim: Concordo! Mal posso esperar para começar.

Andy: Obrigado, a todos. Vou propor que Mara e eu montemos uma prova de conceito simples (POC). Acho que tudo será muito mais fácil de entender se você puder ver um pipeline de CD em ação.

Amita: Boa sorte, vocês dois.

A equipe deixa Andy e Mara para acertar os detalhes.

Como a entrega contínua se compara à publicação com o botão direito do mouse?

Muitas ferramentas de desenvolvimento fornecem maneiras de publicar seu aplicativo diretamente em algum ambiente de destino, como o Microsoft Internet Information Services (IIS) ou o Azure. Por exemplo, você pode publicar um aplicativo ASP.NET Core no Azure usando o Visual Studio. Esse processo às vezes é chamado de publicação com o botão direito do mouse.

A publicação com o botão direito do mouse é uma ótima maneira de criar rapidamente um protótipo. Por exemplo, você pode clicar com o botão direito do mouse em publicar seu aplicativo no Azure para poder compartilhar uma nova ideia com sua equipe. No entanto, esta técnica tem limitações.

A entrega contínua fornece uma maneira consistente para você e sua equipe testarem, implantarem e monitorarem continuamente seu aplicativo sempre que você fizer check-in do código. Quando você clica com o botão direito do mouse em publicar seu aplicativo, não há garantia de que o código foi testado corretamente ou se comportará como esperado no uso do mundo real.

Neste pequeno vídeo, Abel Wang, Cloud Advocate da Microsoft, explica mais.

Como a entrega contínua se compara à implantação contínua?

Na comunidade DevOps, você pode ouvir os termos entrega contínua e implantação contínua. Estes termos significam a mesma coisa? Neste pequeno vídeo, Abel explica a diferença.

Que ferramentas de entrega contínua posso usar?

Após o término da reunião, Andy e Mara planejam os próximos passos. Eles usam o Azure Pipelines para criar seu software. Eles querem considerar quais ferramentas, incluindo o Azure Pipelines, estão disponíveis para ajudá-los com seu processo de lançamento.

Mara: Por onde você quer começar?

Andy: Primeiro, precisamos concordar com nossa ferramenta de gerenciamento de lançamentos. Vamos certificar-nos de que a ferramenta que escolhemos:

  • Suporta o nosso sistema de controlo de versão.
  • Pode implantar em vários ambientes para que possamos testar e validar nosso trabalho.
  • Facilita a definição de nossas tarefas de implantação.
  • É fácil de estender.

Mara: O Azure DevOps integra-se com várias outras soluções de integração contínua (CI) e CD. Muitas soluções estão por aí, e não estamos investidos em nenhuma delas. Se estivéssemos, faria sentido usá-lo. Os sistemas populares de CI e CD incluem Jenkins, Circle CI, GitLab, Travis CI e Azure Pipelines.

Estas ferramentas têm semelhanças, mas cada uma delas também tem pontos fortes particulares. Algumas dessas ferramentas são de código aberto, algumas são gratuitas e outras você tem que pagar. Eles também fornecem integrações integradas com outras ferramentas de software.

Por exemplo, Jenkins é de código aberto. Tem muitos plug-ins, e muitas empresas usam-no. Você pode executar o Circle CI na nuvem ou no local. Acho que precisaríamos personalizá-lo. O GitLab é uma única aplicação para todo o ciclo de vida de desenvolvimento de software. Pode ser maior do que queremos agora. Podemos continuar usando o Azure Pipelines.

Aqui está um pequeno vídeo onde Abel fala sobre como usar as práticas recomendadas de DevOps para implantar código no Azure.

Mara: Meu voto é para ficar com o Azure Pipelines.

Andy: Concordo. O Azure Pipelines tem funcionado muito bem para nós até agora, e não precisamos aprender outra nova tecnologia.

Mara: Ótimo. Vamos começar com os detalhes do pipeline.

Andy e Mara mudam-se para uma sala de conferências para planear o seu pipeline de CD.