Padrões de design de nuvem que dão suporte à otimização de custos
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 nas cargas de trabalho e otimizar o resultado desejado. Eles também podem ajudar a mitigar os riscos originados de problemas específicos, que podem afetar a confiabilidade, a segurança, o desempenho e as operações. Se não forem mitigados, os riscos acabarão aumentando os custos. 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 de fornecedor. O uso de padrões conhecidos como uma forma de padronizar o design da carga de trabalho é um componente da excelência operacional.
Muitos padrões de design suportam diretamente um ou mais pilares de arquitetura. Os padrões de design que dão suporte ao pilar de Otimização de Custos se alinham com a implementação de modelos de cobrança favoráveis, reduzindo o provisionamento excessivo, alterando as dimensões de dimensionamento e maximizando o valor durante as migrações.
Padrões de design para otimização de custos
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 muitas vezes impõem limites ao tamanho das mensagens, e o aumento dos limites de tamanho costuma ser um recurso premium. Reduzir o tamanho do corpo das mensagens pode permitir que você use uma solução de mensagens mais barata. |
Consumidores Concorrentes | Aplica processamento distribuído e simultâneo para lidar com itens em uma fila com eficiência. Esse padrão pode ajudar você a otimizar custos, permitindo o dimensionamento baseado na profundidade da fila, até zero quando a fila está vazia. Também pode otimizar custos, permitindo limitar o número máximo de instâncias de consumidores simultâneas. |
Consolidação de Recursos de Computação | Otimiza e consolida os 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. Os orquestradores de contêineres são um exemplo comum. |
Descarregamento de Gateway | Descarrega o processamento de solicitações 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ó para a implementação do gateway. Os custos no modelo de processamento centralizado são frequentemente inferiores aos do modelo distribuído. |
Ponte de mensagens | Fornece um intermediário para permitir a comunicação entre sistemas de mensagens que são incompatíveis devido ao protocolo ou formato. Esse intermediário pode aumentar a longevidade do seu sistema existente e, ao mesmo tempo, permitir a interoperabilidade com sistemas que usam uma tecnologia de mensagens ou eventos diferente. |
Publicador/Assinante | Desacopla componentes de uma arquitetura substituindo a comunicação direta de cliente para serviço ou cliente para serviços por comunicação usando um agente de mensagens intermediário ou barramento de eventos. Esse design pode permitir uma abordagem orientada a eventos em sua arquitetura, que combina bem com a cobrança baseada em consumo para evitar o provisionamento excessivo. |
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 trate em um ritmo controlado. Como o processamento de carga é desacoplado 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 a carga para um destino lógico específico para lidar com a solicitação específica, permitindo 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. Usar 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 dos investimentos existentes no sistema em execução no momento, ao mesmo tempo em que se moderniza de forma incremental. 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 para um recurso ou componente. Os limites podem informar a modelagem de custos e podem até mesmo estar diretamente vinculados ao modelo de negócios do seu aplicativo. Eles também colocam limites superiores claros na utilização, que podem ser levados em consideração no dimensionamento dos 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 do cliente são frequentes ou grandes o suficiente para exigir recursos de proxy significativos ou o proxy não agrega valor como parte da solicitação. |
Próximas etapas
Examine os padrões de design de nuvem que dão suporte aos outros pilares do Azure Well-Architected Framework: