Migrer des conteneurs vers Google Cloud : premiers pas

Ce document vous aide à planifier, concevoir et mettre en œuvre la migration de vos conteneurs vers Google Cloud. Sans une sérieuse préparation, le transfert de charges de travail d'un environnement à un autre peut s'avérer compliqué. C'est pourquoi vous devez planifier et exécuter votre migration avec soin.

Ce document fait partie d'une série d'articles sur la migration vers Google Cloud. Si vous êtes intéressé par une présentation de la série, consultez la section Migration vers Google Cloud : choisir votre chemin de migration.

Ce document fait partie d'une série qui traite de la migration de conteneurs vers Google Cloud :

Ce document vous aidera dans une grande variété de scénarios : migrer depuis des conteneurs s'exécutant sur site, dans un environnement d'hébergement privé ou dans un autre fournisseur de cloud, transférer la totalité de votre charge de travail vers Google Cloud ou conserver une partie de votre charge de travail sur site ou dans un environnement d'hébergement privé.

Ce document est également utile si vous souhaitez évaluer l'opportunité d'une migration, en mesurer les conséquences et identifier les options qui s'offrent à vous. Les conteneurs permettent d'exécuter des charges de travail disponibles sur Google Cloud dans divers environnements. Le choix d'une option plutôt qu'une autre dépend de plusieurs facteurs, et aucune n'est intrinsèquement plus efficace que les autres. Chaque environnement possède ses propres avantages et inconvénients. Pour choisir un environnement, procédez comme suit :

  1. Définissez un ensemble de critères permettant d'évaluer les environnements de conteneurs pour exécuter des charges de travail.
  2. Évaluez chaque environnement en fonction des critères d'évaluation.
  3. Choisissez l'environnement qui répond le mieux à vos besoins.

Il n'est pas nécessaire de choisir le même environnement pour toutes vos charges de travail. Si vous avez des types ou des classes de charges de travail différents, vous pouvez sélectionner des environnements différents pour chacun d'entre eux.

Concevoir la migration vers Google Cloud

Pour migrer vos conteneurs de votre environnement source vers Google Cloud, nous vous recommandons de suivre le framework décrit dans la série Migration vers Google Cloud.

Le diagramme suivant illustre le parcours de votre migration.

Chemin de migration en quatre phases

Le framework illustré dans le schéma précédent se compose de quatre phases :

  1. Évaluation. Au cours de cette phase, vous évaluez votre environnement source, vous déterminez les charges de travail que vous souhaitez migrer vers Google Cloud et vous identifiez l'environnement compatible avec chaque charge de travail.
  2. Planification. Au cours de cette phase, vous créez l'infrastructure de base pour vos charges de travail, en provisionnant la hiérarchie des ressources et en configurant l'accès au réseau.
  3. Déploiement. Au cours de cette phase, vous migrez les conteneurs de l'environnement source vers Google Cloud.
  4. Optimisation. Au cours de cette phase, vous commencez à exploiter les technologies et des fonctionnalités cloud.

Établir des critères permettant d'évaluer les environnements de conteneurs pour exécuter des charges de travail

Pour établir les critères permettant d'évaluer les options d'environnements de conteneurs dont vous disposez pour exécuter des charges de travail, vous devez prendre en compte les fonctionnalités les plus importantes dont vous avez besoin dans ces environnements. Pour collecter les informations sur les fonctionnalités dont vous avez le plus besoin, vous devez évaluer vos charges de travail. Pour en savoir plus sur l'évaluation de vos charges de travail, consultez la page Migration vers Google Cloud : évaluer et découvrir vos charges de travail.

