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.
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:
- Criando um pipeline de lançamento com o Team Foundation Server 2012. O livro eletrônico, os laboratórios práticos e o código de exemplo da Microsoft Patterns and Practices fornecem uma introdução detalhada à entrega contínua. Aborda o uso do Visual Studio Lab Management e do Visual Studio Release Management.
- Ferramentas e diretrizes do ALM Rangers DevOps. Os Rangers da ALM introduziram a solução complementar de exemplo do DevOps Workbench e as diretrizes práticas em colaboração com o livro Patterns & Practices building a Release Pipeline with TFS 2012, como uma ótima maneira de começar a aprender os conceitos do DevOps & Release Management para o TFS 2012 e chutar os pneus. As diretrizes mostram como criar uma vez e implantar em vários ambientes.
- Teste para entrega contínua com o Visual Studio 2012. O E-book da Microsoft Patterns and Practices explica como integrar testes automatizados à entrega contínua.
- WindowsAzureDeploymentTracker. Código-fonte para uma ferramenta projetada para capturar um build do TFS (com base em um rótulo), compilá-lo, empacotá-lo, permitir que alguém na função DevOps configure aspectos específicos dele e envie-o por push para o Azure. A ferramenta acompanha o processo de implantação para permitir que as operações "revertam" para uma versão implantada anteriormente. A ferramenta não tem dependências externas e pode funcionar autônomamente usando APIs TFS e o SDK do Azure.
- Entrega contínua: versões de software confiável por meio da Automação de Build, Teste e Implantação. Livro de Jez Humble.
- Solte-o! Projetar e implantar software Production-Ready. Livro de Michael T. Nygard.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de