Pour tout type de scaling, tenez compte de l'architecture de votre application et des optimisations possibles. Par exemple, le contenu statique doit être diffusé à partir de réseaux de diffusion de contenu optimisés qui offrent des avantages en termes de prix et de performances. Une mise en cache supplémentaire pour le backend de stockage de données peut également améliorer les performances et minimiser les exigences en cas de scaling coûteux.
Tests de performances et benchmarks
L'analyse comparative et les tests de performances peuvent identifier les goulots d'étranglement qui affectent les performances potentiels pendant le développement, vous aider à suivre les tendances au fil du temps et faciliter la prise de décision en comparant les architectures, les piles technologiques, les fournisseurs cloud ou d'autres options.
Les tests de charge utilisent des types de charge, de trafic ou de données contrôlés et prédéterminés pour mesurer les performances de votre backend par rapport à vos objectifs. Vous pouvez voir l'impact de différents niveaux de charge sur les performances de votre application.
Les tests d'évolutivité se concentrent sur l'analyse de la capacité de votre application à évoluer à la hausse ou à la baisse. Les tests d'évolutivité montrent comment votre application réagit à des charges accrues et comment le backend (y compris le stockage des données) s'adapte.
Avant de commencer l'analyse comparative de l'application, définissez des objectifs clairs, tels que les performances et la vitesse (par exemple, la latence, le débit, la vitesse), l'utilisation des ressources (utilisation du processeur et de la mémoire, trafic réseau entre les composants backend) et le coût. Tenez compte des retards de scaling, par exemple si l'application doit évoluer au-delà d'un ensemble alloué de ressources de "réserve" en cas d'utilisation intensive ou de pics de trafic.
De nombreux outils, tels qu'Apache JMeter et Locust, sont disponibles pour l'analyse comparative et les tests de performances. Lorsque vous sélectionnez un outil de test, tenez compte des types de tests disponibles, y compris la compatibilité avec les scripts, les intégrations IDE pour le débogage, les plug-ins supplémentaires ou la compatibilité avec le type de trafic et l'évolutivité à tester.
Si vous faites appel à un fournisseur cloud, déterminez s'il existe des exigences ou des bonnes pratiques supplémentaires pour les tests de charge afin d'éviter d'éventuelles restrictions. Par exemple, consultez les bonnes pratiques pour Cloud Run.
Considérations sur les coûts et les performances
Bien que le scaling à la hausse soit essentiel pour améliorer les performances, il est également nécessaire de le faire pour minimiser les coûts. Tenez compte du coût de référence de votre application backend sans aucune requête, ainsi que du coût associé au scaling à la hausse de l'application.
Des coûts fixes peuvent vous être facturés pour les architectures sur site ou basées sur des serveurs, quel que soit votre niveau d'utilisation. Certains environnements cloud vous permettent d'effectuer un scaling à zéro instance afin d'éviter les coûts en l'absence de requêtes. Les fournisseurs cloud vous proposent des calculateurs vous permettant d'explorer différentes configurations et stratégies de tarification, telles que les préengagements pour les ressources.