LFCA : Apprenez la disponibilité, les performances et la scalabilité cloud – Partie 14

Dans le sujet précédent de notre série LFCA, nous avons présenté le cloud computing, ses différents types et services, et nous avons abordé certains des avantages associés au cloud computing.

Si votre entreprise est toujours ancrée dans un environnement informatique traditionnel, il est temps de passer à l’ère du cloud. D’après les estimations, d’ici la fin de 2021, plus de 90% du volume de travail total sera traité dans le cloud.

Parmi les principaux avantages du recours au cloud computing, on compte des performances améliorées, une disponibilité élevée et une scalabilité. Nous en avons d’ailleurs brièvement parlé comme étant un des principaux atouts du cloud.

Dans ce sujet, nous nous concentrons sur la disponibilité, les performances et la scalabilité dans le cloud, et nous cherchons à comprendre comment ces trois éléments se combinent pour répondre à la demande des clients et garantir aux utilisateurs un accès à leurs données, où qu’ils se trouvent dans le monde.

1. Disponibilité dans le cloud

Les applications et services IT d’une organisation sont critiques, et toute interruption de service peut avoir un impact majeur sur ses revenus. Les clients attendent des services accessibles 24 heures sur 24, et ce, à tout moment et depuis n’importe quel endroit. C’est exactly ce que la technologie cloud vise à offrir.

La disponibilité permanente est l’objectif ultime de l’informatique en nuage. Elle vise à fournir le temps de disponibilité maximal possible des services d’une entreprise, même en cas de perturbation due à une panne de serveur imprévue ou à une dégradation du réseau.

La disponibilité permanente est rendue possible grâce à la présence de systèmes redondants et de basculement. Cela se produit dans un environnement de cluster où plusieurs serveurs ou systèmes effectuent les mêmes tâches, offrant ainsi une redondance.

Lorsqu’un serveur tombe en panne, les autres peuvent continuer à fonctionner et à fournir les services fournis par le serveur affecté. Un exemple parfait de redondance est la réplication des données sur plusieurs serveurs de base de données dans un cluster. Si le serveur de base de données principal du cluster rencontre un problème, un autre serveur de base de données fournira toujours les données nécessaires aux utilisateurs malgré la défaillance.

La redondance élimine un point de défaillance unique et garantit une disponibilité de 99,999 % des services et des applications. Le clustering permet également d’équilibrer la charge entre les serveurs et de s’assurer que la charge de travail est répartie de manière équitable, sans qu’aucun serveur ne soit surchargé.

2. Scalabilité en nuage

Un autre aspect caractéristique de l’informatique en nuage est la scalabilité. La scalabilité est la capacité d’ajuster les ressources en nuage pour répondre aux demandes changeantes. En d’autres termes, vous pouvez augmenter ou diminuer facilement les ressources en fonction des besoins pour répondre à la demande sans compromettre la qualité des services ou le temps d’arrêt.

Supposez que vous gérez un blog qui commence à recevoir des visites et plus de trafic. Vous pouvez facilement ajouter plus de ressources informatiques telles que du stockage, de la RAM et du CPU à votre instance de calcul cloud pour gérer la charge de travail supplémentaire. De même, vous pouvez réduire les ressources lorsque cela est nécessaire. Cela garantit que vous ne payez que ce dont vous avez besoin, et cela souligne les économies d’échelle offertes par le cloud.

La scalabilité est double : la scalabilité verticale et la scalabilité horizontale.

Scalabilité verticale

Aussi appelée « montée en puissance », la scalabilité verticale consiste à ajouter plus de ressources telles que de la RAM, du stockage et du CPU à votre instance de calcul cloud pour accueillir une charge de travail supplémentaire. Cela équivaut à éteindre votre PC physique ou votre serveur pour mettre à niveau la RAM ou ajouter un disque dur supplémentaire ou un SSD.

Scalabilité horizontale

La scalabilité horizontale, également connue sous le nom de « déploiement », consiste à ajouter plus de serveurs à votre pool de serveurs existants pour répartir la charge de travail sur plusieurs serveurs. Avec la scalabilité horizontale, vous n’êtes pas limité à la capacité d’un seul serveur, contrairement à la scalabilité verticale. Cela offre une plus grande scalabilité et moins d’interruptions de service.

