Padrões de conceção da cloud que suportam a excelência operacional
Ao conceber arquiteturas de cargas de trabalho, deve utilizar padrões da indústria que abordam desafios comuns. Os padrões podem ajudá-lo a fazer trocas intencionais dentro das cargas de trabalho e a otimizar o resultado pretendido. Também podem ajudar a mitigar os riscos provenientes de problemas específicos, que podem afetar a fiabilidade, a segurança, o desempenho e os custos. Uma vez que as operações são cortadas em todas essas áreas, os riscos irão eventualmente afetar as operações de carga de trabalho. Estes padrões são suportados pela experiência do mundo real, foram concebidos para modelos de dimensionamento e operação na cloud e são inerentemente agnósticos para fornecedores. A utilização de padrões bem conhecidos como forma de uniformizar o design da carga de trabalho é, por si só, um componente de excelência operacional.
Muitos padrões de estrutura suportam diretamente um ou mais pilares de arquitetura. Os padrões de conceção que suportam o pilar Excelência Operacional utilizam topologias que fornecem uma base sólida para práticas de implementação seguras e facilitam a evolução da arquitetura ao longo do tempo, cenários de migração e observabilidade.
Padrões de conceção para excelência operacional
A tabela seguinte resume os padrões de design da cloud que suportam os objetivos de excelência operacional.
Padrão | Resumo |
---|---|
Camada Anti-corrupção | Protege os novos componentes do sistema das opções de comportamento ou implementação de sistemas legados ao adicionar uma camada de mediador às interações proxy entre componentes legados e novos. Este padrão ajuda a garantir que o novo design de componentes permanece desinsuflado por implementações legadas que podem ter diferentes modelos de dados ou regras de negócio quando se integra com estes sistemas legados. O padrão é especialmente útil nas migrações graduals do sistema. Reduz a dívida técnica em novos componentes, ao mesmo tempo que suporta componentes existentes. |
Coreografia | Coordena o comportamento dos componentes distribuídos autónomos numa carga de trabalho através da comunicação descentralizada condicionada por eventos. Este padrão pode ser útil quando espera atualizar ou substituir os serviços com frequência durante o ciclo de vida de uma carga de trabalho. Uma vez que os componentes distribuídos são autónomos, pode modificar a carga de trabalho com menos alterações gerais para o sistema. |
Consolidação de Recursos de Computação | Otimiza e consolida recursos de computação ao aumentar a densidade. Este padrão combina várias aplicações ou componentes de uma carga de trabalho numa infraestrutura partilhada. A consolidação conduz a uma plataforma de computação mais homogénea, que pode simplificar a gestão e a observabilidade, reduzir abordagens diferentes às tarefas operacionais e reduzir a quantidade de ferramentas necessárias. |
Carimbos de Implementação | Fornece uma abordagem para lançar uma versão específica de uma aplicação e a respetiva infraestrutura como uma unidade de implementação controlada, com base no pressuposto de que as mesmas versões ou versões diferentes serão implementadas em simultâneo. Este padrão está alinhado com objetivos de infraestrutura imutáveis, suporta modelos de implementação avançados e pode facilitar práticas de implementação seguras. |
Arquivo de Configuração Externo | Extrai a configuração para um serviço externo à aplicação para suportar atualizações dinâmicas aos valores de configuração sem precisar de alterações de código ou reimplementação de aplicações. Esta separação da configuração da aplicação do código da aplicação suporta a configuração específica do ambiente e aplica o controlo de versões aos valores de configuração. Os arquivos de configuração externos também são um local comum para gerir sinalizadores de funcionalidades para ativar práticas de implementação seguras. |
Agregação de Gateway | Simplifica as interações de cliente com a carga de trabalho ao agregar chamadas para vários serviços de back-end num único pedido. Esta topologia permite que a lógica de back-end evolua independentemente dos clientes, permitindo-lhe alterar as implementações de serviços em cadeia ou até mesmo as origens de dados, sem ter de alterar os pontos táteis do cliente. |
Descarregamento de Gateway | Descarrega o processamento de pedidos para um dispositivo de gateway antes e depois de reencaminhar o pedido para um nó de back-end. Adicionar um gateway de descarga ao processo de pedido permite-lhe gerir a configuração e a manutenção da funcionalidade descarregada a partir de um único ponto em vez de a gerir a partir de vários nós. |
Encaminhamento de Gateway | Encaminha pedidos de rede recebidos para vários sistemas de back-end com base em intenções de pedido, lógica de negócio e disponibilidade de back-end. O encaminhamento de gateways permite-lhe desassociar pedidos de back-end, o que, por sua vez, permite que os back-ends suportem modelos de implementação avançados, transições de plataforma e um único ponto de gestão para a resolução e encriptação de nomes de domínio em trânsito. |
Monitorização do Ponto Final do Estado de Funcionamento | Fornece uma forma de monitorizar o estado de funcionamento ou o estado de um sistema ao expor um ponto final especificamente concebido para esse fim. Uniformizar os pontos finais de estado de funcionamento a expor e o nível de análise nos resultados, na carga de trabalho pode ajudá-lo a fazer a triagem de problemas. |
Ponte de Mensagens | Fornece um intermediário para ativar a comunicação entre sistemas de mensagens incompatíveis devido ao protocolo ou formato. Esta desacoplação proporciona flexibilidade quando faz a transição de mensagens e tecnologia de eventos na carga de trabalho ou quando tem requisitos heterogéneos de dependências externas. |
Publicador/Editor | Dissocia os componentes de uma arquitetura ao substituir a comunicação cliente a serviço direta ou cliente a serviço pela comunicação através de um mediador de mensagens intermédio ou de um barramento de eventos. Esta camada de indirecção pode permitir-lhe alterar em segurança a implementação no lado do fabricante ou do subscritor sem ter de coordenar as alterações a ambos os componentes. |
Quarentena | Garante que os recursos externos cumprem um nível de qualidade acordado pela equipa antes de serem autorizados a consumi-los na carga de trabalho. A automatização e consistência nestas verificações fazem parte do ciclo de vida de desenvolvimento de software da carga de trabalho e das práticas de implementação seguras (SDP). |
Sidecar | Expande a funcionalidade de uma aplicação ao encapsular tarefas não básicas ou cruzadas num processo complementar que existe juntamente com a aplicação principal. Este padrão fornece uma abordagem para implementar a flexibilidade na integração de ferramentas que pode melhorar a observabilidade da aplicação sem exigir que a aplicação assuma dependências de implementação direta. Permite que a funcionalidade sidecar evolua de forma independente e seja mantida independentemente do ciclo de vida da aplicação. |
Strangler Fig | Fornece uma abordagem para substituir sistematicamente os componentes de um sistema em execução por novos componentes, muitas vezes durante uma migração ou modernização do sistema. Este 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. |
Passos seguintes
Reveja os padrões de conceção da cloud que suportam os outros pilares do Azure Well-Architected Framework: