Cloud Computing : des principes d'infrastructure aux meilleures pratiques : performances et évolutivité du cloud computing

Auteur : Zen et l'art de la programmation informatique

1. Introduction générale

Aperçu

Le cloud computing est un type de service qui regroupe, partage, gère et traite diverses ressources informatiques (telles que des serveurs, des périphériques de stockage, des applications, etc.) via le réseau. Avec le développement d’Internet, le cloud computing est également devenu un sujet brûlant ces dernières années. De plus en plus de gens commencent à prendre conscience de la valeur du cloud computing et de plus en plus de personnes choisissent d'acheter et d'utiliser des services de cloud computing. Qu'il s'agisse de grandes entreprises ou de petites et moyennes personnes, elles participent activement à cette vague. Pour que le cloud computing joue véritablement le rôle qui lui revient, la conception, le déploiement, l'exploitation et la maintenance, la surveillance et la gestion de l'infrastructure du cloud computing (c'est-à-dire le matériel et les logiciels sous-jacents) doivent être pleinement préparés. Les fournisseurs de cloud computing doivent fournir une infrastructure hautement fiable, évolutive et efficace afin que les utilisateurs puissent bénéficier de services complets et de haute qualité. Cet article abordera deux aspects du cloud computing, les performances et l'évolutivité. Les performances du cloud computing font référence à la capacité de la plate-forme de cloud computing à répondre aux besoins des utilisateurs en ressources informatiques et à maintenir une vitesse de réponse et une stabilité élevées. L'évolutivité du cloud computing signifie que la plate-forme de cloud computing peut ajuster automatiquement l'échelle des ressources informatiques en fonction de la croissance de l'entreprise, des changements du marché, de la pression concurrentielle et d'autres facteurs, et maximiser les niveaux de performances.

Performances du cloud computing

Les performances du cloud computing font référence à la puissance de calcul que la plateforme de cloud computing peut fournir aux utilisateurs. Les plates-formes de cloud computing utilisent généralement la virtualisation pour allouer et partager des ressources informatiques. Chaque machine virtuelle peut se voir attribuer différentes quantités de CPU, de mémoire, de stockage et de bande passante réseau. Ces machines virtuelles sont réparties dans différents centres de données, racks et même zones cloud, et sont connectées les unes aux autres via des réseaux à haut débit et à faible latence. Par conséquent, les performances informatiques des plateformes de cloud computing dépendent des performances de l’infrastructure sous-jacente.

Optimisation des performances au niveau matériel

L'optimisation des performances au niveau matériel des plates-formes de cloud computing implique la configuration, l'architecture, les méthodes de déploiement et les interfaces réseau des serveurs sous-jacents. Comme le montre la figure ci-dessous, les composants matériels d'une plate-forme de cloud computing typique comprennent des serveurs hôtes, des commutateurs, des périphériques de stockage et des périphériques réseau. Parmi eux, la configuration du serveur hôte détermine les performances globales de la plateforme de cloud computing, il est donc très important d'optimiser la configuration du serveur hôte. Voici quelques points de configuration :

1.CPU : l'optimisation de la configuration du processeur peut améliorer les performances globales de la plate-forme de cloud computing. Lors du choix d'un serveur, vous devez choisir un serveur avec un nombre de cœurs plus élevé afin d'obtenir de meilleures performances informatiques dans les mêmes conditions matérielles. Dans le même temps, la taille du cache du processeur est également importante. Pour les applications gourmandes en E/S, le cache du processeur doit être suffisamment grand ; pour les applications gourmandes en calcul, le cache du processeur doit être défini plus petit.

2. Mémoire : la mémoire est également un élément clé des plates-formes de cloud computing car elle affecte directement la vitesse, la latence et la capacité d'exécution des applications. Pour la configuration de la mémoire, il est généralement nécessaire de s'assurer que le rapport entre la capacité totale de la mémoire et la capacité totale inactive est d'environ 1:1-1:2, sinon les performances du système seront affectées. De plus, la consommation de mémoire peut être réduite grâce à l'optimisation et à la planification des applications.

3. Disque : Les performances de stockage de la plateforme de cloud computing sont également très importantes. Les disques utilisés par les plates-formes de cloud computing sont généralement relativement bon marché, mais présentent en même temps les caractéristiques d'un énorme espace de stockage. Par conséquent, il est très nécessaire de choisir des périphériques de stockage tels que des disques SSD relativement rapides et économiques ou des SAN pass-through (Storage Area Network). Si le stockage de la plate-forme de cloud computing doit être automatiquement étendu, les performances des disques et la vitesse d'accès entre eux doivent être prises en compte.

4. Réseau : les plates-formes de cloud computing se composent généralement de plusieurs centres de données et sont réparties dans différentes régions. Les performances du réseau sont également un facteur limitant important pour les plates-formes de cloud computing. Il y a plusieurs choses à noter ici : premièrement, choisissez autant que possible un support de transmission réseau à haut débit et à faible latence ; deuxièmement, choisissez une bonne stratégie de routage réseau pour garantir que tout le trafic de données sur la plate-forme de cloud computing a un chemin optimisé. ; troisièmement, utilisez des protocoles de transmission Intranet tels que TCP/IP au lieu d'UDP pour éviter les problèmes de performances causés par la congestion du réseau.

Pour résumer, l'optimisation des performances au niveau matériel se concentre principalement sur la configuration, la mémoire, le disque, le réseau et d'autres composants du serveur hôte. La manière d'optimiser en fonction des scénarios d'application dépend du type et des caractéristiques de l'application. Par exemple, pour les applications gourmandes en ressources informatiques, vous pouvez envisager d'activer la technologie hyper-threading et de réduire la création de ressources inutiles (telles que les processus), améliorant ainsi les performances globales de la plateforme de cloud computing ; pour les applications gourmandes en E/S, vous Vous pouvez envisager d'utiliser des disques SSD, des cartes RAID plus rapides et d'autres méthodes pour améliorer les performances d'E/S.

Optimisation des performances au niveau logiciel

Outre l'optimisation des performances au niveau matériel, le niveau logiciel de la plateforme de cloud computing doit également être optimisé. Il existe de nombreuses méthodes d'optimisation au niveau logiciel, mais la méthode la plus efficace est le déploiement d'une architecture de microservices. L'architecture de microservices est un modèle architectural du cloud computing. Elle divise une application complexe en plusieurs petits services indépendants, puis communique via des API légères. Grâce à cette architecture, les performances logicielles de la plateforme de cloud computing peuvent être optimisées.

1. Technologie des conteneurs : étant donné que les applications à forte intensité informatique de la plate-forme de cloud computing ont un parallélisme élevé, l'utilisation de la technologie des conteneurs peut considérablement améliorer les performances globales de la plate-forme de cloud computing. La technologie des conteneurs permet aux applications d'être regroupées dans une image standard, puis déployées sur n'importe quel moteur de conteneur prenant en charge la norme OCI. Les images de conteneurs peuvent aider les plates-formes de cloud computing à économiser de l'espace de stockage et à accélérer le déploiement. En outre, la technologie des conteneurs peut également faciliter l’isolation des ressources et la mise à l’échelle élastique.

2. Planificateur de plate-forme cloud : le planificateur de plate-forme de cloud computing peut allouer dynamiquement des ressources informatiques pour répondre aux besoins en temps réel de la plate-forme de cloud computing. Le planificateur de plateforme cloud peut utiliser des modèles de file d'attente, des modèles multi-locataires ou des modèles prédictifs pour allouer les ressources informatiques les plus adaptées à la charge de travail actuelle.

3. Grille de services de plateforme cloud : La grille de services d'une plateforme de cloud computing est une couche d'infrastructure utilisée pour la communication entre les services. Le maillage de services utilise le proxy Sidecar pour intercepter le trafic de données entre les microservices et gérer le routage du trafic, la coupure des circuits, la limitation de courant et la surveillance des microservices. Grâce au maillage de services, la plate-forme de cloud computing peut fournir des appels de service à haute disponibilité et à faible latence.

4. Analyse des journaux de la plate-forme cloud : l'analyse des journaux de la plate-forme cloud computing peut aider à comprendre l'état de fonctionnement interne de la plate-forme cloud computing et à découvrir les goulots d'étranglement des performances. Les données des journaux peuvent être collectées, analysées, stockées et récupérées. L'analyse des journaux peut aider à localiser et à résoudre rapidement les problèmes.

5. Outils d'exploitation et de maintenance automatisés de la plate-forme cloud : les outils d'exploitation et de maintenance automatisés de la plate-forme de cloud computing peuvent aider les administrateurs à gérer la plate-forme de cloud computing rapidement et avec précision. Les outils automatisés d'exploitation et de maintenance peuvent détecter et corriger les erreurs de configuration du système, effectuer des sauvegardes, des processus de récupération, des mises à niveau logicielles et d'autres opérations.

Grâce aux méthodes ci-dessus, les performances de la plateforme de cloud computing peuvent également être considérablement améliorées. En outre, il existe d'autres méthodes pour améliorer les performances des plates-formes de cloud computing, telles que des modèles de prédiction basés sur l'apprentissage automatique, l'utilisation de pools de ressources informatiques hétérogènes, la prise en charge de modèles multi-locataires, etc. Cependant, aucune des méthodes ci-dessus ne peut remplacer l'optimisation des performances de la plate-forme de cloud computing au niveau matériel et logiciel, mais seulement l'améliorer dans une certaine mesure.

Évolutivité du cloud computing

L'évolutivité du cloud computing signifie que la plate-forme de cloud computing peut ajuster automatiquement l'échelle des ressources informatiques en fonction de la croissance de l'entreprise, des changements du marché, de la pression concurrentielle et d'autres facteurs, et maximiser les niveaux de performances.

Mise à l'échelle élastique de la plateforme cloud

L'évolutivité est une caractéristique importante du cloud computing. L’objectif de la mise à l’échelle élastique des plateformes cloud est d’ajuster automatiquement l’échelle des ressources informatiques à tout moment pour répondre à la croissance de l’entreprise et aux besoins d’urgence. La mise à l'échelle élastique peut ajuster l'échelle des ressources informatiques en fonction de l'utilisation actuelle de l'entreprise, de l'augmentation et de la diminution de la charge, des changements du marché et d'autres facteurs. Le mécanisme de mise à l'échelle élastique peut ajuster automatiquement les ressources informatiques de la plate-forme cloud pour éviter une occupation excessive des ressources système, une incapacité à répondre aux besoins de l'entreprise ou des réductions de prix.

expansion verticale

L'évolutivité verticale fait référence à l'augmentation ou à la diminution des ressources matérielles de la plate-forme de cloud computing en fonction des besoins des utilisateurs. Au cours du processus d'expansion verticale, le nombre de mémoire, de processeur, de stockage, de réseau et d'autres composants peut être augmenté. Lorsque l'utilisation des utilisateurs augmente, des problèmes d'allocation des ressources sur la plate-forme de cloud computing surviendront. A cette époque, une expansion verticale est nécessaire. L'expansion verticale se produit principalement dans les applications à forte intensité informatique.

Expansion horizontale

L'évolutivité horizontale fait référence à l'augmentation du nombre de nœuds de calcul pour améliorer la puissance de calcul de la plate-forme de cloud computing. Dans le processus d'expansion horizontale, le nombre de nœuds, la bande passante du réseau, le stockage, etc. peuvent être augmentés. L'expansion horizontale peut être optimisée pour les applications gourmandes en calcul et en E/S.

Informatique distribuée

L'architecture informatique distribuée de la plateforme informatique en nuage peut simplifier la conception, le déploiement et la maintenance de la plateforme informatique en nuage. L'architecture informatique distribuée permet aux nœuds informatiques de la plate-forme de cloud computing d'être répartis dans plusieurs centres de données, racks et même zones cloud, et les ressources peuvent être allouées indépendamment. La conception de cette architecture signifie que la plate-forme de cloud computing n'a pas besoin de prendre en compte les points de défaillance uniques, car l'intégralité de la plate-forme est en ligne. Cependant, cette architecture introduit également de nouvelles complexités. L'architecture informatique distribuée doit prendre en compte une série de problèmes complexes tels que la cohérence des données, l'équilibrage de charge, la reprise après sinistre, etc.

Équilibrage de charge élastique

Elastic Load Balancing est un composant important dans une architecture informatique distribuée. L'équilibrage de charge élastique peut distribuer dynamiquement les demandes des utilisateurs pour répartir les tâches informatiques sur plusieurs nœuds. L'équilibrage de charge élastique peut également identifier et équilibrer automatiquement les charges pour garantir une utilisation maximale des ressources de la plate-forme de cloud computing.

Mise à l'échelle automatique de la plateforme cloud

La mise à l'échelle automatique de la plate-forme cloud (Auto Scaling) signifie que la plate-forme cloud dispose de capacités d'expansion automatique intelligentes et peut s'auto-déployer en fonction de l'utilisation de l'utilisateur et de la charge du système. L'objectif de la mise à l'échelle automatique est de garantir que le cluster est toujours dans l'état optimal d'utilisation des ressources en ajustant continuellement la taille du cluster. Lorsque l'utilisation des ressources du cluster atteint la saturation, la mise à l'échelle automatique commence à réduire la capacité du cluster et à libérer des ressources inutiles.

Mise à l'échelle automatique basée sur des règles

La mise à l'échelle automatique basée sur des règles signifie que la plate-forme cloud peut ajuster automatiquement la capacité du cluster en fonction de certaines règles (telles que la charge moyenne, l'utilisation du processeur, l'utilisation de la mémoire, l'utilisation de la bande passante du réseau). La mise à l'échelle automatique basée sur des règles peut ajuster les ressources rapidement et avec précision, améliorant ainsi les performances globales de la plate-forme de cloud computing.

