Partilhar via


Planeje as soluções nativas da nuvem

Uma solução nativa da nuvem cria novo valor comercial criando novas cargas de trabalho (aplicativos) ou adicionando novos recursos às cargas de trabalho existentes. Quer esteja a desenvolver uma aplicação totalmente nova ou a adicionar novas funcionalidades a um sistema existente, o desenvolvimento nativo da nuvem é uma jornada através do planeamento, construção, implementação e otimização das suas cargas de trabalho. Essa estrutura fornece orientação completa para garantir que seu aplicativo nativo da nuvem esteja alinhado com os objetivos de negócios, bem arquitetado e entregue com risco mínimo.

Pré-requisitos:zona de aterrissagem do Azure

Diagrama mostrando os serviços da Microsoft e do Azure com pontos de decisão para cada serviço.

Defina objetivos de negócios para soluções nativas da nuvem

  1. Comece com objetivos de negócios claros. Defina os resultados específicos que sua solução nativa da nuvem deve alcançar, como habilitar um novo produto digital, entrar em um novo mercado, melhorar a experiência do cliente ou reduzir custos operacionais. Use indicadores mensuráveis, como crescimento da receita, redução do tempo de entrada no mercado ou volume de tíquetes de suporte para quantificar o sucesso. Para novos recursos, defina metas como melhorar a experiência do cliente, reduzir custos operacionais ou aumentar a escalabilidade do sistema.

  2. Identificar restrições e critérios de sucesso. Documente quaisquer restrições de negócios, como orçamento, conformidade ou prazos de entrega. Defina como é o sucesso para cada objetivo. Por exemplo, "lançar um novo portal do cliente até o 4º trimestre" ou "reduzir a latência de checkout em 40%". Esses critérios orientam a priorização e ajudam a avaliar as compensações durante o planejamento.

  3. Valide o alinhamento das partes interessadas. Confirme se todas as partes interessadas (comerciais e técnicas) concordam com os objetivos, restrições e qual é a definição de sucesso. Este alinhamento pode envolver seminários ou aprovações formais. O alinhamento precoce evita falhas de comunicação posteriores e evita retrabalhos dispendiosos, garantindo que todos partilhem as mesmas expectativas desde o início.

Definir requisitos para soluções nativas da nuvem

  1. Documentar requisitos funcionais. Documente os recursos que o sistema deve fornecer para atender às necessidades do usuário. Cada requisito deve estar ligado a um objetivo de negócios, garantindo que o esforço de desenvolvimento apoie diretamente os resultados desejados. Use entrevistas com partes interessadas e documentos de estratégia de negócios para identificar resultados de alto valor. Priorize recursos com base no valor comercial e na viabilidade técnica. Rastreie cada requisito até um objetivo de negócios mensurável para justificar sua inclusão.

  2. Estabelecer requisitos não funcionais. Os requisitos não funcionais definem requisitos técnicos para atender aos requisitos funcionais e à governança. Estabeleça os atributos de qualidade e as metas técnicas necessárias para dar suporte a esses recursos. Defina métricas de fiabilidade de destino, como objetivos de nível de serviço (SLOs) para disponibilidade, objetivos de ponto de recuperação (RPOs) e objetivos de tempo de recuperação (RTOs). Estabeleça uma linha de base de segurança. Crie um modelo de custo. Estabeleça metas de desempenho.

  3. Controle o escopo de soluções nativas em nuvem. Defina claramente o que está dentro do escopo versus fora do escopo para a versão inicial. É tentador incluir mais recursos "agradáveis de ter", mas o aumento do escopo pode comprometer cronogramas e orçamentos. Documente os limites da sua solução e implemente um processo de controle de alterações para quaisquer novas solicitações. Aprovar apenas alterações que apoiem diretamente as metas definidas e que possam ser entregues sem comprometer o cronograma ou orçamento. Adie ideias de prioridade mais baixa para uma lista de pendências futura. O gerenciamento rigoroso do escopo mantém a equipe focada em fornecer a funcionalidade mais valiosa primeiro dentro das restrições.

Planejar as arquiteturas nativas da nuvem

