Alcance e mantenha o desempenho

Concluído
Proteja-se contra a degradação do desempenho enquanto o sistema está em uso e à medida que evolui.

O desenvolvimento não é um esforço único. É um processo contínuo. Espere alterações no desempenho à medida que os recursos mudam. Há variação nos padrões e perfis de usuário, até mesmo alterações de otimizações em outros pilares do Azure Well-Architected. Qualquer alteração pode sobrecarregar os recursos da carga de trabalho.

Proteja o sistema de alterações para que ele não deslize para as metas de desempenho. Integre testes e monitoramento no processo de desenvolvimento. Teste o desempenho do sistema em produção com carga real e simule essa carga com testes automatizados antes da produção. Em ambos os casos, você deve ter práticas de monitoramento em vigor para fins de verificação.

Ao longo do ciclo de vida do desenvolvimento, conduza vários tipos de testes em diferentes estágios. Nos estágios iniciais, teste a prova de conceito para garantir que os resultados de desempenho não sejam totalmente inesperados. À medida que o desenvolvimento progride, realize testes manuais e de baixo esforço para estabelecer parâmetros de referência. No estágio de construção, comece a desenvolver testes de desempenho de rotina automatizados que avaliam latência, níveis de estresse, capacidade de carga e outras características definidas nos planos de teste.

O acompanhamento deve ser parte integrante desse esforço, em vez de ser um exercício isolado. Você pode ver como o sistema e seus recursos se comportam ao longo do tempo. Em seguida, você pode ajustá-los para maximizar seu valor e garantir que eles continuem a atender aos padrões de desempenho.

Tenha em mente que as metas de desempenho variam ao longo do tempo, em resposta a alterações. Atualize o modelo de desempenho com base em métricas testadas e monitoradas. Indicar claramente um efeito aumentado, reduzido ou nulo no desempenho dos fluxos.

Esteja sempre pronto para renegociar e redefinir as expectativas com as partes interessadas do negócio.

Cenário de exemplo

A Contoso Event Solutions oferece um produto que a equipe de entrada do evento pode usar para digitalizar ingressos em um dispositivo móvel e permitir rapidamente a entrada em um local com ingresso para aqueles autorizados. O sistema está disponível com um modo completamente offline e também como uma versão conectada à nuvem para locais preocupados com a duplicação de ingressos. O modo offline é de alto desempenho, mas o modo online estava faltando suas metas de desempenho. A equipe de desenvolvimento recentemente investiu alguns ciclos de desenvolvimento para trabalhar nele, e agora o desempenho está muito melhor e atingindo metas. As partes interessadas do negócio gostariam de expandir sua base de clientes para oferecer suporte a locais maiores em breve.

Teste de desempenho em desenvolvimento

Formalizar testes de desempenho como portas de qualidade que podem aprovar ou negar a promoção de lançamento e a implantação final para produção.

Esses pontos de verificação garantem que cada estágio de implantação atenda aos padrões de desempenho exigidos antes de prosseguir para o próximo. Os pontos de verificação ajudam a evitar a regressão não intencional do desempenho. Por exemplo, se o desempenho estiver significativamente abaixo das expectativas, você pode bloquear uma versão até que melhorias sejam feitas.

O desafio da Contoso

  • A equipe investiu tempo e esforço consideráveis para alcançar um desempenho aceitável para a versão on-line do aplicativo, mas eles não têm nenhum sistema em vigor atualmente para evitar uma regressão.
  • O próximo recurso que eles planejam adicionar é a capacidade de um local optar por mostrar uma foto do participante junto com a verificação para verificação adicional. Existe o risco de que a pesquisa e o download de fotos extras atrasem o processo.
  • Sem um processo formal em vigor, existe o risco de que o desempenho das versões online e offline possa ser negativamente afetado pela funcionalidade adicional e ficar abaixo dos seus objetivos.

Aplicação da abordagem e dos resultados

  • A equipe integra testes de desempenho automatizados no pipeline de compilação. Ao implementar critérios rigorosos de "ir/no-go" baseados em desempenho no pipeline de compilação, a equipe está mais confiante de que o novo recurso não será lançado com uma regressão de desempenho.
  • A equipe foi sábia para implementar esse teste, pois pegou um bug na versão mais recente da compilação. O bug forçou o aplicativo a tentar se conectar à internet para baixar uma imagem enquanto o scanner estava configurado para o modo offline, fazendo com que um tempo limite ocorresse a cada verificação de tíquetes. Pegar esse bug com o teste automatizado permitiu que a equipe corrigisse o bug antes de lançar a nova versão.

Otimizar através da observabilidade

Configure um processo repetível para monitorar transações reais na produção e desvios em relação às suas metas de desempenho. Além disso, use transações sintéticas na produção e configure alertas de monitoramento sobre regressões de desempenho.

Você quer informações sobre o desempenho real do seu sistema sob carga do mundo real que não pôde ser simulada através de testes. Em seguida, você pode identificar proativamente problemas e áreas de melhoria, como possíveis gargalos, recursos subutilizados e outras preocupações.

O desafio da Contoso

  • Durante um evento em que eles estão usando a validação de ingressos on-line, o sistema de back-end é muito usado.
  • Existe um sistema de monitoramento de desempenho de aplicativos (APM), mas ele não foi usado para monitorar a integridade das transações de produção.

Aplicação da abordagem e dos resultados

  • A equipe decidiu adotar processos atualizados para capturar melhor as métricas de saúde:
    • Eles configuram alertas com base em percentis de desempenho e para outliers de desempenho. Nenhum alerta indica que o sistema está funcionando em intervalos aceitáveis para a maioria das verificações de tíquetes.
    • Depois que um evento offline é concluído, a telemetria para verificações de tíquetes é carregada em lote e essas métricas também passam por um processo para procurar desvios do desempenho aceitável.
    • A equipe também implementa testes de transações sintéticas para aumentar seu monitoramento de desempenho. Como quase todos os eventos ocorrem nos fins de semana e à noite, a equipe usa testes de transações sintéticas ao longo da semana para gerar uma linha de base de desempenho mais consistente.

Lide com alterações de carga de trabalho de forma inteligente

Resolva a erosão do desempenho à medida que o uso aumenta, os recursos mudam e os dados se acumulam ao longo do tempo para manter o desempenho. Redefinir expectativas e estabelecer novas metas, se o ajuste fino trouxer apenas benefícios de curto prazo.

Ao adotar essa abordagem, você pode preservar o estado de desempenho antes que a degradação se transforme em problemas que afetem negativamente a experiência do usuário além do intervalo aceitável.

A alteração de metas redefine o modelo de desempenho e você não perde tempo otimizando o sistema que já atingiu sua capacidade.

O desafio da Contoso

  • A equipe de vendas tem integrado agressivamente novos locais de eventos no sistema. O negócio é bom.
  • O sistema de monitoramento de carga de trabalho começou a notar que o orçamento de desempenho está sendo consumido cada vez mais ao longo do tempo, mesmo sem a introdução de novos recursos.
  • Sem uma mudança, essa trajetória pode levar a uma regressão inaceitável no desempenho, colocando a carga de trabalho em risco de sofrer uma interrupção se ocorrer um incidente.

Aplicação da abordagem e dos resultados

  • A equipe percebe que, à medida que mais clientes se integram, o mecanismo de pesquisa de dados para eventos on-line está fazendo uma varredura muito grande sobre os dados para muitas consultas.
  • Algumas otimizações de consultas ajudaram a evitar que o aumento do uso causasse danos adicionais. Nos próximos meses, a equipe planeja dividir diferentes eventos em diferentes partições de dados para reduzir a necessidade de verificação de consultas. Isso apoiará a expansão contínua da carga de trabalho.
  • Eles também percebem que podem otimizar ainda mais o sistema para crescer, removendo dados de tíquetes de eventos antigos. Pesquisar eventos antigos não é algo que o sistema de validação de tíquetes deva precisar fazer, para que os dados possam ser movidos para uma loja dedicada a relatórios e pesquisa histórica.

Verifique o seu conhecimento

1.

Verdadeiro ou falso: testes de desempenho durante a produção não são recomendados.

2.

Quais dos seguintes aspetos da sua carga de trabalho você deve monitorar para ajudar a garantir que as metas de desempenho sejam atingidas?

3.

Por que a equipe da Contoso está planejando alterar sua estrutura de banco de dados?