EP 01 : Et si on découvrait ensemble des outils GCP

thumbernail GCP

EP 01 : Et si on découvrait ensemble des outils GCP...

Vous êtes perdu dans le monde vaste et riche de Google ? Ne cherchez plus, cette série d’articles est faite pour vous !

Objectifs du projet d’articles :

Cet article est le premier d'une série qui a pour volonté de vous présenter les outils que Google met à votre disposition afin que vous puissiez mettre rapidement en place des infrastructures en fonction de vos compétences techniques.

Dans les prochains articles, d’abord vous pourrez y retrouver des labs sur chacune des solutions de compute mis à notre disposition sur la plateforme GCP puis je vous expliquerai comment mettre en place une solution de monitoring et une chaîne de CI/CD pour chacune d’entre elles.

Objectif de l’article :

Aujourd'hui, ce n’est pas un article technique qui vous sera présenté mais plutôt un tour d'horizon des technologies que nous allons aborder dans les prochains articles. Cela vous permettra de vous orienter sur la solution la plus adaptée en fonction de vos compétences et votre budget.

Voici la liste des technologies que nous aborderons :

  • App Engine
  • Compute Engine
  • Google Kubernetes Engine (GKE)
  • Cloud Run
  • Cloud Function
  • Monitoring StackDriver
  • Cloud Source Repository
  • Cloud Container Registry
  • Cloud Build

App Engine

App Engine est un service entièrement managé lancé par Google en 2008. Celui-ci permet de déployer simplement et rapidement des applications sur la plateforme de Google.

Nous n'avons pas besoin de connaissances Système ou DevOps pour faire évoluer l'infrastructure ou mettre en place une solution qui scale en fonction du trafic. C'est notre partenaire Google qui s'occupe de tout pour nous.

Grâce à ce service, nous pouvons nous concentrer sur nos applications et leur évolution, ce qui est un gain de productivité. Ce service permet de versionner les applications et de gérer la répartition du trafic pour faire migrer le trafic sur les nouvelles versions de nos applications.

Ce service nous offre deux environnements de fonctionnement :

  • un environnement standard est basé sur des instances de conteneurs préconfigurés sur l'un des différents environnements d'exécution (Python, Java, NodeJs, PHP, Ruby ou Go) ;

  • un environnement flexible nous laisse personnaliser notre environnement d'exécution ou bien nous laisse le créer en fournissant une image Docker. Ce n'est pas tout, nous pouvons personnaliser les performances en choisissant la quantité de CPUs et de mémoires dont nos applications ont besoin pour fonctionner correctement.

Nous avons deux modes de facturation qui s'appliquent dans App Engine en fonction du type d'environnement que nous sélectionnons :

  • si nous sommes sur l'environnement standard, la facturation se fera sur les ressources utilisées par votre application. Concrètement, lorsque nous n'avons pas de trafic sur notre application, aucune instance ne fonctionnera et donc nous n'aurons aucune dépense ;

  • si nous sommes sur l'environnement flexible, notre application est déployée sur un type de machine virtuelle que nous avons défini et nous serons facturés sur le temps d'utilisation des ressources de cette instance. Il est à savoir qu'il y aura toujours une instance en cours d'exécution, même dans le cas où nous n'avons pas de trafic sur notre application.

Compute Engine

Compute Engine est l'offre de machine virtuelle de Google. Ce service configurable fonctionne dans les data centers de Google, ce qui lui permet de profiter de son architecture haute performance du point de vue du réseau et du stockage. Nous pouvons instancier des machines virtuelles prédéfinies adaptées à notre Workload ou bien les créer sur mesure.

Ce service n'est pas clé en main ; nous avons besoin de compétences techniques : il faudra être capable de :

  • configurer la machine virtuelle
  • mettre en place un groupe d'instance piloté par des métriques pour lui permettre de scaler correctement.
  • mettre en place un load balancer pour exposer l’application.

Ce service vous sera utile dans deux situations :

  • lors de la mise en place des architectures qui ne sont pas proposées par Google mais dont nous avons besoin (Rabbitmq, MongoDB…);
  • dans le cas d’une migration « lift and shift ».

Ce service est facturé sur le temps d'utilisation des ressources CPUs, mémoires et disques.

Kubernetes Engine

Ce service managé par Google est prêt à l'emploi en quelques minutes en nous mettant à disposition un cluster kubernetes. C'en est fini des journées d'installation et de configuration, tout comme des montées de versions.

Pour appréhender cet outil, nous avons besoin de connaissances de base sur docker et sur l'utilisation de kubernetes. Ne vous inquiétez pas, ce sont des notions assez rapides à acquérir ! Grâce à Google, il ne nous reste plus qu’à :

  • choisir la configuration de notre cluster GKE (régional ou multi-régional, nombre de pools, scaling de nodes, type de compute Engine pour le node…) ;
  • déployer nos applications et les exposer.

Kubernetes, en tant qu’orchestrateur de containers, nous permet de faire tourner nos applications sous forme de pods scalables en fonction des métriques basées sur la consommation du processeur et la mémoire. Il est souvent utilisé dans le cadre d’une restructuration d’une application monolithique vers du micro-service.

