O que é a entrega contínua?

Concluído

Aqui, você acompanhará a equipe da Tailspin discutir como um pipeline de CD (entrega contínua) pode ajudá-los na próxima versão.

A equipe da Tailspin está começando a se sentir melhor sobre o processo de build. Eles têm um processo automatizado em execução no Azure Pipelines, o que significa que o ambiente de build está estável. Marina sabe imediatamente quando precisa testar um artefato. Ela encontra menos bugs porque Paulo e Clara começaram a adicionar testes de unidade e testes de qualidade de código. Tudo parece tranquilo. Vamos dar uma olhada na equipe.

Reunião matinal

A equipe está na sala de reunião aguardando Mateus, o gerente de produto, que quer conversar com eles. Eles estão ansiosos para informá-lo sobre o progresso. Porém, quando Mateus entra, ele não parece feliz. Ele começa a falar imediatamente.

Mateus: Eu tinha uma reunião desta manhã com a equipe de gerenciamento. Eles querem saber por que estamos levando tanto tempo para lançar nossos jogos e sites. Nossos concorrentes mais próximos lançam recursos e jogos com muito mais rapidez do que nós. Precisamos acelerar as coisas. Não estou alertando apenas você. Estou alertando todas as equipes. O que podemos fazer para ajudar sua equipe a implantar mais rapidamente?

Paulo: Isso é um tanto repentino, mas estamos um pouco à frente de você. Estamos automatizando a forma como criamos nossos sites. Talvez agora seja hora de estender nossa automação para nosso processo de lançamento.

Mateus: Como você faria isso?

Clara: Criamos um pipeline de build automatizado usando o Azure Pipelines. Ele compila um artefato que Marina pode testar. Também poderíamos criar um pipeline de CD (entrega contínua).

Mateus: O que é um pipeline de CD?

Clara começa a explicar, mas é interrompida quando o telefone celular de Mateus toca. Mateus lê uma mensagem de texto e resmunga.

Mateus: Desculpe, mas isso é urgente. Preciso ir. Por que você não descobre mais sobre esse negócio de CD e me dá um retorno?

Paulo olha ao redor para a equipe.

Paulo: Café?

Paulo e o restante da equipe seguem para a lanchonete para elaborar 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.

Paulo: Clara, você pode nos dizer o que sabe sobre a entrega contínua?

Clara: 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 habilitar a entrega contínua de valor para nossos usuários finais.

A 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, a CD não é apenas a configuração de um pipeline, embora essa parte seja importante. A CD é a configuração de um ambiente de trabalho em que:

  • Temos um processo confiável e reproduzível para lançar e implantar software.
  • Automatizamos o máximo possível.
  • Nós não paramos de fazer algo que é difícil ou doloroso; em vez disso, fazemos com mais frequência para descobrir como transformar isso em rotina.
  • Mantemos tudo no controle do código-fonte.
  • Todos concordamos que concluído significa lançado.
  • Integramos qualidade ao processo. A qualidade nunca é postergada.
  • Somos todos responsáveis pelo processo de lançamento. Não trabalhamos mais em silos.
  • Sempre tentamos melhorar.

Já colocamos muitas dessas ideias em vigor e todos concordamos que elas aprimoram a forma como trabalhamos. CD é uma extensão do que já começamos.

Por que preciso de entrega contínua?

O CD ajuda as equipes de software a entregar atualizações de software confiáveis aos clientes em um ritmo acelerado. A CD também ajuda a garantir que os clientes e os participantes tenham os recursos e as correções mais recentes rapidamente.

Vamos continuar a escutar a equipe discutir esse assunto.

Paulo: Obrigado, Clara. Precisamos de CD porque, como todos nós sabemos, o mundo mudou. Novos recursos estão sendo lançados mais rapidamente. As atualizações e as correções de bugs precisam estar disponíveis imediatamente. Não é apenas nossa gerência que deseja acelerar nossas versões. A gerência está simplesmente se reagindo às demandas dos clientes. Se os clientes não conseguirem o que desejam de nós, vão procurar em outro lugar.

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

Paulo: Obrigado, todos. Vou propor que Clara e eu elaboremos uma POC (prova de conceito) simples. Acho que tudo ficará muito mais fácil de entender vendo um pipeline de CD em ação.

Marina: Boa sorte para os dois.

A equipe deixa Paulo e Clara para definir os detalhes.

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

Muitas ferramentas de desenvolvimento fornecem maneiras de publicar o aplicativo diretamente em um ambiente de destino, como o IIS (Serviços de Informações da Internet) da Microsoft 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 clique com o botão direito do mouse.

Publicar com clique com o botão direito do mouse é uma ótima forma de criar um protótipo rapidamente. Por exemplo, você pode publicar seu aplicativo com clique com o botão direito do mouse no Azure para compartilhar uma nova ideia com a equipe. No entanto, essa técnica tem limitações.

A entrega contínua fornece um modo consistente para você e sua equipe testar, implantar e monitorar continuamente o aplicativo sempre que você fizer check-in do código. Quando você publica seu aplicativo com clique com o botão direito do mouse, não há nenhuma garantia de que o código foi testado corretamente ou se comportará conforme o esperado no uso do mundo real.

Neste vídeo rápido, Abel Wang, defensor da nuvem na 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. Esses termos têm o mesmo significado? Neste breve vídeo, Abel explica a diferença.

Quais ferramentas de entrega contínua posso usar?

Após o término da reunião, Paulo e Clara planejam as próximas etapas. Eles usam o Azure Pipelines para criar o software. Eles querem considerar quais ferramentas, incluindo o Azure Pipelines, estão disponíveis para ajudá-los no processo de lançamento.

Clara: Por onde você quer começar?

Paulo: primeiro, precisamos chegar a um acordo quanto à ferramenta de gerenciamento de versão. Vamos verificar se a ferramenta escolhida que escolhemos:

  • Dá suporte ao nosso sistema de controle de versão.
  • Pode implantar em vários ambientes para que possamos testar e validar nosso trabalho.
  • Torna mais fácil definir nossas tarefas de implantação.
  • É fácil de estender.

Clara: O Azure DevOps integra-se a várias outras soluções de CI (integração contínua) e de CD. Há muitas soluções, e não estamos comprometidos com nenhuma delas. Se estivéssemos, faria sentido usar essa. Os sistemas de CI e CD populares incluem Jenkins, Circle CI, GitLab, Travis CI e Azure Pipelines.

Essas ferramentas têm semelhanças, mas cada uma delas também tem seus pontos fortes específicos. Algumas dessas ferramentas são de software livre, outras são gratuitas e outras ainda são pagas. Elas também oferecem integrações internas com outras ferramentas de software.

Por exemplo, Jenkins é de software livre. Ele tem muitos plug-ins e muitas empresas o usam. Você poderá executar Circle CI na nuvem ou localmente. Acho que precisaríamos personalizá-lo. O GitLab é um só aplicativo para todo o ciclo de vida do desenvolvimento de software. Pode ser maior do que queremos agora. Podemos continuar usando o Azure Pipelines.

Aqui está um breve vídeo em que Abel fala sobre o uso de melhores práticas de DevOps para implantar código no Azure.

Clara: Voto por continuar com o Azure Pipelines.

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

Clara: Legal. Vamos começar a trabalhar nos detalhes do pipeline.

Paulo e Clara vão para uma sala de conferência para planejar o pipeline de CD.