Le déploiement est plus souhaitable par rapport à la montée en puissance.

Avec la mise à l’échelle horizontale, vous ajoutez essentiellement plus de ressources telles que des serveurs ou du stockage à votre pool de ressources déjà existant. Cela vous permet de combiner la puissance et les performances de plusieurs instances de calcul en une seule, et donc d’obtenir de meilleures performances par rapport à simplement ajouter des ressources sur un seul serveur. Des serveurs supplémentaires impliquent que vous n’aurez pas à faire face à un déficit de ressources.

De plus, la mise à l’échelle horizontale offre une redondance et une tolérance aux pannes de telle manière que même si un serveur est impacté, les autres continueront à fournir l’accès aux services requis. La mise à l’échelle verticale est associée à un point de défaillance unique. Si l’instance de calcul plante, alors tout s’arrête avec elle.

La mise à l’échelle horizontale offre également une flexibilité maximale par rapport à la mise à l’échelle verticale où les applications sont construites comme une seule grande unité. Cela rend plus difficile la gestion, la mise à niveau ou le changement de sections de code sans avoir à redémarrer l’ensemble du système. L’extension permet de découpler les applications et permet une mise à niveau transparente avec un temps d’arrêt minimal.

3. Performance dans le Cloud

Assurer que les performances de l’application répondent aux exigences des clients peut être assez difficile, surtout si vous avez plusieurs composants installés dans différents environnements qui doivent communiquer constamment entre eux.

Les problèmes tels que la latence sont susceptibles de se manifester et d’impact sur les performances. De plus, il n’est pas facile de prédire les performances lorsque les ressources sont partagées par diverses entités. Néanmoins, vous pouvez toujours obtenir de hautes performances et rester à flot en mettant en œuvre les mesures suivantes.

1. Instance Cloud

Assurez-vous d’utiliser les bonnes instances cloud avec suffisamment de ressources pour gérer les charges de travail de vos applications et services. Pour les applications intensives en ressources, assurez-vous de provisionner suffisamment de RAM, de CPU et de ressources de stockage à votre instance cloud pour éviter un possible déficit de ressources.

2. Équilibreur de charge

Implémentez un équilibreur de charge pour répartir équitablement le trafic réseau entre vos ressources. Cela garantira qu’aucune de vos applications ne soit submergée par la demande. Supposons que votre serveur web reçoive beaucoup de trafic qui cause des retards et impacte les performances.

A perfect solution would be to implement horizontal scaling with a total of 4 web servers sitting behind a load balancer. The load balancer will distribute network traffic across the 4 web servers and ensure none is overwhelmed by the workload.

3. Mise en cache

Utilisez des solutions de mise en cache pour accélérer l’accès aux fichiers par les applications. Les caches stockent des données fréquemment lues et éliminent ainsi les recherches constantes de données qui peuvent impacter les performances. Ils réduisent la latence et la charge de travail car les données sont déjà mises en cache, améliorant ainsi les temps de réponse.

La mise en cache peut être implémentée à différents niveaux tels que le niveau d’application, le niveau de la base de données. Les outils de mise en cache populaires incluent Redis, Memcached et la cache Varnish.

4. Surveillance des performances

Enfin, assurez-vous de surveiller les performances de vos serveurs et applications. Les fournisseurs de cloud proposent des outils natifs qui peuvent vous aider à garder un œil sur vos serveurs cloud depuis un navigateur web.

De plus, vous pouvez prendre votre propre initiative et installer des outils de surveillance gratuits et open source qui peuvent vous aider à garder un œil sur vos applications et serveurs. Des exemples de telles applications incluent Grafana, Netdata et Prometheus, pour en citer quelques-unes.

Conclusion

Nous ne pouvons pas assez souligner à quel point la disponibilité, l’évolutivité et les performances sont cruciales dans le cloud. Ces trois facteurs déterminent la qualité de service que vous obtiendrez de votre fournisseur de cloud et tracent en fin de compte la ligne entre le succès ou l’échec de votre entreprise.

Source:
https://www.tecmint.com/cloud-availability-performance-and-scalability/