Etant donné que GKE utilise Compute Engine, c'est ce système de facturation qui est appliqué (temps d'utilisation des ressources). Google nous facture maintenant le control plane Kubernetes à l’heure.

Cloud Run

CloudRun est un service totalement managé dédié à la gestion de containers stateless.

Pour son utilisation, nous avons besoin de connaître docker et... rien de plus ! Le déploiement des applications se fait en quelques secondes.

Ce service nous laisse développer nos applications avec le langage et les bibliothèques de notre choix et nous n'avons pas à nous préoccuper de l'infrastructure, c'est encore une fois Google qui permet à nos containers de scaler automatiquement et presque instantanément en fonction du trafic.

Pour ce qui est du tarif, c'est comme beaucoup de ressources chez Google, on ne paye que ce que l'on consomme, rien de plus. Ici, ce sera le temps d'exécution de notre code applicatif et si nous n'avons pas de trafic, nous ne payons rien.

Cloud Function

Cloud Function est un service managé qui permet d'exécuter du code sur GCP.

Cela ne nécessite aucune compétence technique particulière, à part évidemment maîtriser le langage dans lequel est écrit le code (Python, nodeJs ou Go). Pour le reste, on laisse Google faire le travail de gestion de l'infrastructure, du scaling, de la sécurité...

Le principe de ce service est extrêmement simple et se fonde sur :

  • le déclenchement de notre code par un événement comme un appel http ;
  • l'écriture d'un fichier dans GCS (Google Cloud Storage) ;
  • la publication d’un message dans pub/sub.

Sur le coût d'un tel service, nous ne payons que ce que nous consommons, c'est-à-dire le temps d'exécution du code.

Stackdriver

C'est la solution complète de monitoring que propose Google.

Aucune connaissance n’est nécessaire pour utiliser ce service et tous les types de profil se retrouveront dans cette solution : que vous soyez Ops, Dev ou DevOps, vous trouverez la fonctionnalité faite pour vous.

Ce service offre des solutions avec lesquelles nous avons la possibilité de surveiller notre infrastructure, services et applications, afin de les dépanner et de les améliorer.

Comme pour la plupart des services GCP et dans la vie, on consomme, on paye. Ici contrairement aux services de compute, nous allons utiliser un service de stockage et des appels aux différentes API qui composent StackDriver. La facturation se fera donc sur la quantité de données que nous collectons et gardons, puis sur le nombre d'appel que nous faisons sur les APIs pour les analyses des métriques.

Il est à noter que sans contrôle du type de données collectées et sans un archivage régulier, les coûts de ce service peuvent très vite augmenter, il est donc indispensable de bien contrôler les données et métriques dont vous avez réellement besoin.

Cloud Source Repository

Cloud Source Repository est un dépôt git privé hébergé sur la plateforme GCP.

La prise en main de cet outil nécessite la connaissance de git.

Nous pouvons le coupler avec d'autres services GCP afin de profiter de la puissance de cette plateforme et déclencher des événements après un push sur votre branche master par exemple.

Pour la facturation, ce service possède des limites de gratuité. Une fois dépassées, nous serons facturés sur le stockage, le réseau et le nombre d’utilisateur par compte de facturation.

Cloud Container Registry

C'est un dépôt d'images Docker privé qui permet de gérer nos images Docker, d'analyser les éventuelles failles de sécurité. Il est hébergé sur la plateforme GCP.

Pour prendre en main le service, il faut des connaissances de base sur Docker.

Comme pour le service Cloud Source Repository, nous avons la possibilité de le coupler avec d'autres services GCP.

La facturation est basée sur le stockage de vos images dans GCS (Google Cloud Storage) et sa consommation sortie réseau.

Cloud Build

CloudBuild est un outil très puissant. Il nous permet d'importer du code et de le compiler selon nos spécifications afin de produire des artefacts tels que des containers Docker ou des archives Java.

Il est bon d'avoir des connaissances sur Docker pour exploiter pleinement ce service.

Grâce à Cloud Build, vous avez la possibilité de lui fournir des étapes de compilation qui sont exécutées dans un container. Nous pouvons créer nos propres runners, ce qui nous laisse une grande liberté d'action. Par exemple, nous pouvons créer un runner pour les tests d'intégration de notre application, puis un runner pour déployer le code sur un service GCP de notre choix.

La facturation est basée sur le temps de compilation de notre service et aussi sur le type de machine utilisé pour faire cette action.

Conclusion :

J'espère ne pas vous avoir noyé dans ce premier article de présentation des services. Je pense qu'il est important d'avoir une vision globale d'un service avant de l'étudier en profondeur afin de savoir s'il est fait pour votre activité, en fonction de vos connaissances et vos contraintes financières.

Après la théorie, on passe à l’action ! la série d’articles qui suivront vous montreront la pratique à travers différents labs sur chacun des différents outils Google que je viens de vous présenter.

Merci pour votre lecture et restez connecté à notre blog ! Je suis disponible pour d'éventuelles questions ou suggestion d'articles.

Alexandre Blukacz

Découvrez les technologies d'alter way