Concevoir pour répondre aux exigences de capacité

Effectué
Fournir suffisamment d’approvisionnement pour répondre à la demande prévue.

Il est important de mesurer les performances de manière proactive. La mesure des performances implique de mesurer les bases de référence et d’avoir une compréhension préliminaire des composants du système susceptibles de poser des défis. Vous pouvez l’atteindre sans effectuer de test de performances complet ou par le biais d’une optimisation granulaire. En effectuant ces étapes initiales, vous établissez une base pour une gestion efficace des performances au début du cycle de vie du développement.

Examinez le système dans son ensemble, plutôt que de vous concentrer sur des composants individuels. Évitez le réglage précis à ce stade. L’amélioration granulaire des performances entraîne des compromis dans d’autres domaines. Au fur et à mesure que vous progressez dans le cycle de vie et commencez les tests d’acceptation des utilisateurs ou passez à la production, vous pouvez rapidement identifier les domaines qui nécessitent une optimisation supplémentaire.

Exemple de scénario

Contoso Manufacturing a développé une application de microservices Java Spring utilisée en interne pour surveiller et optimiser ses processus de fabrication. L’équipe de charge de travail est en train de migrer l’application, actuellement hébergée localement, vers Azure.

L’application hébergée par Azure sera basée sur Azure Spring Apps, Azure Database pour MySQL et Azure IoT Hub. Contoso dispose d’une connexion ExpressRoute à Azure.

Concevoir efficacement la charge de travail

Choisissez les ressources appropriées dans la pile technologique, ce qui vous permet de répondre aux objectifs de performances et d’intégrer le système. Tenez compte des fonctionnalités qui peuvent répondre aux exigences de scalabilité et trouver le bon équilibre entre l’allocation de ressources et la configuration système requise pour gérer efficacement les augmentations inattendues.

En analysant les différentes fonctionnalités des ressources, vous vous assurez que chaque composant contribue à la fonctionnalité globale et aux performances du système, et que vous pouvez identifier les fonctionnalités de mise à l’échelle dont vous pouvez tirer parti.

Les ressources de dimensionnement approprié peuvent répondre aux changements de la demande sans surapprovisionnement, ce qui entraîne des économies de coûts.

Problématique de Contoso

  • L’infrastructure d’environnement d’application locale existante est entièrement gérée par Contoso, ce qui impose une charge importante à l’équipe. Ils approvisionnent et gèrent actuellement des serveurs, des réseaux et du stockage, ainsi que configurent et mettent à jour le runtime du service Java Spring et toutes les dépendances.
  • L’équipe est impatiente de migrer vers un modèle PaaS avec Azure Spring Apps, ce qui permettra à l’équipe de concentrer davantage son énergie sur la fourniture de la valeur métier prévue et de consacrer moins de temps à la gestion de l’infrastructure.
  • Cette application est essentielle pour l’entreprise de Contoso et présente des exigences strictes en matière de performances, de sorte qu’elle doit s’assurer que les choix technologiques qu’ils effectuent dans le cadre de la migration leur permettront de répondre à ces exigences.

Application de l’approche et résultats

  • Après avoir comparé les différents plans disponibles, l’équipe opte pour le plan Azure Spring Apps Standard, qui fournit un service entièrement géré pour les applications Spring Boot, optimisé pour le trafic de production. Avec un maximum de 500 instances par application, le plan Standard est en mesure de fournir suffisamment de capacité de calcul pour l’utilisation maximale prévue.
  • En outre, le service peut être configuré pour effectuer un scale-out en fonction des besoins et effectuera un scale-in des ressources de calcul lorsque la capacité supplémentaire n’est pas nécessaire.
  • L’équipe a examiné le plan Entreprise, qui est en mesure de monter en puissance jusqu’à 1 000 instances par application, mais a décidé qu’ils n’auront pas besoin de cette quantité de capacité à ce stade. Ils sont également confiants qu’ils n’ont pas besoin du niveau de support des offres de plan Entreprise, ou du reste de ses fonctionnalités exclusives.

Prévoir correctement les besoins en capacité

Planifiez la capacité en fonction de la demande et de la capacité des ressources sélectionnées pour enrichir votre modèle de performances. Utilisez des techniques de modélisation prédictive pour prévoir les changements prévus dans la capacité qui peuvent se produire avec des changements prévisibles et inattendus. Définissez des cibles de performances qui peuvent être traduites en exigences techniques.

En adoptant cette approche, vous pouvez utiliser efficacement les ressources et répondre à la demande sans surprovisionnement, ce qui évite les coûts inutiles. En outre, il vous aidera à comprendre comment les choix de conception affectent les performances.

Problématique de Contoso

  • Pour optimiser l’utilisation efficace des machines de production, la ligne de production de Contoso fonctionne selon un calendrier cyclique, produisant différents produits à différents moments de la journée.
  • Chaque produit nécessite des opérations différentes et donc des besoins de calcul différents de l’application de contrôle. Pendant le changement entre les produits, l’application de contrôle doit effectuer diverses tâches nécessitant une capacité de calcul accrue, comme l’analyse des données de l’exécution de production précédente et la mise à jour des algorithmes de contrôle pour les machines.

Application de l’approche et résultats

  • Pour répondre à la demande plus élevée pendant les périodes de basculement, l’équipe identifie d’abord les flux qui gèrent la fonctionnalité de basculement, documentant leurs besoins en matière de performances et en évaluant leurs volumes de transactions en fonction de la version locale de l’application. Avec ces données, l’équipe procède à l’estimation de la capacité de calcul nécessaire par les microservices qui font partie des flux cibles.
  • La mise à l’échelle automatique est configurée pour ces composants, ce qui garantit que des ressources supplémentaires sont approvisionnées avant la période de basculement et libérées une fois les tâches effectuées.
  • Les paramètres de mise à l’échelle automatique seront ajustés avant de déployer l’application en production, en fonction des performances réelles dans le nouvel environnement.

Déploiement de preuve de concept

Implémenter une preuve de concept (POC) qui valide les exigences techniques et les choix de conception.

Une preuve de concept est essentielle à la validation de la conception pour déterminer si le système peut atteindre les objectifs de performances et si ces cibles sont réalistes. En fonction de la charge prévue, vous pouvez vérifier si la capacité prévue peut atteindre les objectifs de performances.

Vérifiez également les implications du coût des choix de conception.

Problématique de Contoso

  • Pendant le développement, l’équipe effectue des tests de charge et de performances étendus de la fonctionnalité d’application à l’aide de simulateurs d’appareils et utilise ces informations pour optimiser la configuration de la mise à l’échelle automatique.
  • L’un des aspects qui peuvent affecter l’efficacité de la configuration de la mise à l’échelle automatique est la latence réseau potentielle qui communique de l’environnement Azure Spring Apps aux appareils IoT dans le plancher de fabrication, qui est connectée à Azure via ExpressRoute. L’équipe spécule que la latence sera plus élevée dans Azure que pour la version locale si l’application, et que la latence peut également être affectée par d’autres facteurs, comme l’heure de la journée ou l’emplacement de l’appareil.
  • Une augmentation de la latence aurait probablement un impact sur le volume de transactions que chaque instance de microservice serait en mesure de traiter.

Application de l’approche et résultats

  • L’équipe décide de déployer un POC sur Azure pour valider ses hypothèses et collecter des métriques qui peuvent être utilisées pour optimiser la configuration. Ils créent un test Azure Spring App pour communiquer avec les appareils IoT répartis sur le plancher de fabrication. Les appareils IoT sont connectés au réseau local et sont inscrits auprès d’Azure IoT Hub. L’application de test se connecte de façon aléatoire aux appareils tout au long de la journée en envoyant un test ping simple et enregistre le temps nécessaire pour recevoir une réponse.
  • Les données capturées pendant cette POC, combinées aux résultats des tests de charge, permettront à l’équipe d’estimer plus précisément la capacité de calcul nécessaire, car elle prépare le lancement de production initial.
  • L’équipe examine également les moyens d’améliorer davantage les cas de test utilisés pour les tests de charge afin de simuler des temps de réponse plus réalistes en fonction des enseignements tirés de la POC.

Contrôle de vos connaissances

1.

Dans le cadre d'une conception visant à répondre aux exigences de capacité, comment pouvez-vous choisir les bonnes ressources pour votre charge de travail ?

2.

Que devez-vous utiliser pour la modélisation prédictive ?

3.

Quelle est l’hypothèse selon laquelle Contoso essayait de valider son déploiement POC ?