Uma arquitetura bem planejada é fundamental para atender aos seus objetivos e requisitos. Todas as principais decisões arquitetônicas envolvem compensações em escalabilidade, complexidade, custo e agilidade. As etapas e os pontos de decisão a seguir ajudam a criar um design nativo da nuvem alinhado com as práticas recomendadas:

Explore arquiteturas de nuvem nativas validadas

  1. Analise os fundamentos da arquitetura e as práticas recomendadas. Antes de inventar uma arquitetura do zero, revise as arquiteturas de referência validadas e os fundamentos do Centro de Arquitetura do Azure. Estilos de arquitetura familiares incluem explorar arquiteturas de referência validadas para cargas de trabalho comuns. Essas arquiteturas ajudam a acelerar as decisões de projeto e a reduzir os riscos.

  2. Selecione um estilo de arquitetura apropriado. Escolha um estilo de arquitetura com base nas características da sua carga de trabalho e nos recursos da equipe. Os estilos de arquitetura incluem N-tier (monolítico), microsserviços, orientado a eventos (baseado em mensagem), web-queue-worker. Por exemplo, se você precisar de desenvolvimento rápido para um aplicativo relativamente simples, um monólito de N camadas bem estruturado pode ser suficiente. Para uma aplicação em grande escala ou em rápida evolução com domínios distintos, os microsserviços ou as abordagens orientadas para eventos oferecem flexibilidade (à custa da complexidade). Na prática, muitos sistemas acabam com um estilo híbrido. Por exemplo, há um núcleo de microsserviços com alguns serviços compartilhados ou um subsistema controlado por eventos. A chave é entender as compensações de cada estilo e selecionar a abordagem que melhor atende aos seus requisitos de escalabilidade, resiliência e agilidade.

  3. Aplique as melhores práticas de design. Não importa qual estilo você escolha, siga os fundamentos da arquitetura de nuvem e as melhores práticas. O Centro de Arquitetura do Azure fornece um catálogo de padrões de design de nuvem (Retry, Circuit Breaker, CQRS) que abordam desafios comuns em cargas de trabalho distribuídas. A integração desses padrões em seu projeto pode melhorar a confiabilidade e o desempenho.

  4. Integre os cinco pilares nas decisões de projeto. Use o Well-Architected Framework para orientar as decisões em termos de confiabilidade, segurança, eficiência de desempenho, otimização de custos e excelência operacional. Estes cinco pilares devem servir de base a todas as decisões de conceção. Por exemplo, ao escolher um banco de dados, considere a confiabilidade (redundância, backup), o desempenho e o custo juntos para encontrar o equilíbrio certo. Documente onde você faz compensações entre pilares, como mais custo para um desempenho mais alto. Estas notas são valiosas para futuras revisões e governações.

Planejar integrações com sistemas existentes

  1. Inventariar todos os sistemas e serviços dependentes. Novas soluções nativas da nuvem raramente operam isoladamente, a menos que você seja uma startup em estágio inicial. Considere como sua nova carga de trabalho ou recurso se encaixa no ambiente. Mapeie os fluxos de dados e garanta a compatibilidade com as normas. Crie uma lista abrangente de todos os sistemas com os quais sua carga de trabalho interage. Essa lista inclui APIs internas, bancos de dados, provedores de identidade (Microsoft Entra ID), ferramentas de monitoramento, pipelines de CI/CD e sistemas locais acessados via VPN ou ExpressRoute. Use diagramas de arquitetura e mapas de dependência para visualizar essas relações.

  2. Classifique tipos e protocolos de integração. Categorize cada ponto de integração por tipo (autenticação, troca de dados, mensagens) e protocolo (REST, gRPC, ODBC, SAML, OAuth2). Essa classificação ajuda a identificar requisitos de compatibilidade e possíveis gargalos.

  3. Valide a integração de identidade e acesso. Certifique-se de que sua solução se integre ao provedor de identidade da organização. Por exemplo, use o Microsoft Entra ID para autenticação e autorização em vez de introduzir um novo sistema de identidade. Confirme o suporte para logon único (SSO), controle de acesso baseado em função (RBAC) e políticas de acesso condicional.

  4. Avalie a conectividade e a segurança da rede. Analise como sua carga de trabalho se conecta a outros sistemas. Valide regras de firewall, resolução de DNS e caminhos de roteamento. Para cenários híbridos, confirme se as configurações de Rota Expressa ou VPN estão em vigor e foram testadas. Use o Observador de Rede do Azure para monitorar e solucionar problemas de conectividade.

  5. Garanta a compatibilidade e a conformidade do fluxo de dados. Mapeie os fluxos de dados entre sistemas. Confirme formatos de dados, esquemas e requisitos de transformação. Garanta a conformidade com as políticas de residência, criptografia e retenção de dados.

  6. Teste os pontos de integração de forma precoce e contínua. Execute testes de integração durante os estágios iniciais de desenvolvimento. Use simulações ou stubs para sistemas indisponíveis. Automatize esses testes em seu pipeline de CI/CD usando ferramentas como Azure DevOps ou GitHub Actions. Monitore a latência, a taxa de transferência e as taxas de erro. Por exemplo, você deseja evitar uma API da qual seu aplicativo depende não suportar a carga necessária ou um firewall de rede bloqueando seu serviço.

  7. Contratos de integração de documentos e SLAs. Defina e documente o comportamento, a disponibilidade e o desempenho esperados de cada ponto de integração. Inclua lógica de repetição, configurações de tempo limite e mecanismos de fallback. Alinhe-se com os SLAs (Service Level Agreements, contratos de nível de serviço) dos sistemas dependentes.

Selecione os serviços e camadas de serviço apropriados do Azure

  1. Use guias de decisão para selecionar serviços que correspondam aos requisitos de carga de trabalho. O Azure fornece várias opções para executar o código do aplicativo, cada uma com prós e contras. Analise a visão geral das opções de tecnologia para identificar os serviços que se alinham com seus requisitos funcionais e não funcionais. Priorize as opções de plataforma como serviço (PaaS) porque esses serviços reduzem a sobrecarga operacional ao lidar com o gerenciamento de infraestrutura, a aplicação de patches e o dimensionamento automaticamente.

  2. Defina padrões de uso e requisitos de desempenho para selecionar camadas de serviço. A seleção da camada de serviço afeta o custo e a capacidade. Documente os volumes de transações esperados, as cargas simultâneas de usuários, os requisitos de armazenamento e as metas de desempenho, como tempos de resposta e taxa de transferência. Use essas métricas para selecionar uma camada de serviço inicial (SKU) que atenda aos requisitos de linha de base sem provisionamento excessivo significativo. Planeje ajustar as camadas com base nos padrões de uso reais após a implantação.

  3. Valide a compatibilidade de recursos entre as camadas de serviço selecionadas. Recursos críticos, como recursos avançados de segurança, opções de alta disponibilidade ou APIs de integração, variam de acordo com a camada de serviço. Crie uma matriz de recursos que mapeie os recursos necessários para SKUs disponíveis. Certifique-se de que a camada selecionada ofereça suporte a todos os recursos necessários para evitar migrações dispendiosas ou alterações arquitetônicas posteriores. Consulte a documentação específica do serviço para confirmar a disponibilidade e as limitações dos recursos.

Selecione quantas regiões usar

  1. Avalie as compensações de implantações em várias regiões. As arquiteturas de região única são mais simples e baratas, mas uma interrupção regional derrubaria seu aplicativo. As implantações em várias regiões podem alcançar maior disponibilidade (uma região pode falhar e os usuários são atendidos a partir de outra) e também podem melhorar o desempenho atendendo usuários da região mais próxima. A contrapartida é o aumento da complexidade na implantação e sincronização de dados. Você deve lidar com a replicação de dados entre regiões com possíveis problemas de consistência, roteamento de tráfego global e custos mais altos. Deixe que os seus requisitos de fiabilidade conduzam esta decisão.

  2. Utilizar metas de fiabilidade para orientar a estratégia regional. Defina objetivos de nível de serviço (SLO), objetivos de ponto de recuperação (RPO) e objetivos de tempo de recuperação (RTO) para determinar os requisitos regionais.

  3. Confirme a conformidade com os regulamentos de residência de dados. Trabalhe com equipes jurídicas e de conformidade para garantir que as escolhas regionais atendam às obrigações regulatórias.

Arquiteturas de documentos

  1. Crie um diagrama de arquitetura detalhado e um documento de design. A documentação suporta implementação, revisão e manutenção futura. Inclua serviços selecionados do Azure, SKUs, fluxos de dados e interações do usuário. Certifique-se de que o diagrama forneça uma representação visual clara da arquitetura para dar suporte à implementação e às revisões.

  2. Registre as principais decisões de design e compensações. Documente a lógica por trás das escolhas de arquitetura, incluindo requisitos não funcionais, como confiabilidade, segurança e desempenho. Destaque quaisquer compromissos feitos para equilibrar prioridades concorrentes.

Planejar a estratégia de implantação nativa da nuvem

Ao implantar a solução nativa da nuvem na produção, siga uma estratégia planejada em vez de um push ad hoc. Um plano de implantação sólido minimiza os efeitos sobre os usuários e fornece maneiras de recuperação se algo der errado.

Planejar práticas de desenvolvimento e implantação

As práticas de desenvolvimento e implantação garantem entrega consistente e prontidão operacional em todos os ambientes. Essas práticas reduzem o risco de implantação e melhoram a coordenação da equipe.

  1. Estabeleça práticas de DevOps para automação de implantação. As práticas de DevOps alinham as equipes de desenvolvimento e operações por meio de automação, controle de versão e pipelines de CI/CD. Use ferramentas como o Azure DevOps ou o GitHub Actions para automatizar fluxos de trabalho de compilação, teste e implantação. Essa abordagem reduz erros manuais, acelera os ciclos de liberação e fornece processos de implantação consistentes em todos os ambientes.

  2. Planeje a prontidão operacional para dar suporte às atividades de implantação. A prontidão operacional inclui procedimentos de monitoramento, alerta e resposta a incidentes para cenários de implantação. Documente runbooks de implantação e scripts de automação que abrangem procedimentos de reversão, verificações de integridade e etapas de solução de problemas. Armazene esses recursos em um local central, como o Azure DevOps, Wiki ou GitHub, para garantir a acessibilidade durante as atividades de implantação.

  3. Defina práticas de desenvolvimento que ofereçam suporte a implantações confiáveis. Use padrões de codificação, revisões por pares e testes automatizados para garantir a qualidade do código e a prontidão para implantação. Integre essas práticas ao seu pipeline de CI/CD para impor portas de qualidade antes da implantação. Inclua testes específicos de implantação, como testes de integração, testes de fumaça e validação de desempenho para verificar a prontidão do sistema para produção.

Planear a implementação para novas cargas de trabalho

  1. Use a exposição progressiva para limitar o impacto. Para uma nova aplicação (greenfield) sem utilizadores existentes, deve-se realizar um lançamento gradual. Implante na produção, mas exponha apenas para usuários internos ou um grupo piloto inicialmente. Essa abordagem é uma implantação canária para uma nova carga de trabalho. Se for realmente uma novidade e estiver isolado, é possível uma implantação única em produção completa, mas ainda é recomendada uma exposição gradual para detectar quaisquer problemas de forma controlada. Não libere o sistema para 100% dos utilizadores no primeiro dia antes de alguma validação do mundo real. Para obter mais informações, consulte WAF - Adotar um modelo de exposição progressiva.

  2. Documentar procedimentos operacionais e caminhos de escalonamento. Crie documentação clara para reiniciar serviços, aceder aos logs, lidar com problemas comuns e escalonar incidentes. Armazene essa documentação em um repositório compartilhado, como o SharePoint ou o GitHub, para garantir a disponibilidade para as equipes de suporte.

