Projeto para atender aos requisitos de capacidade

Concluído
Fornecer oferta suficiente para atender à demanda prevista.

É importante medir o desempenho de forma proativa. A medição do desempenho envolve a medição das linhas de base e a compreensão preliminar de quais componentes do sistema são suscetíveis de colocar desafios. Você pode alcançá-lo sem realizar um teste de desempenho completo ou por meio de otimização granular. Ao executar essas etapas iniciais, você estabelece uma base para um gerenciamento de desempenho eficaz no início do ciclo de vida do desenvolvimento.

Examine o sistema como um todo, em vez de se concentrar em componentes individuais. Evite ajustes finos nesta fase. Fazer melhorias granulares de desempenho resulta em compensações em outras áreas. À medida que você progride no ciclo de vida e inicia os testes de aceitação do usuário ou avança para a produção, você pode identificar rapidamente quais áreas exigem mais otimização.

Cenário de exemplo

A Contoso Manufacturing desenvolveu um aplicativo de microsserviços baseado em Java Spring usado internamente que é usado para monitorar e otimizar seus processos de fabricação. A equipe de carga de trabalho está no processo de migração do aplicativo, atualmente hospedado localmente, para o Azure.

O aplicativo hospedado no Azure será criado no Azure Spring Apps, no Banco de Dados do Azure para MySQL e no Hub IoT do Azure. A Contoso tem uma conexão de Rota Expressa com o Azure.

Projete a carga de trabalho de forma eficaz

Escolha os recursos certos em toda a pilha de tecnologia, o que permite que você atinja as metas de desempenho e se integre ao sistema. Considere recursos que possam atender aos requisitos de escalabilidade e encontre o equilíbrio certo entre alocação de recursos e requisitos do sistema, para lidar com picos inesperados de forma eficiente.

Ao analisar os diferentes recursos dos recursos, você garante que cada componente contribua para a funcionalidade geral e o desempenho do sistema e pode identificar a funcionalidade de dimensionamento da qual pode ser aproveitada.

Os recursos de dimensionamento correto podem atender às mudanças na demanda sem provisionamento excessivo, o que leva a economias de custos.

O desafio da Contoso

  • A infraestrutura de ambiente de aplicativo local existente é totalmente gerenciada pela Contoso, o que sobrecarrega significativamente a equipe. Atualmente, eles provisionam e mantêm servidores, redes e armazenamento, bem como configuram e atualizam o tempo de execução do serviço Java Spring e todas as dependências.
  • A equipe está ansiosa para migrar para um modelo PaaS com o Azure Spring Apps, o que permitirá que a equipe concentre mais de sua energia em garantir que seu aplicativo forneça o valor comercial pretendido e dedique menos tempo ao gerenciamento da infraestrutura.
  • Esse aplicativo é fundamental para os negócios da Contoso e tem requisitos de desempenho rigorosos, portanto, eles precisam garantir que as escolhas tecnológicas que fizerem como parte da migração lhes permitam atender a esses requisitos.

Aplicação da abordagem e dos resultados

  • Depois de comparar os diferentes planos disponíveis, a equipe opta pelo plano Azure Spring Apps Standard, que fornece um serviço totalmente gerenciado para aplicativos Spring Boot, otimizado para tráfego de produção. Com um máximo de 500 instâncias por aplicativo, o plano Standard é capaz de fornecer capacidade de computação suficiente para o uso máximo previsto.
  • Além disso, o serviço pode ser configurado para escalar conforme necessário e dimensionará recursos de computação quando a capacidade extra não for necessária.
  • A equipe analisou o plano Enterprise, que é capaz de escalar até 1000 instâncias por aplicativo, mas decidiu que não precisará dessa quantidade de capacidade neste momento. Eles também estão confiantes de que não precisam do nível de suporte que o plano Enterprise oferece, ou do resto de seus recursos exclusivos.

Prever adequadamente as necessidades de capacidade

Faça o planejamento de capacidade com base na demanda e na capacidade dos recursos selecionados para enriquecer seu modelo de desempenho. Use técnicas de modelagem preditiva para prever mudanças antecipadas na capacidade que podem ocorrer com alterações previsíveis e inesperadas. Definir metas de desempenho que possam ser traduzidas em requisitos técnicos.

