Padrões de design na nuvem que suportam a 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 dentro das cargas de trabalho e otimizar para o resultado desejado. Eles também podem ajudar a mitigar 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 por aumentar 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 agnósticos ao fornecedor. Usar padrões bem conhecidos como 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 projeto que suportam o pilar Otimização de Custos alinham-se com a implementação de modelos de faturamento favoráveis, reduzindo o provisionamento excessivo, alterando as dimensões de dimensionamento e maximizando o valor durante as migrações.
Padrões de projeto para otimização de custos
A tabela a seguir resume os padrões de design de nuvem que suportam as metas de otimização de custos.
Padrão | Resumo |
---|---|
Verificação de Afirmações | 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 é muitas vezes 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 processamento distribuído e simultâneo para lidar eficientemente com itens em uma fila. Esse padrão pode ajudá-lo a otimizar os custos, permitindo o dimensionamento baseado na profundidade da fila, até zero quando a fila está vazia. Ele também pode otimizar custos, permitindo que você limite o número máximo de instâncias de consumidores 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 agrupada. 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 custos de recursos que seriam gastos por nó na implementação do gateway. Os custos no modelo de processamento centralizado são frequentemente mais baixos do que os do modelo distribuído. |
Ponte de mensagens | Fornece um intermediário para permitir 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 seu sistema existente e, ao mesmo tempo, permitir a interoperabilidade com sistemas que usam uma tecnologia diferente de mensagens ou eventos. |
Publicador/Editor | Desacopla componentes de uma arquitetura substituindo a comunicação direta cliente-a-serviço ou cliente-a-serviço pela 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 no consumo para evitar o provisionamento excessivo. |
Redistribuição de Carga Baseada na 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 filas as manipule em um ritmo controlado. Como o processamento de carga é dissociado 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 colocation 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, esta configuração pode poupar-lhe dinheiro. |
Alojamento 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 aplicativos para fornecer conteúdo estático não é econômico. |
Strangler 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 desta abordagem é maximizar o uso dos investimentos existentes no sistema atualmente em execução, modernizando-se 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 para um recurso ou componente. Os limites podem informar a modelagem de custos e podem até mesmo estar diretamente ligados ao modelo de negócios do seu aplicativo. Eles também colocam limites superiores claros na utilização, que podem ser levados em conta no dimensionamento de recursos. |
Chave Valet | Concede acesso restrito de segurança a um recurso sem usar um recurso intermediário para 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óximos passos
Analise os padrões de design de nuvem que suportam os outros pilares do Azure Well-Architected Framework: