Padrões de design de nuvem que dão suporte à excelência operacional
Ao projetar arquiteturas de carga de trabalho, você deve usar padrões do setor que abordam desafios comuns. Os padrões podem ajudá-lo a fazer compensações intencionais dentro de cargas de trabalho e otimizar para o resultado desejado. Eles também podem ajudar a atenuar os riscos originados de problemas específicos, o que pode afetar a confiabilidade, a segurança, o desempenho e o custo. Como as operações são cortadas em todas essas áreas, os riscos eventualmente afetarão as operações de carga de trabalho. Esses padrões são apoiados pela experiência do mundo real, são projetados para escala de nuvem e modelos operacionais e são inerentemente independentes do fornecedor. Usar padrões conhecidos como uma maneira de padronizar seu design de carga de trabalho é um componente de excelência operacional.
Muitos padrões de design dão suporte direto a um ou mais pilares de arquitetura. Padrões de design que dão suporte ao pilar excelência operacional usam topologias que fornecem uma base sólida para práticas de implantação seguras e facilitam a evolução da arquitetura ao longo do tempo, cenários de migração e observabilidade.
Padrões de design para excelência operacional
A tabela a seguir resume os padrões de design de nuvem que dão suporte às metas de excelência operacional.
Padrão | Resumo |
---|---|
Camada anticorrupção | Protege novos componentes do sistema contra as opções de comportamento ou implementação de sistemas herdados adicionando uma camada de mediador a interações de proxy entre componentes herdados e novos. Esse padrão ajuda a garantir que o novo design de componente permaneça não referenciado por implementações herdadas que podem ter diferentes modelos de dados ou regras de negócios quando você se integra a esses sistemas herdados. O padrão é especialmente útil em migrações graduais do sistema. Ele reduz a dívida técnica em novos componentes enquanto ainda dá suporte a componentes existentes. |
Coreografia | Coordena o comportamento de componentes distribuídos autônomos em uma carga de trabalho usando comunicação descentralizada controlada por eventos. Esse padrão pode ser útil quando você espera atualizar ou substituir serviços com frequência durante o ciclo de vida de uma carga de trabalho. Como os componentes distribuídos são autônomos, você pode modificar a carga de trabalho com menos alterações gerais no sistema. |
Consolidação de Recursos de Computação | Otimiza e consolida recursos de computação aumentando a densidade. Esse padrão combina vários aplicativos ou componentes de uma carga de trabalho em uma infraestrutura compartilhada. A consolidação leva a uma plataforma de computação mais homogênea, que pode simplificar o gerenciamento e a observabilidade, reduzir abordagens diferentes para tarefas operacionais e reduzir a quantidade de ferramentas necessárias. |
Carimbos de implantação | Fornece uma abordagem para liberar uma versão específica de um aplicativo e sua infraestrutura como uma unidade controlada de implantação, com base na suposição de que as mesmas versões ou versões diferentes serão implantadas simultaneamente. Esse padrão se alinha às metas de infraestrutura imutáveis, dá suporte a modelos de implantação avançados e pode facilitar práticas de implantação seguras. |
Repositório de configuração externo | Extrai a configuração para um serviço externalizado para o aplicativo para dar suporte a atualizações dinâmicas para valores de configuração sem exigir alterações de código ou reimplantação de aplicativo. Essa separação da configuração do aplicativo do código do aplicativo dá suporte à configuração específica do ambiente e aplica o controle de versão aos valores de configuração. Os repositórios de configuração externos também são um local comum para gerenciar sinalizadores de recursos para habilitar práticas de implantação seguras. |
Agregação de Gateway | Simplifica as interações do cliente com sua carga de trabalho agregando chamadas para vários serviços de back-end em uma única solicitação. Essa topologia permite que a lógica de back-end evolua independentemente dos clientes, permitindo que você altere as implementações de serviço encadeado ou até mesmo fontes de dados, sem a necessidade de alterar os pontos de toque do cliente. |
Descarregamento de Gateway | Descarrega o processamento de solicitação para um dispositivo de gateway antes e depois de encaminhar a solicitação para um nó de back-end. Adicionar um gateway de descarregamento ao processo de solicitação permite que você gerencie a configuração e a manutenção da funcionalidade descarregada de um único ponto em vez de gerenciá-la de vários nós. |
Roteamento de Gateway | Roteia solicitações de rede de entrada para vários sistemas de back-end com base em intenções de solicitação, lógica de negócios e disponibilidade de back-end. O roteamento de gateway permite que você desacopla solicitações de back-ends, o que, por sua vez, permite que seus back-ends ofereçam suporte a modelos de implantação avançados, transições de plataforma e um ponto único de gerenciamento para resolução de nomes de domínio e criptografia em trânsito. |
Monitoramento do Ponto de Extremidade de Integridade | Fornece uma maneira de monitorar a integridade ou status de um sistema expondo um ponto de extremidade projetado especificamente para essa finalidade. Padronizar quais pontos de extremidade de integridade expor e o nível de análise nos resultados em sua carga de trabalho pode ajudá-lo a fazer a triagem de problemas. |
Ponte de Mensagens | Fornece um intermediário para habilitar a comunicação entre sistemas de mensagens que, de outra forma, são incompatíveis devido ao protocolo ou formato. Essa desacoplamento fornece flexibilidade quando você faz a transição de mensagens e tecnologia de eventos em sua carga de trabalho ou quando você tem requisitos heterogêneos de dependências externas. |
Publicador/Assinante | Separa os componentes de uma arquitetura substituindo a comunicação direta cliente a serviço ou cliente para serviços por meio de um agente de mensagens intermediário ou barramento de eventos. Essa camada de indireção pode permitir que você altere com segurança a implementação no lado do publicador ou do assinante sem a necessidade de coordenar alterações em ambos os componentes. |
Quarentena | Garante que os ativos externos atendam a um nível de qualidade acordado pela equipe antes de serem autorizados a consumi-los na carga de trabalho. A automação e a consistência nessas verificações fazem parte do ciclo de vida de desenvolvimento de software da carga de trabalho e das SDP (práticas de implantação segura). |
Sidecar | Estende a funcionalidade de um aplicativo encapsulando tarefas nãoprimárias ou transversais em um processo complementar que existe junto com o aplicativo main. Esse padrão fornece uma abordagem para implementar flexibilidade na integração de ferramentas que pode aprimorar a observabilidade do aplicativo sem exigir que o aplicativo assuma dependências de implementação diretas. Ele permite que a funcionalidade sidecar evolua de forma independente e seja mantida independentemente do ciclo de vida do aplicativo. |
Estrangulador Fig | Fornece uma abordagem para substituir sistematicamente os componentes de um sistema em execução por novos componentes, geralmente durante uma migração ou modernização do sistema. Esse padrão fornece uma abordagem de melhoria contínua, na qual a substituição incremental por pequenas alterações ao longo do tempo é preferencial, em vez de grandes alterações sistêmicas que são mais arriscadas de implementar. |
Próximas etapas
Examine os padrões de design de nuvem que dão suporte a outros pilares do Azure Well-Architected Framework: