Melhore a eficiência através da otimização
Melhore a eficiência do sistema dentro das metas de desempenho definidas para aumentar o valor da carga de trabalho. |
---|
As metas estabelecidas durante a fase inicial baseiam-se num nível razoável de experiência do utilizador, considerando várias restrições. Você deve reavaliar e ajustar as metas para melhorar ainda mais a experiência. Para melhorar ainda mais a experiência, é necessária uma compreensão clara de como o sistema é usado, como evoluiu e como a plataforma ou 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 trabalhe com menor consumo de recursos. Eles podem fazer com que a carga de trabalho esteja em um estado de provisionamento excessivo com capacidade ociosa. Use essa capacidade para melhorar a confiabilidade do sistema. Elimine a capacidade de melhorar o custo do sistema. Ou redirecionar a capacidade para oferecer suporte a novos recursos do produto em 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 oferece 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 e outros. A maioria das integrações são Funções do Azure 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 funcionado bem, 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.
Priorize otimizações de desempenho
Aloque ciclos dedicados para otimização de 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 de banco de dados e outros.
Ao adotar essa abordagem, você pode criar uma cultura de otimização orientada ao desempenho. Você mantém a equipe responsável por monitorar proativamente os padrões de desempenho e também ajustar o aplicativo.
O desafio da Contoso
- A equipa é bastante sucateada e o seu atraso é longo. Na maioria das vezes, eles trabalham com uma mentalidade de "fogo e esquecimento" 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 à liderança sênior não ter acesso aos dados em tempo hábil.
- A equipe está ciente de que melhorias precisam ser feitas, mas não priorizou fazer as mudanças necessárias.
Aplicação da abordagem e dos resultados
- A equipe agora destina 20% de cada sprint para dívidas técnicas e outras atividades de otimização. Isso é ganhar tempo à equipe de engenharia para priorizar e abordar áreas críticas e outras áreas onde o impacto pode ser mais significativo.
- Ao adotar essa abordagem, a equipe é capaz de dedicar o tempo necessário para resolver os problemas de desempenho que causam atrasos no processamento de dados.
Procure melhorias de design
Melhore a arquitetura com novos padrões de design e componentes, que podem aumentar o desempenho, de maneiras que você não considerava anteriormente devido ao tempo ou orçamento limitados.
Novos projetos e componentes podem otimizar o sistema, levando a uma melhor experiência do usuário e eficiência de custos a longo prazo. Por exemplo, você pode usar o cache ou adicionar um componente de rede de entrega de conteúdo.
O desafio da Contoso
- A equipe usa o Azure Functions e fluxos baseados em gatilhos há vários anos e não dedicou tempo para avaliar alternativas a essa abordagem.
Aplicação da abordagem e dos resultados
- A equipe analisa outras maneiras de usar o Azure Functions e descobre que as funções duráveis dão suporte a um modelo de distribuição que pode ajudá-los a paralelizar uma tarefa de folha de pagamento específica.
- A equipe incorpora esse padrão em seu catálogo de design para design futuro. Também foi um bom lembrete para olhar para outras maneiras de lidar com ineficiências de desempenho do que apenas otimizações de código e limpeza de dados.
Analise telemetria e tendências
Use ferramentas de monitoramento para analisar tendências históricas e identificar os fluxos e caminhos de implementaçã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 quentes da operação e outros gargalos potenciais no sistema.
Quando você identifica as áreas problemáticas recorrentes, a equipe pode se concentrar onde os ganhos são mais altos.
O 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 de falhas e para o coletor de registro.
- Historicamente, sua abordagem para direcionar áreas para melhorias tem sido baseada no feedback vindo da equipe de liderança sênior.
Aplicação da abordagem e dos resultados
- Embora o feedback seja importante, a equipe percebe que o Application Insights faz um bom trabalho ao detetar pontos críticos nos aplicativos que monitora.
- A equipe começa a tirar proveito dessa funcionalidade e, combinada com saber quais fluxos são importantes, está se transformando em uma ferramenta valiosa para o esforço de 20% da equipe em melhorias técnicas e eficiência.
- Usando o Application Insights, a equipe é capaz de identificar proativamente uma integração arriscada e lidar com ela antes que um membro da equipe de liderança tenha um problema.