Aumente a eficiência por meio da otimização

Concluído
Aprimore a eficiência do sistema dentro das metas de desempenho definidas para aumentar o valor da carga de trabalho.

As metas definidas durante a fase inicial são baseadas em um nível razoável de experiência do usuário, considerando várias restrições. Você deve reavaliar e ajustar as metas para aprimorar ainda mais a experiência. Para aprimorar ainda mais a experiência, é necessário ter uma compreensão clara de como o sistema é utilizado, como ele evoluiu e como a plataforma ou a tecnologia mudou ao longo do tempo. O ciclo de monitoramento, otimização, teste e implantação é um processo contínuo.

Os esforços de otimização da eficiência permitem que uma carga de trabalho funcione com menor consumo de recursos. Eles podem fazer com que a carga de trabalho fique em um estado de excesso de provisionamento com capacidade sobressalente. Use essa capacidade para aumentar a confiabilidade do sistema. Elimine a capacidade para melhorar o custo do sistema. Ou redirecione a capacidade para dar suporte a novos recursos de produtos nos recursos existentes.

Quando o sistema ganhar eficiência, aproveite a oportunidade para definir e manter novas metas de desempenho.

Cenário de exemplo

A equipe de engenharia de RH da Contoso dá suporte a integrações personalizadas no sistema de informações de recursos humanos (HRIS) da organização. Essas integrações incluem integrações financeiras para folha de pagamento, estatísticas de contratação para relatórios de leis trabalhistas do governo, entre outras. A maioria das integrações são Azure Functions escritas em C#, que são hospedadas em um cluster Kubernetes habilitado para Azure Arc no data center da organização. A maioria dos trabalhos tem sido bem executada, mas devido a um atraso no processamento, alguns deixam a equipe ansiosa, pois às vezes os dados críticos não estão disponíveis quando o diretor de RH precisa deles.

Priorize as otimizações de desempenho

Aloque ciclos dedicados à otimização do desempenho para atender a requisitos não funcionais e otimizações em áreas funcionais. Os alvos para essa otimização são recursos, código, retenção de dados, consultas a bancos de dados e outros.

Ao adotar essa abordagem, você pode criar uma cultura de otimização orientada para o desempenho. Você mantém a equipe responsável por monitorar proativamente os padrões de desempenho e também faz o ajuste fino do aplicativo.

Desafio da Contoso

  • A equipe é bastante irregular e sua lista de pendências é longa. Na maioria das vezes, eles trabalham com uma mentalidade de "disparar e esquecer" ao escrever e implantar integrações; as integrações são escritas, implantadas e, em seguida, a equipe passa para a próxima tarefa.
  • A equipe tem sido chamada para problemas de suporte a incidentes críticos com frequência devido ao fato de a liderança sênior não ter acesso aos dados em tempo hábil.
  • A equipe tem plena consciência de que é preciso fazer melhorias, mas não priorizou a realização das alterações necessárias.

Aplicando a abordagem e os resultados

  • A equipe agora aloca 20% de cada sprint para dívidas técnicas e outras atividades de otimização. Com isso, a equipe de engenharia ganha tempo para priorizar e abordar áreas críticas e outras áreas mas quais o impacto pode ser mais significativo.
  • Ao adotar essa abordagem, a equipe pode dedicar o tempo necessário para resolver os problemas de desempenho que causam atrasos no processamento de dados.

Procure melhorias no projeto

Aprimore a arquitetura com novos componentes e padrões de design, que podem aumentar o desempenho de maneiras que você não considerou anteriormente devido à limitação de tempo ou orçamento.

O novo design e os novos componentes podem otimizar o sistema, levando a uma melhor experiência do usuário e a eficiências de custo de longo prazo. Por exemplo, você pode usar o cache ou adicionar um componente de rede de distribuição de conteúdo.

Desafio da Contoso

  • A equipe tem utilizado o Azure Functions e fluxos baseados em gatilho há vários anos e não dedicou tempo para avaliar alternativas a essa abordagem.

Aplicando a abordagem e os resultados

  • A equipe procura outras maneiras de usar o Azure Functions e descobre que as funções duráveis dão suporte a um modelo de fan-out que pode ajudar vocês a paralelizar uma tarefa específica de folha de pagamento.
  • A equipe incorpora esse padrão em seu catálogo de design para um design futuro. Também foi um bom lembrete para procurar outras maneiras de lidar com as ineficiências de desempenho além de apenas otimizações de código e limpeza de dados.

Use ferramentas de monitoramento para analisar tendências históricas e identificar os fluxos e caminhos de implantação de código que mais se beneficiariam de um esforço de otimização de desempenho. Recomendamos ferramentas de monitoramento de desempenho de aplicativos (APM) e criadores de perfil para essa finalidade. Além disso, identifique os caminhos críticos da operação e outros possíveis gargalos no sistema.

Quando você identifica as áreas problemáticas recorrentes, a equipe pode se concentrar nos locais em que os ganhos são maiores.

Desafio da Contoso

  • A equipe instrumentou todas as funções com o Azure Application Insights.
  • Eles usam principalmente o Application Insights para problemas de correção e para o coletor de logs.
  • Historicamente, a abordagem para direcionar as áreas de melhoria tem se baseado nos comentários da equipe de liderança sênior.

Aplicando a abordagem e os resultados

  • Embora os comentários sejam importantes, a equipe percebe que o Application Insights faz um bom trabalho de detecção de pontos de acesso nos aplicativos que monitora.
  • A equipe começa a tirar proveito dessa funcionalidade e, combinada com o conhecimento de quais fluxos são importantes, está se tornando uma ferramenta valiosa para o esforço de 20% da equipe em melhorias técnicas e eficiência.
  • Usando o Application Insights, a equipe consegue identificar proativamente uma integração arriscada e lidar com ela antes que um membro da equipe de liderança tenha um problema.

Verifique seu conhecimento

1.

Como a equipe da Contoso alterou seu processo de desenvolvimento para resolver os problemas de desempenho em andamento?

2.

Qual das seguintes opções é uma boa estratégia para melhorar a eficiência da sua carga de trabalho?

3.

Que tipo de ferramenta pode ajudar você a analisar as tendências de desempenho e a identificar os gargalos de execução?