Planear a implantação de novas funcionalidades

  1. Planeje a integração de novos recursos usando o gerenciamento de alterações. Siga o processo de gestão de alterações da sua organização para controlar e documentar as alterações de produção. Defina procedimentos de reversão, como reverter versões de aplicativos ou restaurar backups de bancos de dados. Garanta a aprovação das partes interessadas antes da implantação para garantir o alinhamento com as metas de negócios. Para obter mais informações, consulte Gerenciar alterações no CAF.

  2. Utilize atualizações no local para alterações menores ou retrocompatíveis. Implante atualizações diretamente no ambiente de produção usando atualizações contínuas ou sinalizadores de recursos. Comece com uma pequena porcentagem de usuários ou instâncias. Monitore as métricas e os logs do sistema para validar a estabilidade antes da implantação completa.

  3. Use implantações paralelas (azul-verde) para alterações importantes ou de alto risco. Implante a nova versão em um ambiente separado. Encaminhe uma pequena parte do tráfego ao vivo para a nova versão para validar o comportamento. Se for bem-sucedido, mude todo o tráfego para a nova versão. Se surgirem problemas, reverta o tráfego para a versão original para garantir a continuidade.

  4. Planeje a transferência operacional para novas cargas de trabalho. Identificar a equipe responsável pela operação e suporte à solução pós-implantação. Defina o modelo de suporte (suporte de plantão ou horário comercial 24 horas por dia, 7 dias por semana) e garanta que todas as partes interessadas entendam seus papéis.

  5. Definir responsabilidades de propriedade e suporte. Confirme se a equipe de operações está preparada para dar suporte ao novo recurso. Atualize a documentação e os caminhos de escalonamento para refletir novas responsabilidades e garantir uma resposta rápida a incidentes.

Definir plano de reversão para soluções nativas da nuvem

Um plano de reversão permite que as equipes revertam rapidamente as alterações quando uma implantação falha ou introduz riscos. Um plano bem definido minimiza o tempo de inatividade, limita o impacto nos negócios e mantém a confiabilidade do sistema. Sempre estabeleça critérios e procedimentos de reversão antes de iniciar qualquer migração ou implantação.

  1. Defina falha de implantação. Colabore com intervenientes empresariais, responsáveis pelas cargas de trabalho e equipas de operações para decidir o que é considerado uma implantação com falha. Os exemplos incluem verificações de integridade com falha, desempenho insatisfatório, problemas de segurança ou métricas de sucesso não atendidas. Essa definição garante que as decisões de reversão estejam alinhadas com a tolerância ao risco da sua organização. Inclua condições específicas que acionam uma reversão em seu plano de implantação, como limites de uso da CPU, limites de tempo de resposta ou taxas de erro. Esta avaliação torna as decisões de reversão claras e consistentes durante os incidentes.

  2. Automatize as etapas de reversão em pipelines de CI/CD. Use ferramentas como Azure Pipelines ou GitHub Actions para automatizar processos de reversão. Por exemplo, configure pipelines para reimplantar uma versão anterior se as verificações de integridade falharem.

  3. Elabore instruções de reversão específicas para a carga de trabalho. Desenvolva etapas de reversão que correspondam ao seu tipo de carga de trabalho, ambiente e método de implantação. Por exemplo, implantações de infraestrutura como código exigem a reaplicação de modelos anteriores. As reversões de aplicativos envolvem a reimplantação de uma imagem de contêiner anterior. Anexe os scripts de reversão, instantâneos de configuração e modelos de infraestrutura como código ao seu plano de reversão. Esses ativos permitem uma execução rápida e reduzem a dependência da intervenção manual.

  4. Procedimentos de reversão de teste. Simule falhas de implantação em um ambiente de pré-produção para validar a eficácia da reversão. Identifique e resolva lacunas na automação, permissões ou dependências. Confirme se a reversão restaura o sistema para um estado estável e conhecido.

  5. Melhorar as estratégias de reversão Após cada evento de implantação ou reversão, realize uma retrospetiva para avaliar o que funcionou e o que não funcionou. Atualize os critérios de reversão, os procedimentos e a automação com base nas lições aprendidas, nas alterações arquitetônicas ou nas novas ferramentas. Mantenha a documentação para garantir que as estratégias de reversão permaneçam atuais e eficazes.

Próximo passo