Integração contínua e entrega contínua (criando aplicativos de nuvem do mundo real com o Azure)

por Mike Wasson, Rick Anderson, Tom Dykstra

Baixar o projeto de ti ou baixar o livro eletrônico

A criação de aplicativos de nuvem do mundo real com o livro eletrônico do Azure é baseada em uma apresentação desenvolvida por Scott Guthrie. Ele explica 13 padrões e práticas que podem ajudá-lo a desenvolver com sucesso aplicativos Web para a nuvem. 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 o 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 fizer check-in no código para o repositório de origem, uma compilação será disparada automaticamente. A entrega contínua (CD) leva isso um pouco mais: depois que um Build e testes de unidade automatizados forem bem-sucedidos, você implantará automaticamente o aplicativo em um ambiente no qual 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 do ambiente, desde que esteja usando-os. O processo de CD pode configurar o ambiente de teste quando necessário, e você pode desligar o ambiente quando terminar o teste.

Fluxo de trabalho de integração contínua e entrega contínua

Em geral, recomendamos que você faça entrega contínua para seus ambientes de desenvolvimento e preparo. A maioria das equipes, mesmo na Microsoft, requer um processo manual de revisão e aprovação para a implantação de produção. Para uma implantação de produção, talvez você queira ter certeza de que ela acontece quando as principais pessoas da equipe de desenvolvimento estão disponíveis para suporte ou durante períodos de baixo tráfego. Mas não há nada para impedir que você automatize completamente seus ambientes de desenvolvimento e teste para que tudo o que um desenvolvedor precise fazer seja fazer o check-in de uma alteração e um ambiente esteja configurado para teste de aceitação.

O diagrama a seguir de um livro eletrônico de padrões e práticas da Microsoft sobre a 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 permite CI e CD econômicos

Automatizar esses processos no Azure é fácil. Como você está executando tudo na nuvem, não precisa comprar ou gerenciar servidores para suas compilações ou seus ambientes de teste. E você não precisa esperar que um servidor esteja disponível para fazer seu teste no. Com cada compilação que você faz, você poderia criar um ambiente de teste no Azure usando seu script de automação, executar testes de aceitação ou mais testes detalhados em relação a ele e, em seguida, quando terminar, bastará subdividi-lo. E se você só executar esse servidor por 2 horas ou 8 horas ou por dia, a quantidade de dinheiro que você precisa pagar por ele é mínima, pois você está pagando apenas pelo tempo em que um computador está realmente em execução. Por exemplo, o ambiente necessário para o aplicativo corrigir ti basicamente custa cerca de 1 cento por hora se você passar uma camada para cima do nível gratuito. Ao longo de um mês, se você só executou o ambiente uma hora por vez, seu ambiente de teste provavelmente custaria menos do que um expresso que você comprar em Starbucks.

Azure DevOps Services

O Azure DevOps Services fornece vários recursos para ajudá-lo com o desenvolvimento de aplicativos do planejamento à implantação.

  • Ele dá suporte ao controle de origem git (distribuído) e TFVC (centralizado).
  • Ele oferece um serviço de Build elástico, o que significa que ele cria servidores de compilação dinamicamente quando eles são necessários e os retira quando eles são concluídos. Você pode disparar automaticamente uma compilação quando alguém verificar as alterações no código-fonte e não precisar alocar e pagar por seus próprios servidores de compilação que estejam ociosos na maior parte do tempo. O serviço de compilação é gratuito contanto que você não exceda um determinado número de compilações. Se você pretende fazer um grande volume de compilações, você pode pagar um pouco mais para servidores de Build reservados.
  • Ele dá suporte à entrega contínua para o Azure.
  • Ele dá suporte ao teste de carga automatizado. O teste de carga é essencial para um aplicativo de nuvem, mas geralmente fica inativo até que seja tarde demais. O teste de carga simula o uso intensivo 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 da sala de equipe, o que facilita a comunicação e a colaboração em tempo real para pequenas equipes Agile.
  • Ele dá suporte ao gerenciamento de projeto ágil.

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

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

Resumo

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

Recursos

Para obter mais informações, consulte implantar um aplicativo Web no serviço Azure app.

Consulte também os seguintes recursos: