Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Com o planejamento concluído, a próxima fase é construir e configurar a solução em um ambiente de desenvolvimento, aderindo às melhores práticas e garantindo a qualidade por meio de testes. Uma solução nativa da nuvem usa padrões de arquitetura escaláveis, resilientes e observáveis para maximizar os benefícios dos serviços do Azure. A construção em um ambiente de não produção com fortes práticas de teste e automação garante qualidade e prontidão para a implantação da produção.
Desenvolva novas soluções nativas da nuvem
O desenvolvimento nativo da nuvem requer uma abordagem estruturada que integre práticas de qualidade desde o início. Esta orientação ajuda você a criar soluções confiáveis, seguras e escaláveis por meio de práticas de desenvolvimento comprovadas.
Aplicar os princípios do Well-Architected Framework durante o desenvolvimento
Uma solução nativa da nuvem se beneficia da aplicação consistente dos princípios do Well-Architected Framework (WAF) Well-Architected Framework (WAF) fornece princípios essenciais que orientam o desenvolvimento efetivo nativo da nuvem. Integre estes cinco pilares no seu processo de desenvolvimento para criar aplicações robustas com um bom desempenho na produção.
Desenvolver soluções em um ambiente de não produção
Crie ambientes de desenvolvimento que espelhem as configurações de produção. Configure ambientes de não produção (desenvolvimento, teste, controle de qualidade) que espelhem de perto a configuração de produção. Quanto mais perto os seus ambientes de teste estiverem de produção, mais confiança terá de que as coisas funcionam no lançamento. Essa abordagem é especialmente importante ao adicionar novos recursos a uma carga de trabalho existente.
Use conjuntos de dados realistas que representem volumes de dados de produção. Teste com dados que correspondam ao tamanho e à complexidade das cargas de trabalho de produção. Conjuntos de dados grandes expõem gargalos de desempenho e problemas de dimensionamento que pequenos conjuntos de dados de teste ignoram. Anonimizar dados de produção ou gerar dados sintéticos que preservam as propriedades estatísticas de dados reais.
Implementar controles de custos para ambientes que não sejam de produção. Use o Azure DevTest Labs ou o agendamento de recursos para iniciar e parar recursos automaticamente quando não estiverem em uso. Aplique camadas de serviço apropriadas para cargas de trabalho de desenvolvimento e implemente limites de gastos para evitar custos inesperados e, ao mesmo tempo, manter a eficácia dos testes.
Para obter mais informações, consulte Configurar ambiente de teste no WAF.
Implementar alterações usando controle de origem e CI/CD
Armazene todo o código e configuração em um repositório Git. Rastreie o código do aplicativo, modelos de infraestrutura, scripts de implantação e arquivos de configuração no controle de versão. Essa prática fornece um histórico completo de mudanças e permite a colaboração entre os membros da equipe.
Divida o trabalho de desenvolvimento em compromissos pequenos e frequentes. Concluir o desenvolvimento de funcionalidades em pequenos incrementos que podem ser integrados e testados de forma independente. Essa abordagem reduz os conflitos de integração e facilita a identificação da origem dos problemas quando eles ocorrem.
Automatize compilações e testes em cada alteração de código. Configure pipelines de CI/CD que compilam código automaticamente, executam testes e implantam em ambientes que não são de produção quando as alterações são confirmadas. Loops de feedback rápidos ajudam os desenvolvedores a detetar e corrigir problemas rapidamente.
Use sinalizadores de recursos para controlar o lançamento de novas funcionalidades. Implemente alternâncias de recursos que permitem implantar código na produção, mantendo os novos recursos desativados até que estejam prontos para os usuários. Essa estratégia separa a implantação da versão e permite distribuições mais seguras e controladas.
Implementar monitoramento durante o desenvolvimento
Integre o Azure Monitor e o Application Insights no código do seu aplicativo. Adicione a coleta de dados de monitoramento para acompanhar as principais métricas de desempenho, interações do usuário e indicadores de integridade do sistema. Configure essas ferramentas durante o desenvolvimento para garantir que elas funcionem corretamente antes da implantação em produção.
Implemente o log estruturado em todo o seu aplicativo. Use formatos de log consistentes e inclua informações contextuais como IDs de usuário, IDs de solicitação e identificadores de processos de negócios. Estruture seus logs como objetos JSON para habilitar recursos poderosos de consulta e análise.
Configure alertas para métricas-chave e condições de falha. Configure um monitoramento proativo que o notifica quando as taxas de erro aumentam, os tempos de resposta diminuem ou as métricas de negócios ficam fora dos intervalos esperados. Defina limites de alerta com base em seus objetivos de nível de serviço e requisitos de negócios.
Crie painéis que forneçam visibilidade sobre o desempenho do sistema. Crie painéis de monitoramento que mostrem a integridade de seu aplicativo, infraestrutura e processos de negócios. Inclua métricas importantes para as equipes técnicas e as partes interessadas do negócio para permitir decisões baseadas em dados.
Para obter mais informações, consulte Projetar um sistema de monitoramento e Instrumentar um aplicativo no WAF.
Valide soluções nativas da nuvem com testes
Testes abrangentes validam se sua solução atende aos requisitos de negócios e tem um desempenho confiável em condições reais. Cada tipo de teste serve um propósito específico para garantir a qualidade da solução.
Execute testes funcionais de ponta a ponta para verificar fluxos de trabalho de negócios. Teste cenários de usuário completos, desde a autenticação até a conclusão da transação usando dados e interações realistas. Valide se os novos recursos funcionam corretamente e se a funcionalidade existente permanece intacta após as alterações. Execute testes de regressão para detetar efeitos colaterais não intencionais do novo desenvolvimento.
Realizar testes de aceitação do usuário com as partes interessadas do negócio. Envolva usuários reais ou representantes de negócios para validar se a solução atende às suas necessidades e expectativas. Peça-lhes que testem cenários-chave em um ambiente UAT e forneçam feedback sobre usabilidade e funcionalidade. Obtenha a aprovação formal das partes interessadas antes de prosseguir para a implantação da produção.
Execute testes de carga em condições realistas para validar o desempenho. Use o Teste de Carga do Azure para simular os volumes de usuário esperados e a taxa de transferência de dados. Teste em níveis de carga de pico e além para identificar gargalos de desempenho e limites de escala. Meça os tempos de resposta, a taxa de transferência e a utilização de recursos para garantir que sua solução atenda aos requisitos de desempenho.
Execute testes de segurança e conformidade para identificar vulnerabilidades. Execute verificações de segurança automatizadas no código do aplicativo, imagens de contêiner e configurações de infraestrutura. Use o Microsoft Defender for Cloud para verificar se há erros de configuração de segurança e violações de conformidade. Resolva vulnerabilidades de alto risco antes da implantação e implemente controles de compensação para riscos aceitos.
Resolva problemas críticos antes da implantação da produção. Trate as fases de teste como portões de qualidade que devem ser passados antes de prosseguir. Corrija problemas de desempenho que impeçam o cumprimento de contratos de nível de serviço e resolva vulnerabilidades de segurança que representam riscos significativos. Solucione defeitos funcionais que afetam os principais processos de negócios. Documente problemas conhecidos de baixa prioridade com planos para resolução futura.
Mantenha conjuntos de testes automatizados de unidade e integração. Crie testes automatizados abrangentes que validam componentes individuais e suas interações com dependências externas. Execute esses testes como parte do pipeline de CI/CD e após cada correção de bug para evitar regressões. Um conjunto de testes automatizado robusto permite uma entrega contínua e confiante em ambientes nativos da nuvem.
Criar infraestrutura reutilizável
Depois que sua solução modernizada passar em todos os testes no ambiente de não produção, você deverá capturar a configuração e as configurações da infraestrutura como código, para que possa ser facilmente replicada em ambientes de produção e futuros. Infraestrutura reutilizável significa usar modelos de infraestrutura como código (IaC) e automação para consistência e velocidade.
Crie modelos IaC para configurações comprovadas. Pegue a arquitetura final do seu ambiente de teste (que espelha o que você deseja no prod) e codifice-a. Use modelos de Bicep, Terraform ou Azure Resource Manager para definir sua infraestrutura. Parametrize estes modelos para que possam ser reutilizados em diferentes fases, como desenvolvimento, teste, produção, com pequenos ajustes como nomes ou tamanhos. Essa configuração garante que o ambiente de produção criado corresponda ao que você testou. Ele evita o erro humano ao clicar manualmente no portal do Azure para criar recursos. Isso também significa que, se você precisar recriar o ambiente, como para recuperação de desastres ou implantação em novas regiões, terá a implantação da infraestrutura pronta. Para obter mais informações, consulte CAF Manage - Gerir implementações baseadas em código.
Armazene modelos no controle de versão. Verifique seu código de infraestrutura em um repositório Git (junto com o código do aplicativo ou em um repositório separado). Use o GitHub ou o Azure DevOps para gerenciar ativos IaC com controle de versão adequado. O controle de versão permite revisões de código, oferece suporte à colaboração em equipe e incentiva a reutilização de modelos em projetos. Essa abordagem fornece rastreabilidade completa para alterações na infraestrutura e oferece suporte a recursos de reversão quando ocorrem problemas.
Automatize a instalação e a configuração de dependências. Crie scripts ou tarefas de pipeline para implantar esses modelos e também lidar com quaisquer tarefas de configuração ou propagação necessárias. Utilize o Azure Pipelines, GitHub Actions para executar trabalhos de implantação que adotam o modelo IaC e implantam em uma assinatura/grupo de recursos alvo. Automatize a instalação de dependências de aplicativos, a definição de configurações e o gerenciamento de segredos. O objetivo é a configuração do ambiente com um clique (ou um comando): do nada para um ambiente totalmente em execução que corresponda ao que você testou.
Teste o IaC e a automação de ponta a ponta. Use uma assinatura ou grupo de recursos do Azure separado como um ambiente de teste e pratique a implementação de todo o seu ambiente do zero usando os seus modelos e scripts. Teste se os seus templates, pipelines e scripts IaC podem criar a pilha de infraestrutura completa a partir de zero. Teste diferentes cenários de implantação, incluindo implantação inicial, atualizações de configuração e procedimentos de reversão para confirmar se a automação funciona corretamente.
Para obter mais informações, consulte Projetar uma alteração de fornecimento de desenvolvimento de carga de trabalho e Infraestrutura como código no WAF.
Criar documentação de implantação
Mesmo com a automação, ter uma boa documentação em torno das implantações é crucial para a auditoria, para a integração de novos membros da equipe e para a manutenção futura. A documentação de implantação deve abranger configurações, procedimentos e etapas de reversão em formato legível por humanos.
Documente as definições e etapas de configuração. Registre todas as configurações específicas do ambiente, cadeias de conexão, pontos de extremidade de serviço e configurações de segurança na documentação acessível. Inclua instruções de implantação passo a passo, requisitos de pré-requisitos e etapas de validação pós-implantação. Esta documentação permite implantações consistentes e oferece suporte à solução de problemas quando ocorrem problemas. Se um novo engenheiro precisasse fazer uma implementação, poderia ler este documento para seguir os passos ou compreender o resultado do pipeline.
Atualizar procedimentos de reversão e recuperação. Depois de concluir os testes, formalize as etapas para reverter as alterações quando ocorrerem problemas de implantação. Inclua gatilhos de reversão, procedimentos de backup e restauração de dados e etapas de validação de recuperação. Teste os procedimentos de reversão e recuperação regularmente para garantir que funcionem corretamente quando necessário. Esta preparação reduz o tempo de inatividade.
Reúna toda esta documentação num local central. Use o SharePoint, o GitHub ou um wiki para armazenar essas informações. Certifique-se de que a equipe e o pessoal de suporte saibam onde encontrá-lo. Em um incidente de alto estresse, ter documentos claros à mão é um salva-vidas.