Integração contínua e entrega contínua (criando aplicativos de nuvem Real-World com o Azure)

por Rick Anderson, Tom Dykstra

Baixar o Projeto de Correção ou Baixar E-book

O livro eletrônico Criando Aplicativos de Nuvem do Mundo Real com o Azure é baseado em uma apresentação desenvolvida por Scott Guthrie. Ele explica 13 padrões e práticas que podem ajudá-lo a desenvolver aplicativos Web para a nuvem com êxito. Para obter informações sobre o livro eletrônico, consulte o primeiro capítulo.

Os dois primeiros padrões de processo de desenvolvimento recomendados foram Automatizar Tudo e Controle do Código-Fonte e o terceiro padrão de processo os combina. A CI (integração contínua) significa que sempre que um desenvolvedor verifica o código no repositório de origem, um build é disparado automaticamente. A CD (entrega contínua) leva essa etapa adiante: depois que um build e testes de unidade automatizados forem bem-sucedidos, você implantará automaticamente o aplicativo em um ambiente em que poderá fazer testes mais detalhados.

A nuvem permite minimizar o custo de manutenção de um ambiente de teste, pois você paga apenas pelos recursos de ambiente, desde que você os esteja usando. Seu processo de CD pode configurar o ambiente de teste quando você precisar dele e você pode derrubar o ambiente quando terminar de testar.

Fluxo de trabalho de Integração Contínua e Entrega Contínua

Geralmente, recomendamos que você faça a entrega contínua para seus ambientes de desenvolvimento e preparo. A maioria das equipes, mesmo na Microsoft, exige um processo manual de revisão e aprovação para implantação de produção. Para uma implantação de produção, convém garantir que isso aconteça quando as pessoas-chave da equipe de desenvolvimento estiverem disponíveis para suporte ou durante períodos de baixo tráfego. Mas não há nada que impeça você de automatizar completamente seus ambientes de desenvolvimento e teste para que tudo o que um desenvolvedor tenha que fazer seja marcar em uma alteração e um ambiente esteja configurado para teste de aceitação.

O diagrama a seguir de um e-book padrões e práticas da Microsoft sobre entrega contínua ilustra um fluxo de trabalho típico. Clique na imagem para vê-la em tamanho total em seu contexto original.

Fluxo de trabalho de entrega contínua

Como a nuvem habilita CI e CD econômicos

Automatizar esses processos no Azure é fácil. Como você está executando tudo na nuvem, não precisa comprar nem gerenciar servidores para seus builds ou seus ambientes de teste. E você não precisa esperar que um servidor esteja disponível para fazer o teste. A cada build que você faz, você pode criar um ambiente de teste no Azure usando seu script de automação, executar testes de aceitação ou testes mais detalhados nele e, em seguida, quando terminar, basta derrubá-lo. E se você só executar esse servidor por 2 horas ou 8 horas ou um dia, a quantidade de dinheiro que você tem que pagar por ele é mínima, porque você só está pagando pelo tempo que uma máquina está realmente executando. Por exemplo, o ambiente necessário para o aplicativo Corrigir ele basicamente custa cerca de 1% por hora se você subir uma camada do nível gratuito. Ao longo de um mês, se você só administrasse o ambiente uma hora de cada vez, seu ambiente de teste provavelmente custaria menos do que um café com leite que você compra na Starbucks.

Azure DevOps Services

Azure DevOps Services fornece uma série de recursos para ajudá-lo com o desenvolvimento de aplicativos desde o planejamento até a implantação.

  • Ele dá suporte ao controle do código-fonte Git (distribuído) e TFVC (centralizado).
  • Ele oferece um serviço de build elástico, o que significa que ele cria dinamicamente servidores de build quando eles são necessários e os derruba quando eles terminam. Você pode iniciar automaticamente um build quando alguém faz check-in de alterações no código-fonte e você não precisa alocar e pagar por seus próprios servidores de build que ficam ociosos na maior parte do tempo. O serviço de build é gratuito, desde que você não exceda um determinado número de builds. Se você espera fazer um grande volume de builds, poderá pagar um pouco mais por servidores de build reservados.
  • Ele dá suporte à entrega contínua ao Azure.
  • Ele dá suporte a testes de carga automatizados. O teste de carga é fundamental para um aplicativo de nuvem, mas geralmente é negligenciado até que seja tarde demais. O teste de carga simula o uso intenso de um aplicativo por milhares de usuários, permitindo que você encontre gargalos e melhore a taxa de transferência antes de liberar o aplicativo para produção.
  • Ele dá suporte à colaboração de sala de equipe, o que facilita a comunicação e a colaboração em tempo real para pequenas equipes ágeis.
  • Ele dá suporte ao gerenciamento de projetos agile.

Para obter mais informações sobre os recursos de integração e entrega contínuas do Azure DevOps Services, consulte a documentação do Azure DevOps.

Se você estiver procurando uma solução de gerenciamento de projeto, colaboração em equipe e controle do código-fonte, marcar Azure DevOps Services. Inscreva-se no Azure DevOps Services.

Resumo

Os três primeiros padrões de desenvolvimento em nuvem foram sobre como implementar um processo de desenvolvimento repetível, confiável e previsível com baixo tempo de ciclo. No próximo capítulo , começaremos a examinar os padrões de arquitetura e codificação.

Recursos

Para obter mais informações, consulte Implantar um aplicativo Web em Serviço de Aplicativo do Azure.

Confira também os seguintes recursos: