13 exemples d'architectures pour démarrer votre transition vers Google Cloud
Priyanka Vergadia
Staff Developer Advocate, Google Cloud
Essayer GCP
Les nouveaux clients peuvent explorer et évaluer Google Cloud avec des conditions exceptionnelles.
EssayerQuels que soient les besoins de votre entreprise en termes de performances ou de coûts, Google Cloud est une plate-forme extrêmement flexible qui est compatible avec de nombreux types d'architectures applicatives. Mais par où devez-vous commencer ?
En tant que Developers Advocate pour Google Cloud, j'ai récemment publié une série de tweets appelée 13 days of GCP (GCP en 13 jours) qui présente certaines architectures de référence Google Cloud courantes. Cet article de blog les passe toutes en revue. Que vous souhaitiez apprendre à déployer des applications mobiles ou cloud hybrides, des microservices, des charges de travail CI/CD, des solutions de machine learning ou des fonctionnalités de sécurité, vous saurez précisément après avoir lu cet article comment démarrer votre transition vers Google Cloud. (Notez qu'il ne s'agit, bien entendu, que d'exemples et que chacune des solutions présentées peut être obtenue de plusieurs façons.)
1. Configurer une architecture hybride sur Google Cloud et sur site
Les architectures hybrides sont fréquemment utilisées pour migrer une infrastructure ou exécuter une partie des applications sur site et l'autre dans le cloud. Une architecture hybride très courante consiste à déployer l'interface et/ou le serveur d'applications sur Google Cloud et le backend, sur site.
Dans ce scénario, un utilisateur demande des applications via Internet, et un équilibreur de charge global les achemine vers votre application sur Google Cloud ou sur site.
L'équilibrage de charge global distribue ensuite le trafic afin d'acheminer la charge vers le service approprié. Les services peuvent se trouver sur n'importe quelle plate-forme de calcul telle que Compute Engine, Google Kubernetes Engine (GKE), App Engine, etc.
Les applications qui ont besoin de communiquer avec les systèmes backend de votre centre de données doivent se connecter via Cloud VPN ou Interconnect, selon la bande passante requise. Vous ne savez pas quelle solution choisir ? Consultez cette page.
Les requêtes adressées à l'application sur site sont réceptionnées par l'équilibreur de charge qui distribue la charge entre les serveurs d'applications.
Les serveurs d'applications se connectent aux backends (par exemple, moteur de recherche, cache et base de données) pour répondre à la requête de l'utilisateur.
Pour en savoir plus sur les solutions hybrides, consultez cet article.
2. Configurer une architecture hybride pour une utilisation intensive du cloud
Faire basculer le trafic en utilisation intensive sur le cloud peut être un excellent moyen d'amorcer la transition vers le cloud. Si votre application est déployée sur site, vous pouvez vous en servir pour la charge de base et basculer temporairement en utilisation intensive sur Google Cloud lorsque vous avez besoin de capacité supplémentaire suite à une augmentation soudaine du trafic. Le principal intérêt de cette solution est qu'elle évite de conserver de la capacité supplémentaire sur site. Sachant que dans le cloud, vous ne payez que les ressources utilisées, le mode d'utilisation intensive peut contribuer à réduire les coûts.
Cliquez ici pour en savoir plus sur les modèles et solutions hybrides.
3. Masquer les données sensibles dans les chatbots à l'aide de l'API DLP (Data Loss Prevention)
Imaginons que votre entreprise ou vos utilisateurs doivent partager des informations sensibles avec un chatbot. Pour ce faire, vous pouvez employer Dialogflow, qui permet de créer des expériences conversationnelles pour les utilisateurs sans qu'ils aient besoin de se familiariser avec les technologies de machine learning ou d'intelligence artificielle.
Par exemple, dans cette architecture, l'utilisateur interagit dans un chat téléphonique ou en ligne, ce qui a pour effet d'appeler l'agent Dialogflow. La requête est traitée par une logique métier utilisant l'environnement Cloud Functions sans serveur ou des machines virtuelles. Si vous souhaitez ensuite anonymiser les informations sensibles dans le chat, vous pouvez employer l'API DLP et les stocker dans BigQuery afin de les traiter ultérieurement.
4. Créer des backends pour applications mobiles sur Google Cloud
Si vous créez des applications mobiles sur Google Cloud, nous vous conseillons d'utiliser Firebase pour le stockage, l'authentification des utilisateurs, l'hébergement et bien plus encore. Vous pouvez intégrer Firebase dans plusieurs backends tels que l'environnement Cloud Functions sans serveur pour regrouper les logiques métier ou bien Cloud Run pour exécuter des conteneurs sans serveur en tant que backends d'applications. Vous avez également la possibilité de vous connecter aux infrastructures App Engine et Compute Engine si vos backends se trouvent dans ces environnements.
Pour en savoir plus, regardez cette série.
5. Migrer une base de données Oracle vers Spanner
Quelle est la meilleure façon de migrer d'Oracle vers Cloud Spanner ? Si vous utilisez une base de données Oracle et souhaitez la migrer vers Spanner pour bénéficier d'un service à l'échelle mondiale, vous devez d'abord exporter la base de données vers un format de fichier portable (CSV, par exemple) et la stocker dans Cloud Storage. Les données doivent ensuite être ingérées dans Dataflow où vous allez lire et analyser les fichiers, convertir les données et créer les mutations Spanner, traiter les erreurs éventuelles et procéder à l'écriture dans Spanner.
Pour en savoir plus, consultez cet article.
6. Créer un lac de données dans Google Cloud
Un lac de données vise à ingérer des données et à les stocker à des fins d'exploration et pour d'autres workflows tels que les magasins de données, les analyses en temps réel, le machine learning et plus encore. Voici quelques points à prendre en compte lors de la mise en place d'un lac de données dans Google Cloud :
Il est possible d'ingérer les données de différentes sources telles que des capteurs (IoT), l'infrastructure sur site, des activités d'utilisateurs (par exemple, des flux de clics), des transactions en ligne, etc.
Les données en temps réel peuvent être ingérées via Pub/Sub et Dataflow, qui s'adaptent facilement à des volumes de données variables.
Les données par lots peuvent être ingérées à l'aide de Transfer Appliance, du Service de transfert ou de gsutil, selon la bande passante et le volume. Les données en temps réel qui ont été affinées peuvent être stockées dans Bigtable ou Spanner.
Datalab et Dataprep vous permettent d'explorer les données du lac de données. Pour le machine learning, vous avez la possibilité d'utiliser Datalab ou ML Engine afin de procéder à l'entraînement et de stocker les prédictions dans Bigtable.
Pour l'entreposage, vous pouvez envoyer les données à BigQuery ou, si vous utilisez l'écosystème Hive, à Dataproc.
Pour en savoir plus, consultez cet article expliquant comment utiliser Cloud Storage en tant que lac de données.
7. Héberger des sites Web sur Google Cloud
Il est difficile d'adapter un site Web à l'évolution du trafic. Google Cloud offre des moyens simples et rentables pour héberger des sites Web et les faire évoluer afin qu'ils prennent en charge de nombreuses requêtes. Voici comment faire évoluer un site Web sur Google Cloud :
Lorsqu'un utilisateur envoie une requête à votre site Web, Cloud DNS convertit le nom d'hôte avec l'adresse IP de votre serveur Web.
La requête est ensuite transmise à Cloud CDN, qui répond à partir du cache. Si aucune réponse n'est disponible dans le cache, la requête est envoyée à la fonctionnalité d'équilibrage de charge global qui distribue la charge entre les serveurs Web sur Compute Engine. Vous pouvez même définir l'environnement sur site ou un autre cloud en tant que backend.
Les fichiers statiques tels que les images sont diffusés à partir de Cloud Storage. Ensuite, l'équilibreur de charge interne envoie la requête aux serveurs d'applications, puis à des bases de données.
Utilisez la base de données de documents Firestore pour les profils et les activités des utilisateurs.
Optez pour Cloud SQL pour les données relationnelles.
Pour protéger votre backend contre les attaques DDoS de couches 3 et 4, activez Cloud Armor avec un équilibreur de charge global.
Dans cet exemple, Compute Engine est utilisé comme backend, mais vous pouvez également déployer votre backend dans des conteneurs s'exécutant sur GKE, Cloud Run ou App Engine.
Pour faire évoluer votre infrastructure en utilisant Compute Engine, créez des groupes d'instances gérés, qui s'adaptent automatiquement aux augmentations de la charge. (App Engine et Cloud Run évoluent automatiquement en fonction de la charge.)
Pour en savoir plus sur cette solution d'hébergement Web, cliquez ici.
8. Configurer un pipeline CI/CD sur Google Cloud
L'intégration et la livraison continues (CI/CD) simplifient grandement le travail des développeurs et garantissent l'intégrité des déploiements. Vous pouvez configurer un pipeline CI/CD en toute simplicité avec Google Cloud :
Les développeurs écrivent le code et le transfèrent dans un dépôt Google Cloud Source Repositories, Bitbucket ou Git.
Dès que le code arrive dans le dépôt, Cloud Build entre en action : il exécute des tests et des analyses de sécurité, crée une image Docker, puis la transfère dans Spinnaker, une plate-forme Open Source de livraison continue multicloud. Vous pouvez aussi utiliser Jenkins ou Gitlab.
Ensuite, la plate-forme Spinnaker déploie le conteneur dans un cluster de production sur GKE, Cloud Run ou Compute Engine. Elle peut également déployer une application Canary pour s'assurer que les changements sont testés par rapport au trafic réel.
Le trafic utilisateur entrant atteint l'équilibreur de charge, puis est acheminé vers l'application Canary ou de production.
Si les résultats obtenus avec l'application Canary ne sont pas satisfaisants, vous pouvez automatiser un rollback rapide.
Pour en savoir plus sur la solution CI/CD, cliquez ici.
9. Créer des microservices sans serveur dans Google Cloud
Les microservices et les architectures sans serveur offrent des niveaux plus élevés d'évolutivité et de flexibilité, de même qu'un délai de lancement plus court, le tout à un coût réduit. Cloud Run est un bon moyen de créer une architecture de microservices sans serveur sur Google Cloud. Prenons l'exemple d'une application d'e-commerce :
Lorsqu'un utilisateur passe une commande, une interface située sur Cloud Run reçoit la requête et l'envoie à Pub/Sub, un service de messagerie asynchrone.
Les microservices suivants, également déployés sur Cloud Run, s'abonnent aux événements Pub/Sub.
Supposons que le service d'authentification appelle Firestore, une base de données de documents NoSQL sans serveur. Le service d'inventaire interroge la base de données dans le service de bases de données relationnelles entièrement géré Cloud SQL ou dans Firestore. Ensuite, le service de commande reçoit un événement Pub/Sub pour traiter la commande.
Les fichiers statiques sont stockés dans Cloud Storage, qui peut ensuite déclencher une fonction Cloud pour l'analyse des données en appelant les API de ML.
D'autres microservices tels que la recherche d'adresses peuvent être déployés sur Cloud Functions.
Tous les journaux sont stockés dans Cloud Logging.
BigQuery stocke toutes les données pour l'entreposage de données sans serveur.
Pour découvrir comment choisir une plate-forme sans serveur, consultez ce guide.
10. Mettre en œuvre le machine learning sur Google Cloud
Les entreprises génèrent constamment des données et peuvent utiliser les techniques de machine learning pour en tirer des insights. Voici la procédure à suivre pour mettre en œuvre le machine learning sur Google Cloud :
Tout d'abord, ingérez des données dans Cloud Storage ou BigQuery en utilisant Transfer Appliance ou le Service de transfert.
Ensuite, préparez et prétraitez les données avec BigQuery, Dataprep, Dataflow ou Dataproc.
Consultez AI Hub pour découvrir les pipelines et les contenus d'IA existants.
Lorsque vous êtes prêt, utilisez le service d'étiquetage de données AI Platform pour ajouter des étiquettes aux données.
Créez votre application de ML à l'aide des notebooks Jupyter gérés et d'une image Deep Learning VM Image.
Ensuite, utilisez les services AI Platform Training et AI Platform Prediction pour entraîner votre modèle et le déployer sur Google Cloud dans un environnement sans serveur, ou sur site à l'aide de Kubeflow.
Expliquez les résultats de votre modèle aux utilisateurs professionnels à l'aide d'Explainable AI, puis partagez-les avec d'autres personnes sur AI Hub.
Pour en savoir plus, consultez cette page sur le machine learning sur Google Cloud.
11. Utiliser le traitement sans serveur d'images, de vidéos ou de texte dans Google Cloud
La plupart des applications requièrent des opérations de traitement d'images, de vidéos ou de texte. Imaginons que, dans cettearchitecture, les utilisateurs d'un site de blogs génèrent des contenus sous forme de vidéos, d'images et de texte.
Les contenus créés par les utilisateurs à partir de l'interface sont stockés dans Cloud Storage, qui crée un événement Pub/Sub et déclenche une fonction Cloud.
Cloud Functions appelle alors l'API Vision, Video Intelligence ou NLP, selon le type de fichier importé par l'utilisateur.
La fonction Cloud reçoit une réponse JSON de l'API de ML correspondante, traite les résultats et les envoie dans BigQuery afin qu'ils soient analysés.
Vous pouvez créer des tableaux de bord personnalisés afin d'analyser les tendances à l'aide de Google Data Studio ou d'un autre outil de visualisation.
Pour en savoir plus, consultez la page consacrée à AI Platform.
12. Exploiter l'Internet des objets (IoT) sur Google Cloud
Si vous disposez d'un grand nombre d'appareils générant des données, vous pouvez utiliser des workflows IoT pour connecter, gérer et ingérer ces données facilement et de façon sécurisée afin de les utiliser pour des applications en aval. Voici un exemple de workflow IoT sur Google Cloud :
Un capteur envoie des données à un appareil de périphérie équipé d'une puce Edge TPU, qui exécute les modèles de ML en périphérie.
À ce même endroit, la couche logicielle Cloud IoT Edge vous permet d'exécuter les modèles de ML et fonctionne sur le système d'exploitation Android Things ou Linux.
Depuis l'appareil de périphérie, les données sont envoyées à Cloud IoT Core via MQTT ou HTTP(S), ce qui crée des événements dans Pub/Sub.
Pub/Sub déclenche alors Cloud Functions pour mettre à jour les configurations d'appareils.
Pour le stockage à long terme, Dataflow filtre et traite les données, puis les envoie à une base de données NoSQL Bigtable ou à BigQuery.
À partir de BigQuery, vous pouvez entraîner un modèle de machine learning à l'aide de BigQuery ML ou d'AI Platform.
Vous avez la possibilité de visualiser les données dans Data Studio ou un autre tableau de bord.
Pour en savoir plus, consultez la page sur Cloud IoT Core.
13. Configurer le modèle de sécurité zéro confiance BeyondCorp
BeyondCorp est le modèle de sécurité de Google basé sur des réseaux zéro confiance développés depuis huit ans au sein de Google, ainsi que sur les idées et bonnes pratiques apportées par la communauté. Prenons l'exemple d'une entreprise où un employé tente d'accéder à une application interne.
La requête est transmise à Cloud Load Balancing qui l'envoie à IAP (Identity-Aware Proxy).
IAP se connecte à l'inventaire des appareils pour vérifier si l'utilisateur est légitime, à Cloud Identity pour la gestion des points de terminaison, à Active Directory pour l'authentification, et à IAM (Identity and Access Management) et Access Context Manager pour l'accès contextuel basé sur des règles. Ces contrôles peuvent être configurés différemment pour un employé et un prestataire.
Si le contrôle est validé, l'utilisateur a accès au service. Dans le cas contraire, l'accès au service est refusé.
Si le backend se trouve sur site, le connecteur sur site IAP et Cloud Interconnect, ou Cloud VPN, se connectent directement au centre de données.
Pour en savoir plus, consultez la page consacrée à BeyondCorp.
Vous êtes maintenant incollable sur le sujet !
Nous espérons que ce tour d'horizon des architectures de référence Google Cloud les plus courantes vous a été utile. Testez vos nouvelles connaissances avec ces mots croisés. Y a-t-il d'autres points que vous aimeriez approfondir concernant les architectures Google Cloud ? N'hésitez pas à me faire part de vos commentaires en me contactant sur Twitter @pvergadia.