Ces critères d'évaluation et l'ordre dans lequel ils apparaissent sont un exemple. Vous devez évaluer vos charges de travail pour compiler la liste des critères importants pour vous et vos charges de travail, et les classer en fonction de leur importance. Par exemple, après avoir évalué vos charges de travail, vous pouvez prendre en compte les critères d'évaluation suivants, répertoriés par ordre d'importance :

  1. Performances L'environnement génère-t-il des frais supplémentaires qui peuvent dégrader les performances de vos charges de travail ?
  2. Évolutivité. Quelles sont les fonctionnalités d'évolutivité offertes par l'environnement ? Sont-elles suffisantes pour répondre aux exigences d'évolutivité de vos charges de travail, à la fois en termes de temps de réaction et de logique ?
  3. Niveau de contrôle et de flexibilité Quel niveau de contrôle souhaitez-vous avoir sur l'environnement ? Pouvez-vous adapter l'environnement à vos besoins ?
  4. Fiabilité Quelles garanties l'environnement apporte-t-il ? Sont-elles suffisantes pour vos charges de travail ? L'environnement est-il suffisamment fiable pour mettre en œuvre des stratégies de haute disponibilité et de reprise après sinistre ?
  5. Contraintes de gestion Quels efforts devez-vous déployer pour gérer l'environnement ? Avez-vous besoin de former vos équipes pour disposer des compétences nécessaires ou leurs connaissances sont-elles suffisantes ?
  6. Conditions requises pour utiliser le service Existe-t-il des exigences, des contraintes techniques ou des interfaces spécifiques à respecter pour exécuter vos charges de travail ? Devez-vous déployer des efforts importants pour assurer la compatibilité de votre charge de travail avec l'environnement ?
  7. Persistance des données L'environnement de conteneurs destinés à l'exécution des charges de travail est-il compatible avec la persistance des données ? Cette persistance est-elle compatible avec les exigences de vos charges de travail, y compris les performances, la fiabilité et les obligations légales ?
  8. Modèle de tarification et coûts Pouvez-vous utiliser l'environnement de manière rentable ? Êtes-vous en mesure d'obtenir un retour sur investissement correct en passant à un environnement de conteneurs pour exécuter des charges de travail ?
  9. Anticipation des besoins. L'environnement offre-t-il des chemins de mise à niveau que vous pouvez utiliser pour faire évoluer vos charges de travail ?
  10. Intégration à d'autres services L'environnement s'intègre-t-il à d'autres services Google Cloud et aux services d'autres fournisseurs cloud ?
  11. Dépendance L'environnement vous rend-il dépendant de technologies, de paradigmes ou d'interfaces spécifiques ? L'environnement empêche-t-il la portabilité de vos charges de travail ?
  12. Sécurité. L'environnement répond-il à vos exigences de sécurité et de confidentialité ?

Évaluer l'environnement de conteneurs pour exécuter des charges de travail

Google Cloud offre différentes options permettant d'exécuter des conteneurs. Pour choisir l'option la plus adaptée à vos charges de travail, vous devez d'abord les évaluer par rapport aux critères d'évaluation précédemment établis. Pour chaque environnement, vous attribuez un score sur chaque critère d'évaluation à partir d'une échelle de classement arbitraire. Par exemple, vous pouvez attribuer à chaque environnement un score compris entre et 10 par rapport à chaque critère d'évaluation.

Pour exécuter des conteneurs sur Google Cloud, nous recommandons les options suivantes, présentées par ordre croissant selon le niveau de contrôle que vous avez sur l'infrastructure sous-jacente :

  1. Cloud Run et Cloud Run pour Anthos
  2. Google Kubernetes Engine (GKE) et les clusters Anthos
  3. Compute Engine

Aidez-vous de la documentation du produit pour attribuer des scores selon certains critères. Par exemple, vous pouvez déjà évaluer Cloud Run par rapport aux performances, à l'évolutivité, au niveau de contrôle, à la flexibilité et à l'intégration à d'autres services. Toutefois, pour attribuer des scores selon d'autres critères, vous devrez peut-être concevoir et exécuter des analyses comparatives et des simulations plus approfondies. Par exemple, vous devrez peut-être comparer les performances de différents environnements d'exécution de conteneurs pour déterminer s'ils représentent une surcharge importante pour vos charges de travail.

Cloud Run et Cloud Run pour Anthos

Cloud Run est une plate-forme gérée permettant d'exécuter des charges de travail conteneurisées sans état basées sur Knative. Les charges de travail conteneurisées gérées par Cloud Run peuvent s'exécuter sur les éléments suivants :

  • Si vous choisissez Cloud Run, vos charges de travail s'exécutent sur une infrastructure gérée par Google.
  • Si vous choisissez Cloud Run pour Anthos, vos charges de travail s'exécutent sur GKE et peuvent se trouver sur Google Cloud, sur site ou sur d'autres fournisseurs cloud.

Servez-vous de la liste suivante pour évaluer l'utilisation de Cloud Run et de Cloud Run pour Anthos en fonction des critères que vous avez définis précédemment :

  1. Performances Cloud Run et Cloud Run pour Anthos utilisent des conteneurs Docker, qui offrent des performances similaires aux charges de travail non conteneurisées. Par conséquent, les conteneurs n'entraînent pas surcharge de performances importante.
  2. Évolutivité. Cloud Run ajuste automatiquement les instances de vos charges de travail et vous permet d'effectuer un scaling de votre application à zéro instance. Cette fonctionnalité est utile si vos charges de travail n'ont pas besoin d'instances fonctionnant en permanence. Pour réduire le délai de démarrage de l'instance, optimisez l'initialisation de vos charges de travail.
  3. Niveau de contrôle et de flexibilité Cloud Run et Cloud Run pour Anthos conviennent aux charges de travail qui nécessitent un contrôle total de l'environnement en conteneur dans lequel s'exécutent vos charges de travail, mais cet environnement ne nécessite aucune personnalisation.
  4. Fiabilité Cloud Run et Cloud Run pour Anthos s'intègrent à Cloud Monitoring, Cloud Logging, Cloud Audit Logging et à l'outil Error Reporting. Vous disposez ainsi d'une couverture de la surveillance des performances, ainsi que d'un accès aux journaux de conteneurs, de requêtes, d'erreurs et d'audit.
  5. Contraintes de gestion L'environnement étant géré par Cloud Run et Cloud Run pour Anthos, vous pouvez vous concentrer sur vos charges de travail sans avoir à gérer, provisionner et configurer l'infrastructure sous-jacente.
  6. Conditions requises pour utiliser le service Vos charges de travail doivent respecter un contrat d'exécution du conteneur. Par conséquent, si vous ne pouvez pas consacrer davantage d'efforts pour les rendre compatibles avec Cloud Run, nous vous recommandons de choisir l'une des autres options. Pour en savoir plus sur les limitations de Cloud Run, consultez la section Problèmes connus dans Cloud Run.
  7. Persistance des données Cloud Run et Cloud Run pour Anthos sont conçus pour exécuter des conteneurs sans état. Si vos charges de travail comportent des exigences de persistance des données, vous devez provisionner et configurer un autre système de persistance des données. Si vous avez besoin d'un environnement d'exécution de conteneurs pour des charges de travail avec état, nous vous recommandons de choisir une autre option.
  8. Modèle de tarification et coûts Sur Cloud Run, l'utilisation des ressources de calcul par vos charges de travail vous est facturée. Cloud Run pour Anthos est inclus dans l'abonnement Anthos.
  9. Anticipation des besoins. Cloud Run vous permet d'effectuer des déploiements, des déploiements progressifs et une migration de trafic. Vous pouvez utiliser ces fonctionnalités pour vos pipelines de déploiement.
  10. Intégration à d'autres services Cloud Run peut se connecter à un réseau cloud privé virtuel (VPC), qui permet d'accéder aux VM Compute Engine et à toute autre ressource possédant des adresses IP internes.
  11. Dépendance Cloud Run est basé sur Knative. Si vous choisissez de rendre vos charges de travail compatibles avec Knative, vous pouvez exécuter vos charges de travail conteneurisées dans Cloud Run, GKE, Anthos clusters on VMware ou tout autre environnement d'exécution compatible Knative sans autre modification.
  12. Sécurité. Sur Cloud Run, les charges de travail s'exécutent en bac à sable à l'aide de gVisor. Cloud Run pour Anthos n'utilise aucun bac à sable de conteneur, mais fait appel aux fonctionnalités d'isolement de conteneurs par défaut de Kubernetes. Pour protéger vos ressources Cloud Run, vous devez gérer l'accès à l'aide d'Identity and Access Management (IAM) et configurer une identité de service.

Pour en savoir plus, consultez la page Choisir une plate-forme Cloud Run.

Clusters GKE et Anthos

Les clusters GKE et Anthos sont des services gérés par Google qui fournissent un environnement de conteneurs permettant d'exécuter des charges de travail. Les clusters GKE et Anthos exécutent vos charges de travail conteneurisées dans des clusters Kubernetes. Avec GKE, les clusters s'exécutent sur Google Cloud et avec Anthos, ceux-ci peuvent s'exécuter sur Google Cloud, sur site ou dans d'autres environnements de cloud public.

