Compensações de Otimização de Custos

Ao criar uma carga de trabalho para maximizar o ROI (retorno sobre o investimento) sob restrições financeiras, primeiro você precisa de requisitos funcionais e não funcionais claramente definidos. Uma estratégia de priorização de trabalho e esforço é essencial. A fundação é uma equipe que tem um forte senso de responsabilidade financeira. A equipe deve ter uma forte compreensão das tecnologias disponíveis e seus modelos de cobrança.

Depois de entender o ROI de uma carga de trabalho, você pode começar a melhorá-la. Para melhorar o ROI, considere como as decisões com base nos princípios de design da Otimização de Custos e as recomendações na lista de verificação de revisão de design para Otimização de Custos podem influenciar as metas e otimizações de outros pilares do Azure Well-Architected Framework. Para otimização de custos, é importante evitar se concentrar em uma solução mais barata. As opções que se concentram apenas em minimizar os gastos podem aumentar o risco de prejudicar as metas de negócios e a reputação da carga de trabalho. Este artigo descreve as compensações de exemplo que uma equipe de carga de trabalho pode encontrar ao considerar a configuração, o design e as operações de destino para otimização de custo.

Compensações de Otimização de Custos com Confiabilidade

O custo de uma interrupção de serviço deve ser medido em relação ao custo de impedir ou recuperar de um. Se o custo das interrupções exceder o custo do design de confiabilidade, você deverá investir mais para evitar ou atenuar interrupções. Por outro lado, o custo dos esforços de confiabilidade pode ser maior do que o custo de uma interrupção, incluindo fatores como requisitos de conformidade e reputação. Você deve considerar o aprofundamento estratégico no design de confiabilidade somente neste cenário.

Compensação: resiliência reduzida. Uma carga de trabalho incorpora medidas de resiliência para tentar evitar e resistir a tipos específicos e quantidades de mau funcionamento.

  • Para economizar dinheiro, a equipe de carga de trabalho pode subprovisionar um componente ou treinar demais seu dimensionamento, tornando o componente mais propenso a falhar durante picos repentinos na demanda.

  • A consolidação de recursos de carga de trabalho (densidade crescente) para otimização de custos torna os componentes individuais mais propensos a falhar durante picos de demanda e durante operações de manutenção, como atualizações.

  • Remover componentes que dão suporte a padrões de design de resiliência, como um barramento de mensagens, e criar uma dependência direta reduz os recursos de autopreservação.

  • Economizar dinheiro reduzindo a redundância pode limitar a capacidade de uma carga de trabalho de lidar com falhas simultâneas.

  • O uso de SKUs de orçamento pode limitar o SLO (objetivo máximo de nível de serviço) que a carga de trabalho pode alcançar.

  • Definir limites de gastos rígidos pode impedir que uma carga de trabalho seja dimensionado para atender à demanda legítima.

  • Sem ferramentas ou testes de teste de confiabilidade, a confiabilidade de uma carga de trabalho é desconhecida e é menos provável que atenda às metas de confiabilidade.

Compensação: estratégia de recuperação limitada. Uma carga de trabalho confiável tem um plano de recuperação e resposta a incidentes testados para cenários de desastre.

  • Testes reduzidos ou perfuração do plano de recuperação de desastre de uma carga de trabalho podem afetar a velocidade e a eficácia das operações de recuperação.

  • Criar ou reter menos backups diminui possíveis pontos de recuperação e aumenta a chance de perda de dados.

  • Um contrato de suporte mais barato pode aumentar o tempo de recuperação da carga de trabalho devido a possíveis atrasos na assistência técnica.

Compensação: maior complexidade. Uma carga de trabalho que usa abordagens simples e evita complexidade desnecessária ou superengenharia geralmente é mais fácil de gerenciar em termos de confiabilidade.

  • O uso de padrões de nuvem de otimização de custos pode adicionar novos componentes, como uma CDN (rede de distribuição de conteúdo) ou transferir tarefas para dispositivos de borda e cliente para os quais uma carga de trabalho deve fornecer metas de confiabilidade.

  • O dimensionamento baseado em eventos pode ser mais complicado de ajustar e validar do que o dimensionamento baseado em recursos.

  • A redução do volume de dados e da camada de dados por meio de ações de ciclo de vida de dados, possivelmente em conjunto com a implementação de pontos de dados agregados antes de um evento de ciclo de vida, introduz fatores de confiabilidade a serem considerados na carga de trabalho.

  • Usar regiões diferentes para otimizar o custo pode dificultar o gerenciamento, a rede e o monitoramento.

Compensações de Otimização de Custos com Segurança

O custo de um comprometimento à confidencialidade, integridade e disponibilidade em uma carga de trabalho deve sempre ser equilibrado em relação ao custo do esforço para evitar esse comprometimento. Um incidente de segurança pode ter uma ampla gama de impactos financeiros e legais e prejudicar a reputação de uma empresa. Investir em segurança é uma atividade de mitigação de risco. O custo de experimentar os riscos deve ser equilibrado em relação ao investimento. Como regra, não comprometa a segurança para obter otimizações de custo que estejam abaixo do ponto de responsabilidade e acordados na mitigação de risco. Otimizar os custos de segurança por meio de soluções de rightsizing é uma prática de otimização importante, mas esteja ciente de compensações como as seguintes ao fazer isso.

Compensação: controles de segurança reduzidos. Os controles de segurança são estabelecidos em várias camadas, às vezes redundantes, para fornecer defesa em profundidade.

Uma tática de otimização de custo é procurar maneiras de remover componentes ou processos que acumulam custos operacionais ou unitários. Lembre-se de que a remoção de componentes de segurança como os exemplos a seguir para economizar dinheiro afeta a segurança. Você precisa executar cuidadosamente uma análise de risco sobre esse impacto.

  • Reduzir ou simplificar técnicas de autenticação e autorização compromete o princípio de verificação explícita da arquitetura de confiança zero. Exemplos dessas simplificações incluem o uso de um esquema de autenticação básico, como chaves pré-compartilhadas, em vez de investir tempo para aprender abordagens OAuth do setor ou usar atribuições simplificadas de controle de acesso baseado em função para reduzir a sobrecarga de gerenciamento.

  • Remover a criptografia em trânsito ou em repouso para reduzir os custos com certificados e seus processos operacionais expõe dados a possíveis violações de integridade ou confidencialidade.

  • Remover ou reduzir as ferramentas de verificação ou inspeção de segurança ou testes de segurança devido ao investimento de custo e tempo associado pode afetar diretamente a confidencialidade, a integridade ou a disponibilidade que as ferramentas e os testes se destinam a proteger.

  • Reduzir a frequência de aplicação de patch de segurança devido ao tempo operacional investido na catalogação e na execução da aplicação de patch afeta a capacidade de uma carga de trabalho de lidar com ameaças em evolução.

  • A remoção de controles de rede, como firewalls, pode levar a uma falha ao bloquear o tráfego de entrada e saída mal-intencionado.

Compensação: área de superfície de carga de trabalho aumentada. O pilar segurança prioriza uma área de superfície reduzida e contida para minimizar os vetores de ataque e o gerenciamento de controles de segurança.

Os padrões de design de nuvem que otimizam os custos às vezes exigem a introdução de componentes adicionais. Esses componentes adicionais aumentam a área de superfície da carga de trabalho. Os componentes e os dados dentro deles devem ser protegidos, possivelmente de maneiras que ainda não estão sendo usadas no sistema. Esses componentes e dados geralmente estão sujeitos à conformidade. Exemplos de padrões que podem introduzir componentes incluem:

  • Usando o padrão de Hospedagem de Conteúdo Estático para descarregar dados em um novo componente cdn.

  • Usando o padrão de chave de manobrista para descarregar o processamento e proteger o acesso de recursos à computação do cliente.

  • Usar o padrão de Nivelamento de Carga do Queue-Based para suavizar os custos introduzindo um barramento de mensagens.

Compensação: segmentação removida. O pilar segurança prioriza uma segmentação forte para dar suporte à aplicação de controles de segurança direcionados e controlar o raio de explosão.

Compartilhar recursos, por exemplo, em situações de multilocação ou colocalizar vários aplicativos em uma plataforma de aplicativo compartilhado, é uma abordagem para reduzir custos aumentando a densidade e reduzindo a superfície de gerenciamento. Esse aumento da densidade pode levar a preocupações de segurança como estas:

  • A movimentação lateral entre componentes que compartilham recursos é mais fácil. Um evento de segurança que compromete a disponibilidade do host da plataforma de aplicativo ou de um aplicativo individual também tem um raio de explosão maior.

  • Os recursos colocalizados podem compartilhar uma identidade de carga de trabalho e ter trilhas de auditoria menos significativas nos logs de acesso.

  • Os controles de segurança de rede devem ser amplos o suficiente para abranger todos os recursos colocalizados. Essa configuração potencialmente viola o princípio de privilégios mínimos para alguns recursos.

  • A colocação de aplicativos ou dados diferentes em um host compartilhado pode levar à extensão dos requisitos de conformidade e dos controles de segurança para aplicativos ou dados que, de outra forma, estariam fora do escopo. Essa ampliação do escopo requer um escrutínio de segurança adicional e um esforço de auditoria sobre os componentes colocalizados.

Compensações de Otimização de Custos com Excelência Operacional