Ao adotar essa abordagem, você pode usar recursos de forma eficiente e atender à demanda sem provisionamento excessivo, evitando custos desnecessários. Além disso, irá ajudá-lo a compreender como as escolhas de design afetam o desempenho.

O desafio da Contoso

  • Para maximizar o uso eficiente do maquinário de produção, a linha de produção da Contoso opera em um cronograma cíclico, produzindo produtos diferentes em diferentes momentos do dia.
  • Cada produto requer operações diferentes e, portanto, necessidades computacionais diferentes da aplicação de controle. Durante a troca entre produtos, o aplicativo de controle precisa executar uma variedade de tarefas que exigem maior capacidade de computação, como analisar dados da execução de produção anterior e atualizar os algoritmos de controle para as máquinas.

Aplicação da abordagem e dos resultados

  • Para atender à maior demanda durante os períodos de transição, a equipe primeiro identifica os fluxos que lidam com a funcionalidade de transição, documentando seus requisitos de desempenho e estimando seus volumes de transações com base na versão local do aplicativo. Armada com esses dados, a equipe passa a estimar a capacidade de computação necessária para os microsserviços que fazem parte dos fluxos de destino.
  • O dimensionamento automático é configurado para esses componentes, garantindo que recursos adicionais sejam provisionados antes do período de comutação e liberados após a conclusão das tarefas.
  • As configurações de dimensionamento automático serão ajustadas antes de implantar o aplicativo na produção, com base no desempenho real no novo ambiente.

Implementação da prova de conceito

Implementar uma prova de conceito (POC) que valide os requisitos técnicos e as escolhas de projeto.

Uma prova de conceito é fundamental para validar o projeto para determinar se o sistema pode cumprir as metas de desempenho e se essas metas são realistas. Com base na carga prevista, você pode validar se a capacidade prevista pode atender às metas de desempenho.

Além disso, verifique as implicações de custo das escolhas de design.

O desafio da Contoso

  • Durante o desenvolvimento, a equipe está realizando extensos testes de carga e desempenho da funcionalidade do aplicativo usando simuladores de dispositivo e está usando essas informações para otimizar a configuração de dimensionamento automático.
  • Um aspeto que pode afetar a eficácia da configuração de dimensionamento automático é a latência de rede potencial que se comunica do ambiente do Azure Spring Apps para os dispositivos IoT no chão de fábrica, que é conectado ao Azure via ExpressRoute. A equipe especula que a latência será maior no Azure do que na versão local se o aplicativo for e que a latência também pode ser afetada por outros fatores, como a hora do dia ou a localização do dispositivo.
  • Um aumento na latência provavelmente teria um impacto no volume de transações que cada instância de microsserviço seria capaz de processar.

Aplicação da abordagem e dos resultados

  • A equipe decide implantar um POC no Azure para validar suas hipóteses e coletar métricas que podem ser usadas para otimizar a configuração. Eles criam um aplicativo Azure Spring de teste para se comunicar com dispositivos IoT espalhados pelo chão de fábrica. Os dispositivos IoT estão conectados à rede local e registrados no Hub IoT do Azure. O aplicativo de teste se conecta aleatoriamente aos dispositivos ao longo do dia, enviando um ping simples e registra o tempo que leva para receber uma resposta.
  • Os dados capturados durante este POC, combinados com os resultados do teste de carga, permitirão que a equipe estime com mais precisão a capacidade de computação necessária, à medida que se prepara para o lançamento inicial da produção.
  • A equipe também está procurando maneiras de melhorar ainda mais os casos de teste usados para testes de carga para simular tempos de resposta mais realistas com base nos aprendizados do POC.

Verifique o seu conhecimento

1.

No contexto do design para atender aos requisitos de capacidade, qual é uma maneira de escolher os recursos certos para sua carga de trabalho?

2.

Para que você deve usar a modelagem preditiva?

3.

Qual é uma hipótese que a Contoso estava tentando validar com sua implantação POC?