Compensações de Eficiência do Desempenho

Uma carga de trabalho que atende às suas metas de desempenho sem provisionamento excessivo é eficiente. O objetivo da eficiência de desempenho é ter oferta suficiente para lidar com a demanda em todos os momentos. As principais estratégias para eficiência de desempenho incluem o uso adequado de otimizações de código, padrões de design, planejamento de capacidade e dimensionamento. Metas de desempenho e testes claros sustentam esse pilar.

Durante o processo de negociação das metas de desempenho de uma carga de trabalho e o design de uma carga de trabalho para eficiência de desempenho, é importante estar ciente de como os princípios de design de Eficiência de Desempenho e as recomendações na lista de verificação de revisão de Design para Eficiência de Desempenho podem afetar as metas de otimização de outros pilares. Certas decisões de eficiência de desempenho podem beneficiar alguns pilares, mas constituem compensações para outros. Este artigo lista exemplos de compensações que uma equipe de carga de trabalho pode encontrar ao projetar a arquitetura e as operações da carga de trabalho para eficiência de desempenho.

Compensações de eficiência de desempenho com confiabilidade

Compensação: Replicação reduzida e maior densidade. Um pilar da confiabilidade é garantir a resiliência usando a replicação e limitando o raio de explosão de mau funcionamento.

  • Uma carga de trabalho que alcança eficiência atrasando o dimensionamento até o último momento responsável atende de perto à demanda, mas é vulnerável a falhas de nó imprevistas e atrasos de dimensionamento.

  • A consolidação de recursos de carga de trabalho pode usar o excesso de capacidade e melhorar a eficiência. No entanto, aumenta o raio de explosão de um mau funcionamento no componente co-localizado ou na plataforma de aplicação.

  • Reduzir ou reduzir a escala para minimizar a capacidade excedente pode deixar uma carga de trabalho subprovisionada durante picos de uso, o que leva a interrupções de serviço devido ao fornecimento insuficiente.

Compensação: Maior complexidade. A confiabilidade prioriza a simplicidade.

  • O uso do dimensionamento automático para equilibrar a oferta de carga de trabalho em relação à demanda introduz variabilidade na topologia da carga de trabalho e adiciona um componente que deve funcionar corretamente para que o sistema seja confiável. O dimensionamento automático leva ao acionamento de mais eventos do ciclo de vida do aplicativo, como iniciar e parar.

  • O particionamento e a fragmentação de dados ajudam a evitar problemas de desempenho em conjuntos de dados grandes ou acessados com frequência. No entanto, a implementação desses padrões aumenta a complexidade porque a consistência (eventual) precisa ser mantida em recursos adicionais.

  • A desnormalização de dados para padrões de acesso otimizados pode melhorar o desempenho, mas introduz complexidade porque várias representações de dados precisam ser mantidas sincronizadas.

  • Os padrões de design de nuvem centrados no desempenho às vezes exigem a introdução de componentes adicionais. O uso desses componentes aumenta a área de superfície da carga de trabalho. Os componentes devem ser confiáveis para manter toda a carga de trabalho confiável. Os exemplos incluem:

    • Um barramento de mensagens para nivelamento de carga, que introduz um componente crítico e com estado.
    • Um balanceador de carga para réplicas dimensionadas automaticamente, que requer operação confiável e a inscrição de réplicas.
    • Descarregar dados para caches, o que requer abordagens confiáveis de invalidação de cache.

Compensação: Teste e observação em ambientes ativos. Evitar o uso desnecessário de sistemas de produção é uma abordagem de autopreservação e prevenção de riscos para confiabilidade.

  • O teste de desempenho em ambientes ativos, como o uso de transações sintéticas, acarreta o risco de causar mau funcionamento devido às ações ou configurações de teste.

  • As cargas de trabalho devem ser instrumentadas com um sistema de monitoramento de desempenho de aplicativos (APM) que permita que as equipes aprendam com ambientes ativos. As ferramentas do APM são instaladas e configuradas no código do aplicativo ou no ambiente de hospedagem. O uso inadequado, excedendo as limitações ou a configuração incorreta da ferramenta podem comprometer sua funcionalidade e manutenção, potencialmente prejudicando a confiabilidade.

Compensações de eficiência de desempenho com segurança

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

Uma estratégia de otimização de desempenho é remover ou ignorar componentes ou processos que contribuem para atrasos em um fluxo, especialmente quando o tempo de processamento não é justificado. No entanto, essa estratégia pode comprometer a segurança e deve ser acompanhada por uma análise de risco completa. Considere os seguintes exemplos:

  • A remoção da criptografia em trânsito ou em repouso para melhorar as velocidades de transferência expõe os dados a possíveis violações de integridade ou confidencialidade.

  • Remover ou reduzir as ferramentas de verificação ou inspeção de segurança para reduzir os tempos de processamento pode comprometer a confidencialidade, a integridade ou a disponibilidade que essas ferramentas protegem.

  • Diminuir a frequência de patches de segurança para limitar o impacto no desempenho pode deixar uma carga de trabalho mais vulnerável a ameaças emergentes.

  • A remoção de regras de firewall dos fluxos de rede para melhorar a latência da rede pode permitir uma comunicação indesejável.

  • Minimizar a validação de dados ou verificações de segurança de conteúdo para um processamento de dados mais rápido pode comprometer a integridade dos dados, especialmente se as entradas forem maliciosas.

  • Usar menos entropia em algoritmos de criptografia ou hash, por exemplo, no vetor de inicialização (IV), é mais eficiente, mas torna a criptografia mais fácil de quebrar.

Compensação: Aumento da área de superfície da carga de trabalho. A segurança prioriza uma área de superfície reduzida e contida para minimizar os vetores de ataque e reduzir o gerenciamento dos controles de segurança.

Os padrões de design de nuvem centrados no desempenho às vezes exigem a introdução de componentes adicionais. Esses componentes aumentam a área de superfície da carga de trabalho. Os novos componentes devem ser protegidos, possivelmente de maneiras que ainda não são usadas no sistema, e geralmente aumentam o escopo de conformidade. Considere estes componentes comumente adicionados:

  • Um barramento de mensagens para nivelamento de carga

  • Um balanceador de carga para réplicas dimensionadas automaticamente

  • Descarregar dados para caches, redes de entrega de aplicativos ou redes de distribuição de conteúdo

  • Descarregar o processamento para trabalhos em segundo plano ou até mesmo para a computação do cliente

Compensação: Removendo a segmentação. O pilar Segurança prioriza uma forte segmentação para permitir controles de segurança refinados e reduzir o raio de explosão.

Compartilhar recursos por meio do aumento da densidade é uma abordagem para melhorar a eficiência. Os exemplos incluem cenários de multilocação ou combinação de aplicativos diferentes em uma arquitetura em uma plataforma de aplicativo comum. O aumento da densidade pode levar às seguintes preocupações de segurança:

  • Aumento do risco de movimento lateral não autorizado de um inquilino para outro.

  • Uma identidade de carga de trabalho compartilhada que viola o princípio de privilégios mínimos e obscurece trilhas de auditoria individuais em logs de acesso.

  • Controles de segurança de perímetro, por exemplo, regras de rede, que são reduzidos para cobrir todos os componentes colocalizados, dando aos componentes individuais mais acesso do que o necessário.

  • Um comprometimento do host da plataforma de aplicativos ou de um componente individual devido a um raio de explosão maior. Esse aumento é causado pelo acesso mais fácil aos componentes colocalizados.

  • Co-localização de componentes diferentes levando a mais componentes no escopo de conformidade devido ao seu host compartilhado.

Compensações de eficiência de desempenho com otimização de custos

Compensação: Muita oferta para a demanda. Tanto a otimização de custos quanto a eficiência de desempenho priorizam ter oferta suficiente para atender à demanda.

  • O provisionamento excessivo é um risco quando as equipes tentam mitigar problemas de desempenho em uma carga de trabalho. Algumas causas comuns de superprovisionamento incluem:

    • O planejamento inicial da capacidade foi mal avaliado porque a equipe se concentrou apenas nas estimativas de carga de pico, negligenciando as estratégias de suavização de pico no projeto da carga de trabalho.
    • Escalar ou reduzir verticalmente um recurso durante uma etapa de solução de problemas de uma resposta a incidentes.
  • O dimensionamento automático pode ser configurado incorretamente. Alguns exemplos de dimensionamento automático configurado incorretamente incluem:

    • A expansão com mudanças mínimas na demanda ou um período de resfriamento prolongado pode incorrer em mais custos do que a demanda exige.
    • O uso do dimensionamento automático sem um limite superior definido pode levar a um crescimento descontrolado devido a mau funcionamento ou abuso do sistema e exceder os requisitos de carga de trabalho esperados.
  • A expansão para várias regiões pode melhorar o desempenho, aproximando as cargas de trabalho do usuário e evitando restrições temporárias de capacidade de recursos. No entanto, essa topologia também adiciona complexidade e duplicação de recursos.

Compensação: Mais componentes. Uma técnica de otimização de custos é consolidar com um número menor de recursos, aumentando a densidade, removendo a duplicação e co-localizando a funcionalidade.

  • Os padrões de design de nuvem centrados no desempenho às vezes exigem a introdução de componentes extras. Esses componentes extras geralmente levam a um aumento geral de custo para a carga de trabalho. Por exemplo, você pode incluir um barramento de mensagens para tarefas de nivelamento ou descarregamento de carga para um aplicativo ou rede de distribuição de conteúdo para melhorar os tempos de resposta.

  • A segmentação de recursos permite que diferentes partes de uma carga de trabalho tenham características de desempenho distintas, permitindo o ajuste independente para cada segmento. No entanto, pode aumentar os custos totais de propriedade porque requer vários segmentos otimizados em vez de um único componente generalizado.

Compensação: Aumento do investimento em itens que não estão alinhados com os requisitos funcionais. Uma abordagem para otimização de custos é avaliar o valor fornecido por qualquer solução implantada.

  • Serviços premium e SKUs podem ajudar uma carga de trabalho a atingir as metas de desempenho. Esses serviços geralmente custam mais e podem fornecer recursos extras. Eles podem ser subutilizados se muitos dos recursos premium não forem usados especificamente para atingir as metas de desempenho.

  • Uma carga de trabalho de alto desempenho requer dados de telemetria para observabilidade que devem ser transferidos e armazenados. Um aumento na telemetria de desempenho coletada pode aumentar o custo da transferência e do armazenamento de dados de telemetria.

  • As atividades de teste de desempenho adicionam custos que não estão associados ao valor do sistema de produção. Exemplos de custos de teste de desempenho incluem:

    • Instanciar ambientes dedicados a testes centrados no desempenho.
    • Usando ferramentas de desempenho especializadas.
    • Gastar tempo para executar os testes.
  • Treinar membros da equipe para tarefas especializadas de otimização de desempenho ou pagar por serviços de ajuste de desempenho aumenta o custo de uma carga de trabalho.

Compensações de eficiência de desempenho com excelência operacional

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

  • Reduzir o volume de log e métrica para reduzir o tempo de processamento gasto na coleta de telemetria em vez de outras tarefas reduz a observabilidade geral do sistema. Alguns exemplos da observabilidade reduzida resultante incluem:

    • Ele limita os pontos de dados usados para criar alertas significativos.
    • Isso leva a lacunas na cobertura das atividades de resposta a incidentes.
    • Ele limita a observabilidade em interações e limites sensíveis à segurança ou à conformidade.
  • Quando os padrões de design de desempenho são implementados, a complexidade da carga de trabalho geralmente aumenta. Os componentes são adicionados a fluxos críticos. A estratégia de monitoramento de carga de trabalho e o monitoramento de desempenho devem incluir esses componentes. Quando um fluxo abrange vários componentes ou limites de aplicativos, a complexidade de monitorar o desempenho desse fluxo aumenta. O desempenho do fluxo precisa ser correlacionado em todos os componentes interconectados.

Compensação: Aumento da complexidade nas operações. Um ambiente complexo tem interações mais complexas e uma maior probabilidade de um impacto negativo de operações de rotina, ad hoc e de emergência.

  • Melhorar a eficiência do desempenho aumentando a densidade eleva o risco nas tarefas operacionais. Um erro em um único processo pode ter um grande raio de explosão.

  • À medida que os padrões de design de desempenho são implementados, eles influenciam os procedimentos operacionais, como backups, rotações de chaves e estratégias de recuperação. Por exemplo, o particionamento e a fragmentação de dados podem complicar tarefas rotineiras quando as equipes tentam garantir que essas tarefas não afetem a consistência dos dados.

Compensação: Estresse cultural. A Excelência Operacional está enraizada em uma cultura de irrepreensível, respeito e melhoria contínua.

  • A realização da análise de causa raiz de problemas de desempenho identifica deficiências em processos ou implementações que exigem correção. A equipe deve considerar o exercício uma oportunidade de aprendizado. Se os membros da equipe forem culpados pelos problemas, o moral pode ser afetado.

  • Processos de rotina e ad hoc podem afetar o desempenho da carga de trabalho. Muitas vezes, é considerado preferível realizar essas atividades fora do horário de pico. No entanto, o horário fora do horário de pico pode ser inconveniente ou fora do horário normal para os membros da equipe responsáveis ou qualificados nessas tarefas.

Explore as compensações para os outros pilares: