menu
arrow_back

Migrer un site Web monolithique vers une architecture de microservices sur Google Kubernetes Engine

—/100

Checkpoints

arrow_forward

Create a GKE Cluster

Deploy Existing Monolith

Migrate Orders to a microservice

Migrate Products to microservice

Migrate Frontend to microservice

Migrer un site Web monolithique vers une architecture de microservices sur Google Kubernetes Engine

1 heure 30 minutes 7 crédits

GSP699

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Pourquoi faire migrer une application monolithique vers une architecture de microservices ? Décomposer une application en microservices présente les avantages suivants (la plupart d'entre eux proviennent du fait que les microservices sont faiblement couplés) :

  • Les microservices peuvent être testés et déployés indépendamment. Plus l'unité de déploiement est petite, plus le déploiement est facile.
  • Ils peuvent être intégrés dans différents langages et frameworks. Vous pouvez choisir la meilleure technologie pour le cas d'utilisation particulier de chaque microservice.
  • Ils peuvent être gérés par différentes équipes. La limite entre les microservices permet de dédier une équipe à un ou à plusieurs d'entre eux.
  • En passant aux microservices, vous assouplissez les dépendances entre les équipes. Chaque équipe ne doit se préoccuper que des API des microservices dont elles dépendent. Elle n'a pas besoin de réfléchir à la manière dont ces microservices sont appliqués, à leurs cycles de publication, etc.
  • Vous pouvez concevoir plus aisément des solutions en cas de défaillance. En établissant des limites claires entre les services, il est plus facile de déterminer la marche à suivre si l'un de ceux-ci ne fonctionne plus.

Toutefois, les microservices présentent quelques inconvénients par rapport aux monolithes :

  • Dans la mesure où une application reposant sur des microservices correspond à un réseau de différents services qui interagissent souvent de manière peu claire, la complexité globale du système tend à augmenter.
  • Contrairement aux composants internes d'un monolithe, les microservices communiquent via un réseau. Dans certaines circonstances, cela peut être considéré comme un problème de sécurité. Istio résout ce problème en chiffrant automatiquement le trafic entre les microservices.
  • Le même niveau de performance que celui d'une approche monolithique peut être difficile à atteindre en raison des latences entre les services.
  • Le comportement de votre système n'est pas causé par un seul service, mais par nombre d'entre eux et par leurs interactions. Pour cette raison, il est plus difficile de comprendre le comportement de votre système en production (son observabilité). Là encore, Istio constitue une solution au problème.

Dans cet atelier, vous allez déployer une application monolithique existante sur un cluster Google Kubernetes Engine, puis vous la décomposerez en microservices. Kubernetes est une plate-forme permettant d'assurer la gestion, l'hébergement, le scaling et le déploiement de conteneurs, qui constituent un moyen portable d’empaqueter et d’exécuter du code. Ceux-ci sont bien adaptés au modèle de microservices, dans lequel chaque microservice peut s'exécuter dans son propre conteneur.

Schéma de l'architecture de nos microservices

Vous allez commencer par décomposer le monolithe en trois microservices successifs : "Orders" (Commandes), "Products" (Produits) et "Frontend" (Interface). Ensuite, vous créerez une image Docker pour chaque microservice à l'aide de Cloud Build, puis vous déploierez et exposerez les microservices sur Google Kubernetes Engine (GKE) avec un service Kubernetes de type LoadBalancer. Vous suivrez cette procédure pour chacun des services tout en les refactorisant simultanément hors du monolithe. Pendant toute la durée de ce processus, le monolithe et les microservices s'exécuteront en même temps jusqu'à ce que vous soyez en mesure de supprimer le monolithe.

636a2d58588b2b87.png

Objectifs de l'atelier

  • Décomposer un monolithe en microservices

  • Créer un cluster Google Kubernetes Engine

  • Créer une image Docker

  • Déployer des images Docker sur Kubernetes

Prérequis

  • Compte Google Cloud Platform doté d'un accès administrateur pour créer un ou plusieurs projets avec le rôle de propriétaire de projet

  • Connaissance de base de Docker et Kubernetes

Inscrivez-vous sur Qwiklabs pour consulter le reste de cet atelier, et bien plus encore.

  • Obtenez un accès temporaire à Google Cloud Console.
  • Plus de 200 ateliers, du niveau débutant jusqu'au niveau expert.
  • Fractionné pour vous permettre d'apprendre à votre rythme.
Inscrivez-vous pour démarrer cet atelier