La liste suivante vous permet d'évaluer les clusters GKE et Anthos en fonction des critères que vous avez définis précédemment :

  1. Performances Les clusters GKE et Anthos utilisent des conteneurs Docker, qui offrent des performances similaires aux charges de travail non conteneurisées. Par conséquent, les conteneurs n'entraînent pas de surcharge de performances importante.
  2. Évolutivité. Les clusters GKE et Anthos intègrent une logique de scaling précise que vous pouvez adapter à vos besoins. Vous pouvez effectuer un scaling de vos charges de travail et de vos clusters GKE et Anthos à la fois vertical et horizontal. Si vous n'avez pas besoin d'une logique de scaling complexe, nous vous recommandons de choisir une autre option, car vous risquez de consacrer beaucoup d'efforts à configurer des mécanismes d'évolutivité efficaces.
  3. Niveau de contrôle et de flexibilité Vous pouvez provisionner et configurer les clusters GKE et Anthos en fonction de vos besoins. Vous pouvez personnaliser tous les aspects des nœuds de cluster, y compris l'espace de stockage, la mise en réseau et la sécurité. Google gère le plan de contrôle à votre place. Par conséquent, si vous devez personnaliser la configuration du plan, nous vous recommandons de choisir une autre option.
  4. Fiabilité Les clusters GKE et Anthos s'intègrent à Cloud Monitoring et Cloud Logging. Vous disposez ainsi d'une couverture complète des fonctionnalités de surveillance des performances et d'accès aux journaux de conteneurs, de requêtes, d'erreurs et d'audit. Les clusters régionaux GKE et les options de haute disponibilité des clusters Anthos vous permettent également d'accroître la fiabilité de votre environnement.
  5. Contraintes de gestion Avec GKE, vous n'avez pas besoin de gérer le plan de contrôle de vos clusters, et les clusters Anthos vous permettent de gérer tous les clusters Kubernetes avec la même chaîne d'outils et les mêmes processus. Cette fonctionnalité réduit considérablement la charge de gestion de l'environnement. Vous devez toutefois gérer une partie de l'infrastructure sous-jacente. Par exemple, GKE vous permet de gérer les nœuds de cluster. La plupart des opérations de gestion peuvent être automatisées, mais vous devez néanmoins prendre en compte ces éléments lorsque vous planifiez les efforts nécessaires pour maintenir l'environnement. Si vous avez besoin d'un environnement de conteneurs entièrement géré pour exécuter des charges de travail, nous vous recommandons de choisir une autre option.
  6. Conditions requises pour utiliser le service Pour déployer vos charges de travail sur des clusters GKE ou Anthos, vous devez les conteneuriser.
  7. Persistance des données GKE et Anthos peuvent exécuter des applications avec état et assurer le stockage sur disque persistant.
  8. Modèle de tarification et coûts Sur GKE, des frais de gestion liés aux clusters et aux ressources utilisées par vos nœuds de cluster vous sont facturés. Les clusters Anthos sont inclus dans l'abonnement Anthos.
  9. Anticipation des besoins. Les clusters GKE et Anthos disposent des fonctionnalités nécessaires permettant de gérer les processus de déploiement complexes.
  10. Intégration à d'autres services Les charges de travail déployées sur les clusters GKE et Anthos peuvent être autorisées à accéder à d'autres services Google Cloud si vous configurez les systèmes de connectivité, d'authentification et d'autorisation nécessaires.
  11. Dépendance Après avoir conteneurisé vos charges de travail pour les exécuter sur des clusters GKE ou Anthos, vous pouvez les transférer vers d'autres environnements après quelques ajustements mineurs. Kubernetes est une plate-forme portable et ne vous fait pas dépendre d'un environnement fournisseur.
  12. Sécurité. GKE offre de nombreux moyens de protéger vos nœuds, votre plan de contrôle et vos charges de travail :

Pour en savoir plus, consultez la page Présentation de la sécurité dans GKE.

Pour plus d'informations sur la migration vers les clusters GKE et Anthos, consultez les pages Migrer des conteneurs vers Google Cloud : migrer de Kubernetes à GKE et Migrer des conteneurs vers Google Cloud : migrer d'OpenShift vers Anthos.

Compute Engine

Compute Engine vous permet de créer et d'exécuter des VM sur l'infrastructure Google.

Bien qu'il soit possible d'exécuter des conteneurs sur des VM Compute Engine, nous vous recommandons de choisir l'un des autres environnements de conteneurs pour exécuter les charges de travail décrites dans ce document. Les efforts que vous devez déployer pour exploiter un environnement autogéré s'exécutant sur Compute Engine dépassent largement les avantages que vous pouvez obtenir en retour.

