Share via


Compensações de eficiência de desempenho

Uma carga de trabalho que atende às metas de desempenho sem excesso de provisionamento é eficiente. A meta de eficiência de desempenho é ter oferta suficiente para lidar com a demanda o tempo todo. As principais estratégias de eficiência de desempenho incluem o uso adequado de otimizações de código, padrões de design, planejamento de capacidade e dimensionamento. Limpar as metas de desempenho e os testes sustentam esse pilar.

Durante o processo de negociação das metas de desempenho de uma carga de trabalho e a criação 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. Determinadas decisões de eficiência de desempenho podem beneficiar alguns pilares, mas constituem compensações para outros. Este artigo lista as compensações de exemplo que uma equipe de carga de trabalho pode encontrar ao projetar a arquitetura e as operações de 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. Uma pedra angular da confiabilidade é garantir a resiliência usando a replicação e limitando o raio de explosão de defeitos.

  • Uma carga de trabalho que obtém eficiência atrasando o dimensionamento até que o último momento responsável atenda de perto à demanda, mas é vulnerável a falhas imprevistas de nó 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, ele aumenta o raio de explosão de um mau funcionamento no componente co-localizado ou na plataforma de aplicativo.

  • Reduzir ou reduzir verticalmente 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 à oferta 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 a disparar 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 frequentemente acessados. No entanto, a implementação desses padrões aumenta a complexidade porque (eventual) a consistência precisa ser mantida entre 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. Em seguida, 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 dimensionados automaticamente, o que requer uma operação confiável e a inscrição de réplicas.
    • Descarregar dados em caches, o que requer abordagens de invalidação de cache confiáveis.

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

  • O teste de desempenho em ambientes ativos, como o uso de transações sintéticas, traz 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 APM (monitoramento de desempenho de aplicativos) que permite 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. Uso inadequado, limitações excessivas ou 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 de controles de segurança. Os controles de segurança são estabelecidos em várias camadas, às vezes com redundância, para fornecer defesa detalhadamente.

Uma estratégia de otimização de desempenho é remover ou ignorar componentes ou processos que contribuam para atrasos em um fluxo, especialmente quando seu tempo de processamento não é justificado. No entanto, essa estratégia pode comprometer a segurança e deve ser acompanhada por uma análise completa de risco. 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 aplicação de patch de segurança para limitar o impacto no desempenho pode deixar uma carga de trabalho mais vulnerável a ameaças emergentes.

  • Remover regras de firewall de fluxos de rede para melhorar a latência de rede pode permitir comunicação indesejável.

  • Minimizar a validação de dados para processamento de dados mais rápido pode comprometer a integridade dos dados, especialmente se as entradas forem mal-intencionadas.

  • Usar menos entropia em algoritmos de criptografia ou hash, por exemplo, no iv (vetor de inicialização), é mais eficiente, mas facilita a quebra da criptografia.

Compensação: área de superfície de carga de trabalho aumentada. A segurança prioriza uma área de superfície reduzida e contida para minimizar os vetores de ataque e reduzir o gerenciamento de 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 dimensionados automaticamente

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

  • Descarregando o processamento para trabalhos em segundo plano ou até mesmo computação de cliente

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

Compartilhar recursos é uma abordagem para melhorar a eficiência. Ele aumenta a densidade para otimizar o uso da capacidade. 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 movimentação lateral não autorizada de um locatário 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 reduzidas para abranger todos os componentes co-localizados, dando aos componentes individuais mais acesso do que o necessário.

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

  • A colocação conjunta de componentes diferentes que levam a mais componentes no escopo de conformidade devido ao host compartilhado.

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

Compensação: muita oferta para a demanda. A Otimização de Custos e a Eficiência de Desempenho priorizam ter oferta suficiente para atender à demanda.

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

    • O planejamento de capacidade inicial foi mal julgado porque a equipe se concentrou apenas nas estimativas de carga de pico, negligenciando estratégias para suavização de pico no design 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:

    • Escalar verticalmente com alterações mínimas na demanda ou um período de resfriamento estendido pode incorrer em mais custo do que a demanda exige.
    • O uso do dimensionamento automático sem um limite superior definido pode levar a um crescimento descontrolado devido a falhas ou abusos do sistema e exceder os requisitos de carga de trabalho esperados.
  • Expandir para várias regiões pode melhorar o desempenho aproximando cargas de trabalho do usuário e pode evitar restrições temporárias de capacidade de recursos. No entanto, ele também adiciona complexidade e duplicação de recursos.

Compensação: mais componentes. Uma técnica de otimização de custo é consolidar com um número menor de recursos aumentando a densidade, removendo a duplicação e a funcionalidade de colocação conjunta.

  • 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 de custo geral para a carga de trabalho. Por exemplo, você pode incluir um barramento de mensagens para tarefas de nivelamento de carga ou descarregamento para um aplicativo ou rede de distribuição de conteúdo para tempos de resposta aprimorados.

  • A segmentação de recursos permite que diferentes partes de uma carga de trabalho tenham características de desempenho distintas, permitindo ajuste independente para cada segmento. No entanto, ele 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 aos requisitos funcionais. Uma abordagem para otimização de custo é avaliar o valor fornecido por qualquer solução implantada.

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

  • Uma carga de trabalho de desempenho requer dados de telemetria para observabilidade que devem ser transferidos e armazenados. Um aumento na telemetria de desempenho que está sendo coletada pode aumentar o custo de transferência e 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:

    • Instanciando ambientes dedicados a testes centrados no desempenho.
    • Usando ferramentas de desempenho especializadas.
    • Gastando 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 logs e métricas 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 para 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 aplicativo, a complexidade de monitorar o desempenho desse fluxo aumenta. O desempenho do fluxo precisa ser correlacionado em todos os componentes interconectados.

Compensação: maior 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 emergência.

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

  • À medida que os padrões de design de desempenho são implementados, eles influenciam procedimentos operacionais como backups, rotações de chave 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 falta de culpa, 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 por problemas, a moral poderá ser afetada.

  • Processos de rotina e ad hoc podem afetar o desempenho da carga de trabalho. Geralmente, é considerado preferível executar essas atividades fora do horário de pico. No entanto, os horários fora de pico podem ser inconvenientes 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: