O que é a entrega contínua?
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.