Compensação: capacidades de SDLC (ciclo de vida de desenvolvimento de software) comprometidas. O processo SDLC de uma carga de trabalho fornece rigor, consistência, especificidade e priorização para alterar o gerenciamento em uma carga de trabalho.

  • Reduzir os esforços de teste para economizar tempo e o custo associado à equipe de teste, recursos e ferramentas pode resultar em mais bugs na produção.

  • Atrasar o pagamento da dívida técnica para concentrar os esforços da equipe em novos recursos pode levar a ciclos de desenvolvimento mais lentos e agilidade global reduzida.

  • A despriorização da documentação para concentrar os esforços da equipe no desenvolvimento de produtos pode levar a um tempo de integração mais longo para novos funcionários, afetar a eficácia da resposta a incidentes e comprometer os requisitos de conformidade.

  • A falta de investimento em treinamento leva a habilidades estagnadas, reduzindo a capacidade da equipe de adotar tecnologias e práticas mais recentes.

  • Remover ferramentas de automação para economizar dinheiro pode fazer com que o pessoal gaste mais tempo nas tarefas que não são mais automatizadas. Também aumenta o risco de erros e inconsistências.

  • A redução dos esforços de planejamento, como o escopo e a priorização da atividade, para reduzir as despesas pode aumentar a probabilidade de retrabalho devido a especificações vagas e implementação ruim.

  • Evitar ou reduzir atividades de melhoria contínua, como retrospectivas e relatórios após incidentes, para manter a equipe de carga de trabalho focada na entrega pode criar oportunidades perdidas para otimizar processos rotineiros, não planejados e de emergência.

Compensação: observabilidade reduzida. A observabilidade é necessária para ajudar a garantir que uma carga de trabalho tenha alertas significativos e resposta a incidentes bem-sucedida.

  • Diminuir o volume de logs e métricas para economizar nos custos de armazenamento e transferência reduz a observabilidade do sistema e pode levar a:

    • Menos pontos de dados para criar alertas relacionados à confiabilidade, segurança e desempenho.
    • Lacunas de cobertura nas atividades de resposta a incidentes.
    • Observabilidade limitada em interações ou limites relacionados à segurança ou à conformidade.
  • Os padrões de design de otimização de custos podem adicionar componentes a uma carga de trabalho, aumentando sua complexidade. A estratégia de monitoramento de carga de trabalho deve incluir esses novos componentes. Por exemplo, alguns padrões podem introduzir fluxos que abrangem vários componentes ou deslocam processos do servidor para o cliente. Essas alterações podem aumentar a complexidade de correlacionar e acompanhar informações.

  • O investimento reduzido em ferramentas de observabilidade e a manutenção de painéis eficazes podem diminuir a capacidade de aprender com a produção, validar opções de design e informar o design do produto. Essa redução também pode dificultar as atividades de resposta a incidentes e dificultar o cumprimento do objetivo de tempo de recuperação e do SLO.

Compensação: manutenção adiada. Espera-se que as equipes de carga de trabalho mantenham o código, as ferramentas, os pacotes de software e os sistemas operacionais corrigidos e atualizados de maneira oportuna e ordenada.

  • Permitir que os contratos de manutenção com fornecedores de ferramentas expirem pode resultar em recursos de otimização perdidos, resoluções de bugs e atualizações de segurança.

  • Aumentar o tempo entre patches do sistema para economizar tempo pode levar a correções de bugs perdidas ou à falta de proteção contra ameaças de segurança em evolução.

Compensações de Otimização de Custos com Eficiência de Desempenho

Os pilares Otimização de Custos e Eficiência de Desempenho priorizam a maximização do valor de uma carga de trabalho. A Eficiência de Desempenho enfatiza o cumprimento das metas de desempenho sem gastar mais do que o necessário. A Otimização de Custos enfatiza a maximização do valor produzido pelos recursos de uma carga de trabalho sem exceder as metas de desempenho. Como resultado, a Otimização de Custos geralmente melhora a Eficiência de Desempenho. No entanto, há compensações de Eficiência de Desempenho associadas à Otimização de Custos. Essas compensações podem dificultar o alcance das metas de desempenho e dificultar a otimização contínua do desempenho.

Compensação: recursos subprovisionados ou subescala. Uma carga de trabalho com eficiência de desempenho tem recursos suficientes para atender à demanda, mas não tem sobrecarga excessiva não usada, mesmo quando os padrões de uso flutuam.

  • Reduzir os custos reduzindo os recursos pode privar aplicativos de recursos. O aplicativo pode não ser capaz de lidar com flutuações significativas de padrão de uso.

  • Limitar ou atrasar o dimensionamento para limitar ou reduzir os custos pode resultar em oferta insuficiente para atender à demanda.

  • As configurações de dimensionamento automático que reduzem verticalmente agressivamente para reduzir os custos podem deixar um serviço despreparado para picos repentinos na demanda ou causar flutuações de dimensionamento frequentes (oscilação).

Compensação: falta de otimização ao longo do tempo. Avaliar os efeitos das alterações na funcionalidade, alterações nos padrões de uso, novas tecnologias e abordagens diferentes na carga de trabalho é uma maneira de tentar aumentar a eficiência.

  • Limitar o foco no desenvolvimento de experiência em otimização de desempenho para priorizar a entrega pode causar oportunidades perdidas para melhorar a eficiência de uso de recursos.

  • A remoção de ferramentas de monitoramento ou teste de desempenho de acesso aumenta o risco de problemas de desempenho não detectados. Ele também limita a capacidade de uma equipe de carga de trabalho executar em ciclos de medida/aprimoramento.

  • Negligenciar áreas propensas à degradação do desempenho, como armazenamentos de dados, pode deteriorar gradualmente o desempenho da consulta e elevar o uso geral do sistema.

Explore as compensações para os outros pilares: