Padrões de design de nuvem que dão suporte à otimização de custos

Ao criar 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 mitigar os riscos originados de problemas específicos, o que pode afetar a confiabilidade, a segurança, o desempenho e as operações. Se não for mitigado, os riscos eventualmente aumentarão os custos. Esses padrões são apoiados pela experiência do mundo real, são projetados para modelos operacionais e de escala de nuvem 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. Os padrões de design que dão suporte ao pilar de Otimização de Custos se alinham à implementação de modelos de cobrança favoráveis, à redução do excesso de provisionamento, à alteração das dimensões de dimensionamento e à maximização do valor durante as migrações.

Padrões de design para otimização de custo

A tabela a seguir resume os padrões de design de nuvem que dão suporte às metas de otimização de custos.

Padrão Resumo
Verificação de declaração Separa os dados do fluxo de mensagens, fornecendo uma maneira de recuperar separadamente os dados relacionados a uma mensagem. Os sistemas de mensagens geralmente impõem limites ao tamanho da mensagem e o aumento dos limites de tamanho geralmente é um recurso premium. Reduzir o tamanho dos corpos de mensagens pode permitir que você use uma solução de mensagens mais barata.
Consumidores Concorrentes Aplica o processamento distribuído e simultâneo para lidar com itens com eficiência em uma fila. Esse padrão pode ajudá-lo a otimizar os custos habilitando o dimensionamento com base na profundidade da fila, até zero quando a fila estiver vazia. Ele também pode otimizar os custos, permitindo que você limite o número máximo de instâncias de consumidor simultâneas.
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. Isso maximiza a utilização de recursos de computação evitando a capacidade provisionada não utilizada por meio da agregação de componentes ou até mesmo cargas de trabalho inteiras em uma infraestrutura em pool. Orquestradores de contêiner são um exemplo comum.
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 redirecionar os custos de recursos que seriam gastos por nó na implementação do gateway. Os custos no modelo de processamento centralizado são frequentemente menores do que os do modelo distribuído.
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. Esse intermediário pode aumentar a longevidade do sistema existente, permitindo ainda a interoperabilidade com sistemas que usam uma tecnologia de evento ou mensagens diferente.
Publicador/Assinante Separa os componentes de uma arquitetura substituindo a comunicação direta cliente a serviço ou cliente para serviços por comunicação usando um agente de mensagens intermediário ou um barramento de eventos. Esse design pode habilitar uma abordagem controlada por eventos em sua arquitetura, que se casa bem com a cobrança baseada em consumo para evitar o excesso de provisionamento.
Nivelamento de Carga Baseado em Fila Controla o nível de solicitações ou tarefas de entrada armazenando-as em buffer em uma fila e permitindo que o processador de fila as manipule em um ritmo controlado. Como o processamento de carga é separado da solicitação ou da entrada de tarefas, você pode usar essa abordagem para reduzir a necessidade de provisionar recursos em excesso para lidar com a carga de pico.
Fragmentação Direciona o carregamento para um destino lógico específico para lidar com a solicitação específica, habilitando a colocação para otimização. Um sistema que implementa fragmentos geralmente se beneficia do uso de várias instâncias de recursos de computação ou armazenamento mais baratos em vez de um único recurso mais caro. Em muitos casos, essa configuração pode economizar dinheiro.
Hospedagem de Conteúdo Estático Otimiza a entrega de conteúdo estático para clientes de carga de trabalho usando uma plataforma de hospedagem projetada para essa finalidade. Os hosts de aplicativos dinâmicos geralmente são mais caros do que os hosts estáticos porque os hosts dinâmicos podem executar sua lógica de negócios codificada. O uso de uma plataforma de aplicativo para fornecer conteúdo estático não é econômico.
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. O objetivo dessa abordagem é maximizar o uso de investimentos existentes no sistema atualmente em execução e modernizar incrementalmente. Ele permite que você execute substituições de ALTO ROI antes de substituições de baixo ROI.
Limitação Impõe limites à taxa ou taxa de transferência de solicitações de entrada a um recurso ou componente. Os limites podem informar a modelagem de custos e podem até mesmo ser diretamente vinculados ao modelo de negócios do seu aplicativo. Eles também colocam limites superiores claros na utilização, o que pode ser fatorado no dimensionamento de recursos.
Valet Key Concede acesso restrito à segurança a um recurso sem usar um recurso intermediário para fazer proxy do acesso. Esse design descarrega o processamento como uma relação exclusiva entre o cliente e o recurso sem adicionar um componente para lidar diretamente com todas as solicitações do cliente. O benefício é mais dramático quando as solicitações de cliente são frequentes ou grandes o suficiente para exigir recursos proxy significativos.

Próximas etapas

Examine os padrões de design de nuvem que dão suporte aos outros pilares do Azure Well-Architected Framework: