Automação de plataforma e DevOps para o acelerador de zona de destino Serviço de Aplicativo
Este artigo fornece considerações de design e recomendações para automação de plataforma e DevOps que você pode aplicar ao usar o acelerador de zona de destino Serviço de Aplicativo do Azure. A automação de plataforma e o DevOps oferecem oportunidades para modernizar sua abordagem de implantação usando a infraestrutura como código.
Saiba mais sobre a área de design automação de plataforma e DevOps.
Considerações sobre o design
Automação e DevOps são práticas importantes no desenvolvimento de software moderno e Serviço de Aplicativo é uma plataforma poderosa para criar e implantar aplicativos Web. Usando as técnicas de automação e DevOps, você pode simplificar seu fluxo de trabalho e melhorar a qualidade e a confiabilidade de seus aplicativos.
Leve em conta as considerações a seguir ao se preparar para qualquer implantação de Serviço de Aplicativo.
Entenda os requisitos e as metas do projeto para que você possa determinar as ferramentas e abordagens mais apropriadas para automação. Esta etapa envolve identificar as tarefas que você deseja automatizar, como provisionamento de infraestrutura, implantação de código e teste. Ele também envolve a identificação das ferramentas e tecnologias que você usará para implementar a automação.
Torne a segurança uma prioridade máxima ao projetar uma automação e um pipeline de CI/CD em Serviço de Aplicativo. As tarefas de segurança podem incluir a implementação de medidas de autenticação e autorização para ajudar a proteger o acesso ao pipeline e seus componentes. Eles também podem incluir a implementação de criptografia e outras medidas de segurança para ajudar a proteger dados confidenciais.
Considere a integração e a implantação contínuas. Serviço de Aplicativo dá suporte à integração e à implantação contínuas de vários sistemas de controle do código-fonte, incluindo Azure Repos, GitHub e Bitbucket. Você pode usar essas ferramentas para automatizar o processo de build e implantação, garantindo que seu aplicativo esteja sempre atualizado e disponível.
Considere os scripts de automação. Serviço de Aplicativo fornece vários scripts de automação, incluindo modelos do PowerShell, da CLI do Azure, do Bicep e do ARM (Azure Resource Manager). Você pode usar esses scripts para automatizar tarefas comuns, como provisionamento e dimensionamento de recursos.
Avalie se você precisa usar agentes auto-hospedados. Dependendo da configuração de rede, os Serviços de Aplicativos podem não estar disponíveis na Internet pública. Se não estiverem, os agentes hospedados públicos não funcionarão para implantações. Planeje usar agentes auto-hospedados nesses cenários.
Adote uma estratégia de ramificação que ajudará você a colaborar e, ao mesmo tempo, fornecer flexibilidade. Mantenha sua estratégia simples, use o isolamento de recursos de curta duração e permita modificações no branch main por meio de solicitações de pull com análise de código manual e automatizada.
Garanta que a lógica de negócios seja verificada por testes de unidade no pipeline de build. Use testes de integração no pipeline de lançamento para marcar que todos os serviços e recursos trabalhem juntos após uma nova versão. Verifique os elementos de interface do usuário mais críticos usando testes automatizados de interface do usuário. Verifique os requisitos de desempenho não funcionais usando o teste de carga por meio de ferramentas como k6 e JMeter em seu ambiente de preparo.
Monitore e mantenha a automação e o pipeline de CI/CD. Esse processo pode envolver a implementação de ferramentas de registro em log e monitoramento para acompanhar o desempenho e a integridade do pipeline. Também pode envolver a implementação de um processo para revisar e atualizar regularmente o pipeline para garantir que ele permaneça eficaz e eficiente.
A chave para a automação de plataforma bem-sucedida e a implementação de pipeline de CI/CD no Serviço de Aplicativo é planejar e projetar cuidadosamente a solução, levando em conta as necessidades e os requisitos específicos dos aplicativos que você está implantando. Usando a abordagem certa, você pode criar uma plataforma escalonável, segura e eficiente para implantar e gerenciar seus aplicativos na nuvem.
Recomendações sobre design
Tenha em mente as práticas recomendadas a seguir ao implantar Serviço de Aplicativo.
Use o Azure DevOps para seu pipeline de CI/CD. O Azure DevOps fornece uma solução completa para automatizar o build, o teste e a implantação de seus aplicativos.
Use pipelines ou ações para:
- Maximize os benefícios das práticas aplicadas em toda a equipe.
- Remova grande parte da carga de reinventar processos.
- Obtenha previsibilidade e insights sobre a qualidade geral e a agilidade.
Faça implantações antecipadas e com frequência usando pipelines agendados e baseados em gatilho. Os pipelines baseados em gatilho garantem que as alterações passem pela validação adequada. Os pipelines agendados gerenciam o comportamento na alteração de ambientes.
Separe a implantação de infraestrutura da implantação do aplicativo. A infraestrutura principal muda com menos frequência do que os aplicativos. Trate cada tipo de implantação como um fluxo e um pipeline separados.
Use a infraestrutura como ferramentas de código como modelos arm ou Bicep para automatizar o provisionamento e o gerenciamento de seus recursos do Azure. Você pode usar modelos arm e Bicep para definir sua infraestrutura como código, facilitando o controle de versão, colaborando e automatizando a implantação de seus recursos.
Armazene segredos e outros artefatos confidenciais no repositório de segredos relevante (como segredos do Azure Key Vault ou do GitHub). Permitir que ações e outras partes de fluxo de trabalho as leiam conforme necessário.
Busque a simultaneidade de implantação maximizada evitando configurações e configurações codificadas.
Implemente a segurança shift-left incluindo ferramentas de verificação de segredos e vulnerabilidade, como scanners de contêiner, no início do pipeline.
Configure uma estratégia de implantação que implemente os princípios das implantações azul/verde ou canário para minimizar o tempo de inatividade e reduzir o risco de falhas de implantação. Isso permite que você implemente gradualmente novas versões do aplicativo para um pequeno subconjunto de usuários antes de distribuí-lo para toda a base de usuários.
Use Serviço de Aplicativo slots de implantação para implementar uma estratégia de implantação azul/verde. Isso permite validar e testar suas implantações em um ambiente de preparo antes de implantá-las em produção. Essa estratégia ajuda você a garantir uma implantação tranquila e bem-sucedida, validar alterações de aplicativo e minimizar o tempo de inatividade.
Monitore e acompanhe o desempenho e a disponibilidade de seus aplicativos usando o Application Insights. O Application Insights fornece insights em tempo real sobre a integridade e o uso de seus aplicativos. Ele também pode ajudá-lo a diagnosticar e resolve problemas que surgem rapidamente.
Implemente ferramentas e processos que facilitem a comunicação e a colaboração, como metodologias e ferramentas de desenvolvimento Agile para acompanhar e gerenciar tarefas e dependências. Os processos de automação de plataforma, DevOps e CI/CD bem-sucedidos dependem de colaboração e comunicação eficazes entre os membros da equipe.
A chave para automação de plataforma bem-sucedida, DevOps e CI/CD com Serviço de Aplicativo é projetar e implementar processos e sistemas escalonáveis, seguros, bem monitorados e colaborativos. Essas recomendações podem ajudar os engenheiros de TI e de nuvem a garantir que seus aplicativos e APIs forneçam o melhor desempenho e experiência do usuário possíveis.