Ce document met en évidence les principales considérations de conception qui jouent un rôle déterminant dans la création de votre architecture hybride et multicloud globale. Analysez et évaluez ces considérations de manière globale sur l'ensemble de l'architecture de votre solution, en couvrant toutes les charges de travail et pas seulement des charges de travail spécifiques.
Refactoriser
Lors d'une migration de refactorisation, vous modifiez vos charges de travail afin de bénéficier des fonctionnalités cloud, et non plus uniquement pour les rendre opérationnelles dans le nouvel environnement. Vous pouvez optimiser les performances, les fonctionnalités, les coûts ou l'expérience utilisateur associés à chaque charge de travail. Comme indiqué dans l'article Refactoriser: migration et amélioration, certains scénarios de refactorisation vous permettent de modifier des charges de travail avant de les migrer vers le cloud. Cette approche de refactorisation offre les avantages suivants, en particulier si votre objectif est de créer une architecture hybride en tant qu'architecture ciblée à long terme :
- Vous facilitez le processus de déploiement.
- Vous pouvez accélérer la cadence de publication et raccourcir les cycles de retour en investissant dans une infrastructure et des outils d'intégration/de déploiement continus (CI/CD).
- Vous pouvez utiliser la refactorisation comme base pour créer et gérer une architecture hybride avec la portabilité des applications.
Pour fonctionner correctement, cette approche nécessite généralement certains investissements dans l'infrastructure et les outils sur site. Par exemple, vous pouvez configurer un registre Container Registry local et provisionner des clusters Kubernetes pour conteneuriser les applications. L'édition Enterprise Google Kubernetes Engine (GKE) peut être utile dans cette approche pour les environnements hybrides. Pour en savoir plus sur GKE Enterprise, consultez la section suivante. Pour en savoir plus, vous pouvez également consulter l'architecture de référence de l'environnement hybride GKE Enterprise.
Portabilité des charges de travail
Avec les architectures hybrides et multicloud, vous pouvez déplacer des charges de travail entre les environnements informatiques qui hébergent vos données. Pour faciliter le déplacement fluide des charges de travail entre les environnements, tenez compte des facteurs suivants:
- Vous pouvez déplacer une application d'un environnement informatique vers un autre sans modifier de manière significative l'application et son modèle opérationnel :
- Le déploiement et la gestion des applications sont cohérents dans tous les environnements informatiques.
- La visibilité, la configuration et la sécurité sont cohérentes dans tous les environnements informatiques.
- La possibilité de rendre une charge de travail portable ne doit pas entrer en conflit avec le fait qu'elle soit cloud first.
Automatisation de l'infrastructure
L'automatisation de l'infrastructure est essentielle à la portabilité dans des architectures hybrides et multicloud. L'approche courante pour automatiser la création d'une infrastructure consiste à utiliser l'Infrastructure as Code (IaC). L'IaC implique de gérer votre infrastructure dans des fichiers plutôt que de configurer manuellement des ressources (telles qu'une VM, un groupe de sécurité ou un équilibreur de charge) dans une interface utilisateur. Terraform est un outil IaC populaire permettant de définir des ressources d'infrastructure dans un fichier. Terraform vous permet également d'automatiser la création de ces ressources dans des environnements hétérogènes.
Pour en savoir plus sur les fonctions principales de Terraform qui peuvent vous aider à automatiser le provisionnement et la gestion des ressources Google Cloud, consultez la page Plans et modules Terraform pour Google Cloud.
De plus, pensez à des outils de gestion de configuration tels qu'Ansible, Puppet ou Chef pour établir un processus de déploiement et de configuration commun. Vous pouvez également vous servir d'un outil de génération d'images tel que Packer afin de créer des images de VM pour différentes plates-formes. En utilisant un seul fichier de configuration partagé, vous pouvez utiliser Packer et Cloud Build pour créer une image de VM à utiliser sur Compute Engine. Enfin, des solutions comme Prometheus et Grafana vous permettent d'assurer une surveillance cohérente sur l'ensemble des environnements.
Sur la base de ces outils, vous pouvez assembler une chaîne d'outils commune, comme illustré dans le schéma logique suivant. Cette chaîne d'outils commune élimine les différences entre les environnements informatiques. Elle vous permet également d'unifier le provisionnement, le déploiement, la gestion et la surveillance.
Bien qu'une chaîne d'outils commune vous aide à réaliser la portabilité, elle présente plusieurs inconvénients :
- L'utilisation de VM en tant que base commune peut rendre difficile la mise en œuvre d'applications cloud natives. De plus, l'utilisation exclusive de VM peut vous empêcher d'utiliser des services gérés dans le cloud. Vous risquez de manquer des occasions de réduire les frais d'administration.
- La création et la maintenance d'une chaîne d'outils commune entraînent des frais généraux et opérationnels.
- À mesure que la chaîne d'outils se développe, elle peut développer des complexités uniques adaptées aux besoins spécifiques de votre entreprise. Cette complexité accrue peut contribuer à l'augmentation des coûts d'entraînement.
Avant de développer des outils et de l'automatisation, explorez les services gérés proposés par votre fournisseur de cloud. Lorsque votre fournisseur propose des services gérés compatibles avec le même cas d'utilisation, vous pouvez en abstraire une partie de la complexité. Cela vous permet de vous concentrer sur la charge de travail et l'architecture de l'application plutôt que sur l'infrastructure sous-jacente.
Par exemple, vous pouvez utiliser le modèle de ressources Kubernetes pour automatiser la création de clusters Kubernetes à l'aide d'une approche de configuration déclarative. Vous pouvez utiliser la conversion de Deployment Manager pour convertir vos configurations et modèles Deployment Manager dans d'autres formats de configuration déclaratifs compatibles avec Google Cloud (comme Terraform et le modèle de ressources Kubernetes) afin qu'ils soient portables lorsque vous les publier.
Vous pouvez également envisager d'automatiser la création de projets et de ressources dans ces projets. Cette automatisation peut vous aider à adopter une approche Infrastructure as Code pour le provisionnement de projet.
Conteneurs et Kubernetes
L'utilisation de fonctionnalités gérées dans le cloud permet de réduire la complexité de la création et de la gestion d'une chaîne d'outils personnalisée pour automatiser et rendre portable la charge de travail. Toutefois, le fait de n'utiliser des VM que comme base commune rend difficile la mise en œuvre d'applications véritablement cloud-first. Une solution consiste utiliser des conteneurs et Kubernetes à la place.
Les conteneurs améliorent la fiabilité d'exécution du logiciel lorsque vous le déplacez d'un environnement à un autre. Étant donné que les conteneurs dissocient les applications de l'infrastructure hôte sous-jacente, ils facilitent le déploiement dans des environnements informatiques tels que les environnements hybrides et multicloud.
Kubernetes gère l'orchestration, le déploiement, le scaling et la gestion de vos applications en conteneurs. Il est Open Source et régi par la Cloud Native Computing Foundation. L'utilisation de Kubernetes permet d'obtenir les services qui constituent la base d'une application cloud-first. Étant donné que vous pouvez installer et exécuter Kubernetes dans de nombreux environnements informatiques, vous pouvez également l'utiliser pour établir une couche d'exécution commune dans les environnements informatiques :
- Quel que soit l'environnement informatique, cloud ou privé, Kubernetes fournit les mêmes services et les mêmes API. De plus, le niveau d'abstraction est beaucoup plus élevé qu'avec des VM. Cela se traduit généralement par une réduction du travail de base et une amélioration de la productivité des développeurs.
- Contrairement aux chaînes d'outils personnalisées, la technologie Kubernetes est largement utilisée pour le développement et la gestion des applications. Vous bénéficiez ainsi de l'expertise et de la documentation existantes, ainsi que de l'assistance d'un tiers.
- Kubernetes est compatible avec toutes les implémentations de conteneurs qui :
- sont compatibles avec l'interface d'exécution de conteneur (CRI) de Kubernetes.
- sont des applications adoptées par le secteur.
- ne sont liés à aucun fournisseur spécifique.
Lorsqu'une charge de travail s'exécute sur Google Cloud, l'utilisation d'une plate-forme Kubernetes gérée telle que Google Kubernetes Engine (GKE) vous permet d'éviter les efforts d'installation et d'exécution de Kubernetes. Cela peut aider le personnel des opérations à se concentrer sur la création et la maintenance d'applications plutôt que sur la création et la maintenance de l'infrastructure.
Vous pouvez également utiliser Autopilot, un mode de fonctionnement de GKE qui gère la configuration de votre cluster, y compris vos nœuds, le scaling, la sécurité et d'autres paramètres préconfigurés. Lorsque vous utilisez GKE Autopilot, tenez compte de vos exigences de scaling et de ses limites de scaling.
Techniquement, vous pouvez installer et exécuter Kubernetes sur de nombreux environnements informatiques pour établir une couche d'exécution commune. Toutefois, la création et l'exploitation d'une telle architecture peuvent s'avérer complexes. L'architecture devient encore plus complexe lorsque vous avez besoin d'un contrôle de sécurité au niveau du conteneur (maillage de services).
Pour simplifier la gestion des déploiements multiclusters, vous pouvez utiliser GKE Enterprise pour exécuter des applications modernes n'importe où à grande échelle. GKE inclut des composants Open Source gérés puissants pour sécuriser les charges de travail, appliquer les règles de conformité, et fournir une observation et un dépannage réseau approfondis.
Comme illustré dans le schéma suivant, l'utilisation de GKE Enterprise vous permet d'exploiter des applications multicluster en tant que parcs.
GKE Enterprise propose les options de conception suivantes pour prendre en charge les architectures hybrides et multicloud :
Concevez et créez des expériences cloud sur site ou unifiées pour migrer des applications vers l'environnement hybride GKE Enterprise. Pour en savoir plus, consultez l'architecture de référence de l'environnement hybride GKE Enterprise.
Concevez et créez une solution pour résoudre la complexité multicloud avec une stratégie de gouvernance, d'opérations et de sécurité cohérente avec GKE Multi-Cloud. Pour en savoir plus, consultez la documentation de GKE Multi-Cloud.
GKE Enterprise fournit également des regroupements logiques d'environnements similaires avec une sécurité, une configuration et une gestion des services cohérentes. Par exemple, GKE Enterprise alimente une architecture distribuée zéro confiance. Dans une architecture distribuée "zéro confiance", les services déployés sur site ou dans un autre environnement cloud peuvent communiquer entre les environnements via des communications sécurisées de service à service mTLS de bout en bout.
Considérations concernant la portabilité des charges de travail
Kubernetes et GKE Enterprise fournissent une couche d'abstraction pour les charges de travail pouvant masquer les nombreuses subtilités et différences entre les environnements informatiques. La liste suivante décrit certaines de ces abstractions:
- Une application peut être portable dans un autre environnement sans modifications majeures, mais ses performances ne seront pas forcément les mêmes dans les deux environnements.
- Les différences de calcul, de fonctionnalités de sécurité de l'infrastructure ou d'infrastructure de mise en réseau, ainsi que la proximité de services dépendants, peuvent entraîner des performances sensiblement différentes.
- Le déplacement d'une charge de travail entre les environnements informatiques peut également nécessiter un transfert de données.
- Les différents environnements peuvent disposer de services et d'installations différents pour le stockage et la gestion de données.
- Le comportement et les performances des équilibreurs de charge provisionnés avec Kubernetes ou GKE Enterprise peuvent différer d'un environnement à l'autre.
Transfert de données
Étant donné qu'il peut être complexe de déplacer, de partager et d'accéder aux données à grande échelle entre les environnements informatiques, les entreprises peuvent hésiter à créer une architecture hybride ou multicloud. Cette hésitation peut s'accroître si l'entreprise stocke déjà la plupart de ses données sur site ou dans un cloud.
Cependant, les différentes options de transfert de données proposées par Google Cloud fournissent aux entreprises un ensemble complet de solutions pour faciliter le transfert, l'intégration et la transformation de leurs données. Ces options aident les entreprises à stocker, partager et accéder aux données dans différents environnements de manière à répondre à leurs cas d'utilisation spécifiques. Cette capacité permet aux décideurs en entreprise et en technologie d'adopter plus facilement des architectures hybrides et multicloud.
Le transfert de données est un aspect important à prendre en compte pour la planification des stratégies hybrides et multicloud et de l'architecture. Votre équipe doit identifier vos différents cas d'utilisation métier et les données qui les alimentent. Vous devez également réfléchir au type de stockage, à la capacité, à l'accessibilité et aux options de déplacement.
Si une entreprise dispose d'une classification de données pour des secteurs réglementés, cette classification peut aider à identifier les emplacements de stockage et les restrictions de déplacement des données interrégionales pour certaines classes de données. Pour en savoir plus, consultez la page Protection des données sensibles. La protection des données sensibles est un service entièrement géré conçu pour vous aider à découvrir, classer et protéger vos éléments de données.
Pour découvrir le processus, de la planification d'un transfert de données aux bonnes pratiques de mise en œuvre d'un plan, consultez la section Migration vers Google Cloud: transférer vos ensembles de données volumineux.
Sécurité
À mesure que les organisations adoptent des architectures hybrides et multicloud, leur surface d'attaque peut augmenter en fonction de la manière dont leurs systèmes et leurs données sont distribués dans différents environnements. Associées à un paysage des menaces en constante évolution, les surfaces d'attaque accrues peuvent entraîner un risque accru d'accès non autorisé, de perte de données et d'autres incidents de sécurité. Tenez compte de la sécurité lorsque vous planifiez et mettez en œuvre des stratégies hybrides ou multicloud.
Pour en savoir plus, consultez Gestion de la surface d'attaque pour Google Cloud.
Lors de la conception d'une architecture hybride, il n'est pas toujours techniquement possible d'étendre les approches de sécurité sur site au cloud. Cependant, de nombreuses fonctionnalités de sécurité réseau des dispositifs matériels sont des fonctionnalités centrées sur le cloud et fonctionnent de manière distribuée. Pour en savoir plus sur les fonctionnalités de sécurité réseau cloud-first de Google Cloud, consultez la page Sécurité réseau dans le cloud.
Les architectures hybrides et multicloud peuvent poser des problèmes de sécurité supplémentaires, tels que la cohérence et l'observabilité. Chaque fournisseur de cloud public possède sa propre approche de la sécurité, y compris différents modèles, bonnes pratiques, fonctionnalités de sécurité de l'infrastructure et des applications, obligations de conformité et même le nom des services de sécurité. Ces incohérences peuvent augmenter les risques de sécurité. De plus, le modèle de responsabilité partagée de chaque fournisseur de cloud peut être différent. Il est essentiel d'identifier et de comprendre la démarcation exacte des responsabilités dans une architecture multicloud.
L'observabilité est essentielle pour obtenir des informations et des métriques à partir des différents environnements. Dans une architecture multicloud, chaque cloud fournit généralement des outils permettant de surveiller la posture de sécurité et les erreurs de configuration. Cependant, l'utilisation de ces outils entraîne une visibilité cloisonnée, ce qui empêche la création de renseignements avancés sur les menaces dans l'ensemble de l'environnement. Par conséquent, l'équipe de sécurité doit basculer entre les outils et les tableaux de bord pour assurer la sécurité du cloud. Sans visibilité globale de bout en bout sur la sécurité des environnements hybrides et multiclouds, il est difficile de hiérarchiser et d'atténuer les vulnérabilités.
Pour obtenir une visibilité et une posture complètes de tous vos environnements, hiérarchisez vos failles et atténuez celles que vous identifiez. Nous recommandons un modèle de visibilité centralisé. Un modèle de visibilité centralisé évite de devoir corréler manuellement différents outils et tableaux de bord provenant de différentes plateformes. Pour en savoir plus, consultez la page Modèles de surveillance et de journalisation hybrides et multicloud.
Dans le cadre de votre planification pour atténuer les risques de sécurité et déployer vos charges de travail sur Google Cloud, et pour vous aider à planifier et concevoir votre solution cloud afin d'atteindre vos objectifs de sécurité et de conformité, découvrez le centre des bonnes pratiques de sécurité de Google Cloud et le plan de base de l'entreprise.
Les objectifs de conformité peuvent varier, car ils sont influencés à la fois par les réglementations propres à un secteur d'activité, ainsi que par les diverses exigences réglementaires des différentes régions et pays. Pour en savoir plus, consultez le centre de ressources pour la conformité de Google Cloud. Voici quelques-unes des principales approches recommandées pour concevoir une architecture hybride et multicloud sécurisée :
Développez une stratégie et une architecture de sécurité cloud unifiées et personnalisées. Les stratégies de sécurité hybride et multicloud doivent être adaptées aux besoins et objectifs spécifiques de votre organisation.
Il est essentiel de comprendre l'architecture et l'environnement ciblés avant de mettre en œuvre des contrôles de sécurité, car chaque environnement peut utiliser des fonctionnalités, des configurations et des services différents.
Envisagez une architecture de sécurité unifiée pour les environnements hybrides et multicloud.
Standardisez la conception et les déploiements cloud, en particulier la conception et les fonctionnalités de sécurité. Cela peut améliorer l'efficacité et permettre une gouvernance et des outils unifiés.
Utilisez plusieurs contrôles de sécurité.
En règle générale, aucun contrôle de sécurité ne peut répondre de manière adéquate à toutes les exigences de protection. Par conséquent, les entreprises doivent utiliser une combinaison de contrôles de sécurité dans une approche de défense multicouche, également appelée défense en profondeur.
Surveillez et améliorez en permanence les postures de sécurité : votre organisation doit surveiller ses différents environnements pour détecter les menaces et les failles de sécurité. Elle doit également s'efforcer d'améliorer en permanence sa posture de sécurité.
Envisagez d'utiliser la gestion de la posture de sécurité dans le cloud (CSPM) pour identifier et corriger les erreurs de configuration de la sécurité et les menaces de cybersécurité. CSPM fournit également des évaluations de la vulnérabilité dans les environnements hybrides et multicloud.
Security Command Center est une solution intégrée de gestion de la sécurité et des risques pour Google Cloud qui permet d'identifier les problèmes de configuration et les failles de sécurité, entre autres. Security Health Analytics est un outil géré d'évaluation des failles. Il s'agit d'une fonctionnalité de Security Command Center qui identifie les risques et les failles de sécurité dans votre environnement Google Cloud, et fournit des recommandations pour les corriger.
Mandiant Attack Surface Management pour Google Cloud permet à votre organisation de mieux visualiser les éléments de son environnement multicloud ou cloud hybride. Il détecte automatiquement les éléments provenant de plusieurs fournisseurs cloud, le DNS et la surface d'attaque externe étendue pour permettre à votre entreprise de mieux comprendre son écosystème. Utilisez ces informations pour hiérarchiser les corrections des failles de sécurité et des expositions qui présentent le plus de risques.
- Solution de gestion des informations et des événements de sécurité (SIEM) dans le cloud : permet de collecter et d'analyser les journaux de sécurité des environnements hybrides et multicloud pour détecter les menaces et y répondre. Google Security Operations SIEM de Google Cloud permet de fournir des informations sur la sécurité et d'assurer une gestion des événements en collectant, en analysant, en détectant et en examinant toutes vos données de sécurité en un seul endroit.