Toutefois, si vous choisissez d'exécuter des conteneurs sur des VM Compute Engine, servez-vous de la liste suivante pour évaluer Compute Engine en fonction des critères que vous avez définis précédemment :

  1. Performances Aucun environnement d'exécution de conteneur n'étant préinstallé sur les VM Compute Engine, vous devez choisir celui qui répond le mieux à vos besoins.
  2. Évolutivité. Compute Engine utilise des groupes d'instances gérés pour faire évoluer automatiquement les instances de VM. Lors de la configuration des mécanismes d'autoscaling d'un groupe d'instances géré, vous définissez les signaux d'autoscaling que Compute Engine utilise pour faire évoluer le groupe d'instances géré à la hausse ou à la baisse.
  3. Niveau de contrôle et de flexibilité Vous pouvez personnaliser chaque aspect du provisionnement et de la configuration de chaque VM Compute Engine tant que vous respectez les quotas de ressources Compute Engine.
  4. Fiabilité Vous pouvez surveiller les VM Compute Engine avec Cloud Monitoring, Cloud Logging et Cloud Audit Logging afin de disposer d'une couverture complète de la surveillance des performances et les journaux. En plus des groupes d'instances gérés, Compute Engine utilise également la vérification d'état des instances et l'autoréparation.
  5. Contraintes de gestion Les VM Compute Engine étant autogérées, vous devrez déployer des efforts opérationnels considérables pour gérer efficacement l'environnement.
  6. Conditions requises pour utiliser le service Tant que vos charges de travail s'exécutent sur l'un des systèmes d'exploitation compatibles, vous pouvez les exécuter sur des VM Compute Engine. Pour en savoir plus sur les limitations de Compute Engine, consultez la section Problèmes connus dans Compute Engine.
  7. Persistance des données Compute Engine propose différentes options pour la persistance des données, telles que les disques persistants zonaux, les disques persistants régionaux et des disques durs SSD locaux.
  8. Modèle de tarification et coûts Sur Compute Engine, l'utilisation des ressources par vos charges de travail vous est facturée.
  9. Anticipation des besoins. Vous pouvez installer n'importe quel outil d'intégration, de déploiement, de provisionnement ou de gestion de la configuration sur les VM Compute Engine pour vos processus de déploiement.
  10. Intégration à d'autres services Les charges de travail déployées sur Compute Engine peuvent être autorisées à accéder à d'autres services Google Cloud si vous configurez les systèmes de connectivité, d'authentification et d'autorisation nécessaires.
  11. Dépendance Lorsque vous utilisez Compute Engine, vous ne dépendez d'aucun produit ou service propriétaire. Vous pouvez créer vos propres images de système d'exploitation afin d'automatiser vos processus de provisionnement et de configuration et assurer leur portabilité.
  12. Sécurité. Les éléments suivants de Compute Engine contribuent à améliorer la sécurité de votre environnement :

Pour en savoir plus, consultez la page Sécuriser Google Cloud.

Choisir la bonne option pour votre environnement cible

Dans les sections précédentes, vous avez attribué une valeur à tous les critères de chaque produit. Pour calculer le score total de chaque environnement de conteneurs en vue d'exécuter des charges de travail, vous devez faire la somme de tous les scores obtenus par cet environnement sur la base des critères retenus. Par exemple, si un environnement a obtenu un score de 10 au critère de performances et de 6 au critère d'évolutivité, le score total de cet environnement est de 16.

Vous pouvez également attribuer différentes pondérations au score pour chaque critère afin de représenter l'importance de chacun d'entre eux pour votre évaluation. Par exemple, si les performances sont plus importantes que l'évolutivité dans votre évaluation, vous pouvez associer des coefficients, par exemple 1 pour les performances et 0,7 pour l'évolutivité. Vous utilisez ensuite ces coefficients pour calculer le score total d'une option.

Après avoir calculé le score total de chaque environnement évalué, vous organisez les environnements en fonction de leur score total, par ordre décroissant. Sélectionnez ensuite l'option ayant le score le plus élevé comme environnement de votre choix.

Il existe plusieurs façons de représenter ces données. Par exemple, vous pouvez utiliser un graphique approprié pour représenter les résultats comportant plusieurs dimensions, telles qu'un graphique à barres.

Étape suivante