En tant qu'architecte cloud ou administrateur informatique, lorsque vous envisagez d'exécuter une application dans Compute Engine, vous devez concevoir une topologie de VM que vous pouvez provisionner et exploiter efficacement.
Compute Engine propose différentes options de déploiement. Par exemple, vous pouvez déployer un groupe de VM que vous gérez en tant qu'entité unique, ou bien provisionner et gérer les VM en tant que ressources individuelles. Chaque approche présente des avantages et des limites distincts. Comment choisir une stratégie de déploiement optimale ?
- Commencez par évaluer les exigences clés de votre application.
- Examinez les options de déploiement disponibles et leurs avantages relatifs.
- Sélectionnez une stratégie qui répond à vos exigences et exploite au mieux les fonctionnalités de Compute Engine.
Évaluer votre charge de travail
Utilisez les questions suivantes pour analyser les exigences clés de la charge de travail que vous souhaitez déployer. Vos réponses vous aideront à mapper les fonctionnalités de chaque option de déploiement (répertoriées dans la section suivante) aux exigences de votre charge de travail.
État de l'application
S'agit-il d'une application avec état ?
- Une application avec état stocke certaines données, telles que l'ID client ou de session, jusqu'à ce que ces données ne soient plus nécessaires. Par exemple, dans une application de shopping en ligne, le service de panier d'achat peut stocker des détails sur les articles ajoutés ou supprimés à mesure que l'utilisateur poursuit ses achats, et conserver l'état final du panier lorsque l'utilisateur démarre le processus de paiement.
- Une application sans état n'a pas besoin de stocker des données client, de transaction ou de session. Par exemple, un serveur Web peut fermer une session après avoir diffusé le contenu demandé par le client.
Pour en savoir plus sur les applications avec état et sans état, consultez En quoi les charges de travail avec état sont-elles différentes des charges de travail sans état ?.
Les métadonnées spécifiques à l'instance doivent-elles être conservées lorsque vos VM redémarrent ou lorsque Compute Engine les recrée (autoréparation) ?
Provisionnement
- Les VM doivent-elles utiliser une combinaison de types de machines ou d'images ? Par exemple, certaines VM ont-elles besoin de types de machines à mémoire optimisée, et d'autres de types de machines à usage général ?
- L'infrastructure doit-elle s'adapter automatiquement aux changements de charge, afin de maintenir un équilibre optimal entre les coûts et les temps de réponse ?
- Toutes les VM peuvent-elles s'exécuter dans une seule zone, un seul réseau VPC et un seul sous-réseau ?
- L'application doit-elle s'exécuter dans la même zone que certaines autres ressources ? Par exemple, l'application nécessite-t-elle une connexion à faible latence avec une base de données ?
Opérations
- Voulez-vous gérer les VM en un seul groupe ? Par exemple, souhaitez-vous automatiser le déploiement des mises à jour d'applications sur toutes les VM ?
- Avez-vous besoin d'un outil personnalisé ou tiers pour gérer les VM ?
- Avez-vous besoin de contrôler la gestion des VM défaillantes ? Par exemple, si une VM échoue, souhaitez-vous qu'elle reste arrêtée pendant que vous déterminez la cause de la défaillance ?
- Avez-vous besoin de contrôler la séquence ou les horaires de début et de fin de reprise de vos VM ? Par exemple, pour réduire les coûts, prévoyez-vous d'arrêter les VM pendant le week-end ou à certaines heures de la journée ?
Résilience
- L'application doit-elle être protégée contre les défaillances de zones ? En d'autres termes, si une zone est indisponible, souhaitez-vous que l'application continue à diffuser des requêtes à partir de VM d'autres zones de la région ?
- Si une VM s'arrête ou plante pour une raison quelconque, ou si l'application ne répond pas aux requêtes, Compute Engine doit-il la recréer automatiquement ?
- L'application a-t-elle besoin d'adresses IP internes ou externes fixes pour les VM hôtes ?
Maintenant que vous avez évalué vos besoins, découvrez les options de déploiement offertes par Compute Engine.
Examiner les options de déploiement disponibles
Examinez et comprenez les fonctionnalités et les avantages relatifs des options que vous pouvez envisager pour déployer vos charges de travail sur Compute Engine.
- VM autonomes
- Avec cette option, vous choisissez le type de machine, l'image, les disques et d'autres attributs individuellement pour chaque VM que vous provisionnez. De plus, vous gérez les VM comme des ressources distinctes.
- Groupe d'instances non géré
- Vous pouvez configurer des VM autonomes et les ajouter à un groupe d'instances. Vous pouvez ensuite utiliser le groupe d'instances non géré comme backend pour un équilibreur de charge.
- Groupe d'instances géré (MIG)
Un MIG est un groupe d'instances identiques ou configurées de la même manière que vous provisionnez à l'aide d'un modèle d'instance.
Vous pouvez faire d'un MIG un MIG avec état afin que des disques ou des métadonnées spécifiques soient conservés.
Pour un MIG sans état, vous pouvez activer l'autoscaling et configurer une règle de scaling.
Lorsque vous créez un MIG, vous pouvez choisir de déployer les VM dans une seule zone ou de les distribuer sur plusieurs zones d'une région à des fins de haute disponibilité.
Le tableau suivant récapitule les principales fonctionnalités de chaque option de déploiement.
Capacité | VM autonomes | Groupe d'instances non géré | Groupes d'instances gérés avec état | Groupes d'instances gérés sans état |
---|---|---|---|---|
Provisionnement basé sur un modèle d'un groupe de VM | ||||
Mélange de types de machines et d'images | ||||
Adresses IP internes ou externes fixes | ||||
Guérison automatique des VM défaillantes | ||||
Contrôle des opérations de démarrage-arrêt et d'interruption-reprise de la VM | ||||
Définir un groupe de VM en tant que backend d'équilibreur de charge | ||||
Préservation des disques et des métadonnées pour les charges de travail avec état | ||||
Mise à jour contrôlée de VM spécifiques | ||||
Mise à jour progressive automatique de toutes les VM | ||||
Scaling horizontal automatique (et prédictif) |
Les schémas suivants présentent des exemples de déploiements côte à côte pour vous aider à comprendre les principales différences.
VM autonomes | Groupes d'instances gérés avec état | Groupes d'instances gérés sans état |
---|---|---|
Cet exemple présente trois VM créées individuellement. | Cet exemple montre un MIG contenant trois VM configurées de la même manière, provisionnées à l'aide d'un modèle d'instance. |
Cet exemple montre un MIG contenant trois VM identiques, provisionnées à l'aide d'un modèle d'instance. |
|
|
|
Vous avez désormais évalué votre charge de travail, examiné les options de déploiement offertes par Compute Engine et vous êtes prêt à choisir une approche de déploiement.
Sélectionner une stratégie de déploiement
Les recommandations décrites ici sont basées sur un mappage de caractéristiques de charges de travail spécifiques aux capacités de chaque option de déploiement Compute Engine.
Utilisez le flux de prise de décision suivant. Si vous préférez un guide visuel, reportez-vous à l'arbre de décision plus loin dans ce document.
Choisissez entre des VM autonomes et des groupes d'instances.
Exigences Stratégie de déploiement recommandée Au moins l'une des exigences suivantes est essentielle pour votre charge de travail. - L'application doit s'exécuter sur des VM utilisant un mélange de types de machines ou d'images.
- L'application a besoin d'adresses IP internes ou externes fixes pour les VM hôtes.
- Vous avez besoin de contrôler la gestion des VM ayant échoué.
- Vous avez besoin de contrôler les opérations de démarrage-arrêt ou d'interruption-reprise de vos VM.
- Vous devez utiliser un script personnalisé ou un outil tiers pour provisionner et supprimer des VM.
Choisissez des VM autonomes.
Si toutes les VM autonomes peuvent s'exécuter dans une seule zone, un seul réseau VPC et un seul sous-réseau, envisagez d'ajouter les VM à un groupe d'instances non géré. Vous pouvez ensuite utiliser le groupe d'instances non géré en tant que backend d'équilibreur de charge.
Ignorez le reste de cette procédure de prise de décision.
Aucune des exigences ci-dessus n'est essentielle à votre cas d'utilisation. Utilisez un MIG pour configurer une topologie Compute Engine facile à gérer, hautement disponible et évolutive.
Passez à l'étape suivante.
Choisissez entre un MIG avec état et un MIG sans état.
Exigences Type de MIG recommandé L'application nécessite la conservation du disque et des métadonnées. Autrement dit, l'application est avec état. Choisissez un MIG avec état et configurez les disques que Compute Engine doit conserver lors d'événements perturbateurs tels que la recréation, l'autoréparation et la mise à jour de VM.
Passez à l'étape suivante.
L'application n'est pas avec état. Choisissez un MIG sans état et profitez de la fonctionnalité d'autoscaling. Lors d'opérations perturbatrices, Compute Engine recrée les disques en fonction du modèle d'instance.
Passez à l'étape suivante.
Choisissez un MIG zonal ou un MIG régional.
Exigences Type de MIG recommandé L'application doit s'exécuter dans une seule zone, ou la protection contre les défaillances de zone n'est pas essentielle. Choisissez un MIG zonal. L'application doit continuer à s'exécuter même en cas de défaillance d'une zone. Choisissez un MIG régional.
Arbre de décision
Le schéma suivant présente les facteurs à prendre en compte pour décider de la stratégie de déploiement de Compute Engine :
Étape suivante
- Apprenez-en plus sur les modèles d'instance.
- Apprenez-en plus sur le fonctionnement des groupes d'instances gérés avec état.
- Apprenez-en plus sur les MIG régionaux.
- Créer un MIG.
- Procéder à l'autoscaling de groupes d'instances.
- Migrer une charge de travail existante vers un MIG avec état.