Mise à l'échelle automatique basée sur le modèle

L'autoscaling piloté par modèle signifie que la plate-forme cloud peut prédire la charge actuelle sur la base d'informations statistiques des données historiques et des modèles d'apprentissage automatique, et effectuer les ajustements correspondants. La mise à l'échelle automatique basée sur un modèle peut générer des recommandations de capacité de cluster en temps réel, améliorant ainsi les performances globales de la plateforme de cloud computing. La mise à l'échelle automatique basée sur le modèle peut également surveiller l'utilisation des ressources du cluster et les allouer automatiquement en fonction des résultats de prédiction.

Reprise après sinistre de la plateforme cloud

La reprise après sinistre de la plate-forme cloud (Disaster Recovery) signifie que la plate-forme cloud dispose d'une fonction de basculement et peut effectuer rapidement et automatiquement une reprise après sinistre. La reprise après sinistre d’une plateforme cloud doit prendre en compte une série de problèmes complexes tels que la sauvegarde redondante, la réplication entre régions et la reprise après sinistre multirégionale. L'objectif de la reprise après sinistre d'une plateforme cloud est de garantir que l'activité de l'utilisateur peut toujours fonctionner normalement pendant les pannes planifiées.

Guess you like

Origin blog.csdn.net/universsky2015/article/details/133594483