Share via


Conceber princípios de uma carga de trabalho crítica para a missão

A metodologia de conceção crítica para a missão é apoiada por cinco princípios fundamentais de design que servem de bússola para decisões de design subsequentes nas áreas de design críticas. Recomendamos vivamente que se familiarize com estes princípios para compreender melhor o seu impacto e as desvantagens associadas à não adesão.

Importante

Este artigo faz parte da série de cargas de trabalho críticas para a missão do Azure Well-Architected . Se não estiver familiarizado com esta série, recomendamos que comece com o que é uma carga de trabalho crítica para a missão?

Princípios de conceção críticos da missão Princípios

Estes princípios de design críticos para a missão ressoam e expandem os pilares de qualidade do Azure Well-Architected Framework — Fiabilidade, Segurança, Otimização de Custos, Excelência Operacional e Eficiência de Desempenho.

Fiabilidade

Fiabilidade máxima – a prossecução fundamental da solução mais fiável, garantindo que as compensações são devidamente compreendidas.

Princípio de conceção Considerações
Estrutura ativa/ativa Para maximizar a disponibilidade e alcançar a tolerância a falhas regionais, os componentes da solução devem ser distribuídos por vários Zonas de Disponibilidade e regiões do Azure através de um modelo de implementação ativo/ativo sempre que possível.
Redução do raio de explosão e isolamento de falhas A falha é impossível de evitar num ambiente de cloud multi-inquilino altamente distribuído, como o Azure. Ao antecipar falhas e impacto correlacionado, desde componentes individuais a regiões inteiras do Azure, uma solução pode ser concebida e desenvolvida de forma resiliente.
Observar o estado de funcionamento da aplicação Antes de os problemas que afetam a fiabilidade da aplicação poderem ser mitigados, primeiro têm de ser detetados e compreendidos. Ao monitorizar o funcionamento de uma aplicação relativamente a um estado de bom estado de funcionamento conhecido, torna-se possível detetar ou mesmo prever problemas de fiabilidade, permitindo que sejam tomadas medidas de remediação rápidas.
Automatização de unidades Uma das principais causas do período de indisponibilidade da aplicação é o erro humano, quer isso se deva à implementação de software ou configuração incorretamente testadas. Para minimizar a possibilidade e o impacto dos erros humanos, é fundamental lutar pela automatização em todos os aspetos de uma solução na cloud para melhorar a fiabilidade; testes automatizados, implementação e gestão.
Estrutura para autorrecuperação A recuperação automática descreve a capacidade de um sistema lidar automaticamente com falhas através de protocolos de remediação predefinidos ligados a modos de falha na solução. É um conceito avançado que requer um elevado nível de maturidade do sistema com monitorização e automatização, mas deve ser uma aspiração desde o início para maximizar a fiabilidade.
Evasão de complexidade Evite complexidades desnecessárias ao conceber a solução e todos os processos operacionais para impulsionar a fiabilidade e a eficiência de gestão, minimizando a probabilidade de falhas.

Eficiência de Desempenho

Desempenho sustentável e escalabilidade – estruturar a escalabilidade na solução ponto a ponto sem estrangulamentos de desempenho.

Princípio de conceção Considerações
Estruturar para aumentar horizontalmente O aumento horizontal é um conceito que se foca na capacidade de um sistema responder à procura através do crescimento horizontal. Isto significa que, à medida que o tráfego aumenta, são adicionadas mais unidades de recursos em paralelo em vez de aumentar o tamanho dos recursos existentes. Uma capacidade de sistemas para lidar com aumentos de tráfego esperados e inesperados através de unidades de escala é essencial para o desempenho e fiabilidade globais, reduzindo ainda mais o impacto de uma única falha de recurso.
Automatização para hiperescala As operações de dimensionamento em toda a solução devem ser totalmente automatizadas para minimizar o impacto de desempenho e disponibilidade de aumentos inesperados ou esperados no tráfego, garantindo que o tempo necessário para realizar operações de dimensionamento é compreendido e alinhado com um modelo para o estado de funcionamento da aplicação.
Validação e teste contínuos Os testes automatizados devem ser realizados em processos de CI/CD para impulsionar a validação contínua para cada alteração da aplicação. Os testes de carga numa linha de base de desempenho com experimentação de caos sincronizado devem ser incluídos para validar limiares, destinos e pressupostos existentes, bem como para ajudar a identificar rapidamente os riscos de resiliência e disponibilidade. Estes testes devem ser realizados em ambientes de teste e teste, mas também opcionalmente em ambientes de desenvolvimento. Também pode ser vantajoso executar um subconjunto de testes no ambiente de produção, especialmente em conjunto com um modelo de implementação azul/verde para validar novos selos de implementação antes de receber tráfego de produção.
Reduzir a sobrecarga com os serviços de computação geridos A utilização de serviços de computação gerida e arquiteturas em contentores reduz significativamente a sobrecarga administrativa e operacional contínua de conceber, operar e dimensionar aplicações ao transferir a implementação e manutenção da infraestrutura para o fornecedor de serviços gerido.
Desempenho da linha de base e identificar estrangulamentos Os testes de desempenho com telemetria detalhada de todos os componentes do sistema permitem a identificação de estrangulamentos no sistema, incluindo componentes que precisam de ser dimensionados em relação a outros componentes, e estas informações devem ser incorporadas num modelo de capacidade.
Capacidade do modelo Um modelo de capacidade permite o planeamento de níveis de dimensionamento de recursos para um determinado perfil de carga e, além disso, expõe o desempenho dos componentes do sistema em relação uns aos outros, permitindo assim o planeamento da alocação de capacidade em todo o sistema.

Excelência Operacional

Operações por design - Concebidas para durar com uma gestão operacional robusta e assertiva.

Princípio de conceção Considerações
Componentes pouco acoplados O acoplamento solto permite testes, implementações e atualizações independentes e a pedido para componentes da aplicação, ao mesmo tempo que minimiza as dependências entre equipas para suporte, serviços, recursos ou aprovações.
Automatizar processos de compilação e versão Os processos de compilação e versão totalmente automatizados reduzem o atrito e aumentam a velocidade de implementação de atualizações, trazendo repetibilidade e consistência entre ambientes. A automatização abrevia o ciclo de comentários dos programadores que enviam alterações para obter informações sobre a qualidade do código, a cobertura do teste, a resiliência, a segurança e o desempenho, o que aumenta a produtividade dos programadores.
Agilidade do programador A automatização de Integração Contínua e Implementação Contínua (CI/CD) permite a utilização de ambientes de desenvolvimento de curta duração com ciclos de vida associados ao de um ramo de funcionalidade associado, que promove a agilidade do programador e impulsiona a validação o mais cedo possível no ciclo de engenharia para minimizar o custo de engenharia dos erros.
Quantificar o estado de funcionamento operacional A instrumentação de diagnóstico completa de todos os componentes e recursos permite a observabilidade contínua de registos, métricas e rastreios, mas também facilita a modelação do estado de funcionamento para quantificar o estado de funcionamento da aplicação no contexto dos requisitos de disponibilidade e desempenho.
Ensaiar a recuperação e a falha prática Os exercícios de planeamento e prática de Continuidade de Negócio (BC) e Recuperação Após Desastre (DR) são essenciais e devem ser realizados com frequência, uma vez que as aprendizagens podem melhorar iterativamente os planos e procedimentos para maximizar a resiliência em caso de indisponibilidade não planeada.
Adotar melhorias operacionais contínuas Priorize a melhoria da rotina do sistema e da experiência do utilizador, utilizando um modelo de estado de funcionamento para compreender e medir a eficiência operacional com mecanismos de feedback para permitir que as equipas de aplicações compreendam e resolvam as lacunas de forma iterativa.

Segurança

Sempre seguro - Crie uma segurança ponto a ponto para manter a estabilidade da aplicação e garantir a disponibilidade.

Princípio de conceção Considerações
Monitorizar a segurança de toda a solução e planear respostas a incidentes Correlacione eventos de segurança e auditoria para modelar o estado de funcionamento da aplicação e identificar ameaças ativas. Estabeleça procedimentos automatizados e manuais para responder a incidentes com ferramentas de Gestão de Informações e Eventos de Segurança (SIEM) para controlo.
Modelar e testar contra potenciais ameaças Garanta a proteção de recursos adequada e estabeleça procedimentos para identificar e mitigar ameaças conhecidas, utilizando testes de penetração para verificar a mitigação de ameaças, bem como análise de código estático e análise de código.
Identificar e proteger pontos finais Monitorize e proteja a integridade da rede de pontos finais internos e externos através de capacidades de segurança e aplicações, como firewalls ou firewalls de aplicações Web. Utilize abordagens padrão da indústria para proteger contra vetores de ataque comuns, como ataques Denial-Of-Service Distribuídos (DDoS), como SlowLoris.
Proteger contra vulnerabilidades ao nível do código Identifique e mitigue vulnerabilidades ao nível do código, como scripting entre sites ou injeção de SQL, e incorpore a aplicação de patches de segurança em ciclos de vida operacionais para todas as partes da base de código, incluindo dependências.
Automatizar e utilizar o menor privilégio Impulsione a automatização para minimizar a necessidade de interação humana e implementar menos privilégios tanto na aplicação como no plano de controlo para proteger contra a exfiltração de dados e cenários de ator malicioso.
Classificar e encriptar dados Classifique os dados de acordo com o risco e aplique a encriptação padrão do setor inativo e em trânsito, garantindo que as chaves e certificados são armazenados de forma segura e geridos corretamente.

Otimização de Custos

Existem desvantagens de custos óbvias associadas à introdução de uma maior fiabilidade, que devem ser cuidadosamente consideradas no contexto dos requisitos de carga de trabalho.

Maximizar a fiabilidade pode afetar o custo financeiro global da solução. Por exemplo, a duplicação de recursos e a distribuição de recursos entre regiões para alcançar uma elevada disponibilidade tem implicações claras nos custos. Para evitar custos em excesso, não faça excesso de engenharia ou sobreaprovisionamento para além dos requisitos empresariais relevantes.

Além disso, há um custo adicional associado ao investimento em engenharia em conceitos fundamentais de fiabilidade, como adotar a infraestrutura como código, automatização de implementação e engenharia de caos. Isto tem um custo tanto em termos de tempo como de esforço, que podem ser investidos noutro local para fornecer novas funcionalidades e funcionalidades da aplicação.

Estrutura nativa da cloud

  • Serviços geridos nativos do Azure – os serviços geridos nativos do Azure são priorizados devido à menor sobrecarga administrativa e operacional, bem como à integração apertada com configuração e instrumentação consistentes na pilha de aplicações.

  • Alinhamento do mapa de objetivos – incorpore as novas e melhoradas capacidades de serviço do Azure à medida que se tornam Disponíveis Em Geral (GA) para se manterem próximos da margem principal do Azure.

  • Adotar capacidades de pré-visualização e mitigar lacunas conhecidas – embora os serviços de Disponibilidade Geral (GA) estejam priorizados para suporte, as pré-visualizações do serviço do Azure são exploradas ativamente para incorporação rápida, fornecendo feedback técnico e acionável aos grupos de produtos do Azure para resolver lacunas.

  • Alinhamento da zona de destino do Azure – implementável numa zona de destino do Azure e alinhado com a metodologia de conceção da zona de destino do Azure, mas também totalmente funcional e implementável num ambiente simples fora de uma zona de destino.

Passo seguinte

Reveja as preocupações cruzadas associadas a cargas de trabalho críticas para a missão.