Une traduction de l'article a été préparée spécialement pour les étudiants du cours Cloud Services .
Est-il intéressant de se développer dans cette direction? Regardez l'enregistrement de l'atelier professionnel AWS EC2 Service organisé par Egor Zuev - TeamLead à InBit et l'auteur du programme éducatif à OTUS.

La plate-forme Google Cloud (GCP) propose de nombreux services, et en particulier la pile informatique, qui contient Google Compute Engine (GCE), Google Kubernetes Engine (anciennement Container Engine) (GKE), Google App Engine (GAE) et Google Cloud Functions (GCF ) Tous ces services ont des noms sympas, mais peuvent ne pas être tout à fait évidents en termes de leurs fonctions et ce qui les rend uniques les uns par rapport aux autres. Cet article est destiné à ceux qui viennent de se familiariser avec les concepts du cloud, en particulier avec les services cloud et GCP.

1. Pile informatique
La pile de calcul peut être considérée comme une abstraction à plusieurs niveaux sur ce qu'un système informatique peut fournir. Cette pile monte du métal nu , qui se réfère aux composants matériels réels d'un ordinateur, jusqu'aux fonctions, qui sont la plus petite unité de calcul. Ce qui est important à noter en ce qui concerne la pile est que les services sont agrégés lors du déplacement vers le haut de la pile, par exemple, la section «apps», illustrée dans la figure 1 ci-dessous, devrait contenir tous les composants de base des conteneurs, des machines virtuelles ( virtuelles) machines ) et le fer. De la même manière, le composant de la machine virtuelle doit contenir le matériel à l'intérieur pour fonctionner.

Figure 1: pile de calcul | Image récupérée de Google Cloud
Ce modèle, illustré à la figure 1, sert de base à la description des offres des fournisseurs de cloud. Ainsi, certains fournisseurs ne peuvent fournir, par exemple, que des conteneurs et des services de qualité inférieure sur la pile, tandis que d'autres peuvent faire tout ce qui est illustré à la figure 1.
- Si vous connaissez les services cloud, passez à la section 3 pour vous familiariser avec l'équivalent de GCP
- Si vous avez seulement besoin d'un résumé des services cloud, passez à la section 2.4
2. Services cloud
Le monde du cloud computing est très diversifié. Les fournisseurs de cloud offrent de nombreux services adaptés aux différentes exigences des clients. Vous avez peut-être entendu parler de termes tels que IaaS, PaaS, SaaS, FaaS, KaaS, etc. avec toutes les lettres de l'alphabet suivies de aaS. Malgré l'étrange convention de dénomination, ils forment un ensemble de services de fournisseur de cloud. Je note qu'il existe 3 principales propositions «en tant que service» que les fournisseurs de cloud proposent presque toujours.
Il s'agit de l'IaaS, du PaaS et du SaaS, qui désignent respectivement l'infrastructure en tant que service (Infrastructure as a Service), la plateforme en tant que service (Platform as a Service) et le logiciel en tant que service (Software as a Service). Il est important de visualiser les services cloud comme des niveaux de service. Cela signifie que lorsque vous montez ou descendez de niveau en niveau, vous, en tant que client, croisez différentes options de service qui sont ajoutées ou supprimées de l'offre principale. Il est préférable de considérer cela comme une pyramide, comme le montre la figure 2.

Figure 2: Pyramide aaS | Image prise à partir de Ruby Garage
2.1 Infrastructure en tant que service (IaaS)
Il s'agit du niveau le plus bas qu'un fournisseur de services cloud peut offrir, et il comprend un fournisseur de services cloud qui fournit une infrastructure bare-metal, y compris des logiciels intermédiaires, des câbles réseau, des processeurs, des GPU, de la RAM, du stockage externe, des serveurs et des images de système d'exploitation sous-jacentes par exemple Debian Linux, CentOS, Windows, etc.
Si vous recevez une offre de votre fournisseur de cloud IaaS, c'est ce à quoi vous devez vous attendre. C'est à vous, en tant que client, d'assembler ces pièces pour votre entreprise. La mesure dans laquelle vous devez travailler peut varier d'un fournisseur à l'autre, mais en règle générale, vous obtenez simplement le matériel et le système d'exploitation, et le reste dépend de vous. Des exemples d'IaaS sont AWS Elastic Compute, Microsoft Azure et GCE.
Certaines personnes peuvent ne pas aimer le fait qu'elles doivent installer des images de système d'exploitation et gérer le réseau, l'équilibrage de charge ou se soucier du type de processeur idéal pour leur charge de travail. C'est là que nous remontons la pyramide vers PaaS.
PaaS comprend uniquement un fournisseur de services cloud qui offre une plate-forme spécifique sur laquelle les utilisateurs peuvent créer des applications. Il s'agit d'une abstraction sur IaaS, ce qui signifie que le fournisseur de cloud s'occupe de tous les détails des types de CPU, mémoire, RAM, stockage, réseaux, etc. Comme le montre la figure 2, vous, en tant que client, avez peu de contrôle sur la plate-forme réelle, car le cloud le fournisseur s'occupe de tous les détails de l'infrastructure pour vous. Vous demandez la plateforme sélectionnée et construisez un projet dessus. Heroku est un exemple de PaaS.
Pour quelqu'un, cela peut être un niveau trop élevé, car il ne veut pas nécessairement construire un projet sur la plate-forme spécifiée, mais a plutôt besoin d'un ensemble de services directement auprès du fournisseur de services cloud. C'est là que le SaaS entre en scène.
2.3 Logiciel en tant que service (SaaS)
Le SaaS est le service le plus courant fourni par les fournisseurs de services cloud. Ils sont destinés aux utilisateurs finaux et sont principalement accessibles via des sites Web tels que Gmail, Google Docs, Dropbox, etc. En ce qui concerne Google Cloud, il existe plusieurs offres en dehors de leur pile informatique qui sont SaaS. Il s'agit notamment de Data Studio, Big Query, etc.
2.4 Résumé des services cloud
Figure 3: Résumé des offres de Cloud clés | Image reproduite avec l'aimable autorisation d' Amir sur Blog Specia
Après avoir examiné les offres typiques des fournisseurs de cloud dans la section 2, nous pouvons les comparer avec les offres de Google Cloud.
3.1 Google Compute Engine (GCE) - IaaS

Figure 4: icône Google Compute Engine (GCE)
GCE est une offre IaaS de Google. Avec GCE, vous pouvez créer librement des machines virtuelles, allouer des ressources de processeur et de mémoire, choisir le type de stockage, par exemple, SSD ou HDD, ainsi que la quantité de mémoire. C'est presque comme si vous aviez créé votre propre ordinateur / poste de travail et effectué tous les détails de son travail.
Dans GCE, vous pouvez choisir entre des micro-instances avec des processeurs à 0,3 cœur et 1 Go de RAM et des monstres à 96 cœurs avec plus de 300 Go de RAM. Vous pouvez également créer des machines virtuelles de taille personnalisée pour vos charges de travail. Pour ceux qui sont intéressés, ce sont des machines virtuelles que vous pouvez assembler.
Types de machines | Documentation de Compute Engine | Google cloud
3.2. Google Kubernetes Engine (GKE) - (Caas / Kaas)

Figure 5: icône Google Kubernetes Engine (GKE)
GKE est l'offre informatique unique de GCP, qui est une abstraction du moteur de calcul. Plus généralement, GKE peut être classé comme conteneur en tant que service (CaaS), parfois appelé Kubernetes as a Service (KaaS), ce qui permet aux clients de lancer facilement leurs conteneurs Docker dans un environnement Kubernetes entièrement géré. Pour ceux qui ne connaissent pas les conteneurs, les conteneurs aident à former des services / applications de manière modulaire, de sorte que différents conteneurs peuvent contenir différents services, par exemple, un conteneur peut héberger l'interface de votre application Web et l'autre peut contenir sa partie serveur. Kubernetes automatise, coordonne, gère et déploie vos conteneurs. Plus d'infos ici.
Moteur Google Kubernetes | Google cloud
3.3 Google App Engine (GAE) - (PaaS)

Figure 6: icône Google App Engine (GAE)
Comme mentionné dans la section 2.2, PaaS est plus élevé que IaaS, et dans le cas de GCP, il peut également être considéré comme une phrase sur GKE. GAE est un Google PaaS spécialisé, et la meilleure façon de se décrire est de "porter votre code, et nous nous occuperons du reste".
Cela garantit que les clients utilisant GAE n'ont pas à gérer le matériel / middleware de base et peuvent déjà avoir une plate-forme préconfigurée prête à fonctionner; il leur suffit de fournir le code nécessaire à son exécution.
GAE traite automatiquement la mise à l'échelle pour satisfaire la charge et la demande des utilisateurs, ce qui signifie que si votre site Web vendant des fleurs atteint soudainement un pic parce que la Saint-Valentin approche, GAE traitera la mise à l'échelle de l'infrastructure sous-jacente pour répondre à la demande et s'assurer que Votre site Web ne tombera pas en raison d'une demande accrue. Cela signifie que vous payez exactement les ressources dont votre application a actuellement besoin.
GAE utilise Kubernetes ou sa version intégrée pour gérer tout cela afin que vous n'ayez pas à vous en soucier. GAE est idéal pour les entreprises qui ne sont pas intéressées par l'infrastructure sous-jacente et qui se soucient seulement que leur application soit disponible de la meilleure façon possible.
À mon avis, GAE est le meilleur endroit pour commencer si vous êtes un développeur avec une excellente idée, mais que vous ne voulez pas faire le travail de routine de configuration des serveurs, d'équilibrage de charge et de tous les autres devops / SRE longs. Au fil du temps, vous pourriez essayer GKE et GCE, mais ce n'est que mon avis.
Avertissement : AppEngine est utilisé pour les applications Web, pas pour les applications mobiles.
Pour référence : App Engine - Créez des backends Web et mobiles évolutifs dans toutes les langues | Google cloud
3.4 Fonctions Google Cloud - (FaaS)

Figure 7: icône Google Cloud Functions (GCF)
J'espère que vous avez remarqué la tendance en analysant les phrases précédentes. Plus vous montez dans l'échelle des solutions informatiques GCP, moins vous devez vous soucier des technologies de base. Cette pyramide se termine par la plus petite unité de calcul possible, une fonction, comme indiqué dans la section 1.
GCF est une offre GCP relativement nouvelle qui est encore en phase de test bêta (au moment d'écrire ces lignes). Les fonctions cloud permettent à certaines fonctions écrites par un développeur d'être déclenchées par un événement.
Ils sont pilotés par les événements et sous-tendent le mot à la mode sans serveur, ce qui signifie qu'ils ne connaissent pas les serveurs. Les fonctions cloud sont très simples et ont de nombreuses utilisations différentes qui nécessitent une réflexion événementielle. Par exemple, chaque fois qu'un nouvel utilisateur se connecte, une fonction cloud peut être lancée pour alerter les développeurs.
En usine, lorsqu'un certain capteur atteint une certaine valeur, il peut lancer une fonction cloud qui effectue un certain traitement des informations, ou avertit certains personnels de maintenance, etc.
Fonctions cloud - Informatique serveur basée sur les événements | Google cloud
Conclusion
Dans cet article, nous avons parlé de diverses offres de cloud, telles que IaaS, PaaS, etc., et comment la pile informatique de Google implémente ces différents niveaux. Nous avons vu que les niveaux d'abstraction lors du passage d'une catégorie de service à une autre, comme l'IaaS dans Paas, nécessitent moins de connaissances sur le sous-jacent.
Pour les entreprises, cela offre une flexibilité critique qui non seulement atteint ses objectifs opérationnels, mais satisfait également d'autres domaines clés, tels que la sécurité et les coûts. Résumant:
Compute Engine - vous permet de créer votre propre machine virtuelle, en allouant certaines ressources matérielles, par exemple, RAM, processeur, mémoire. Il est également assez pratique et de bas niveau.
Le moteur Kubernetes est une étape supérieure au moteur de calcul, qui vous permet d'utiliser Kubernetes et des conteneurs pour gérer votre application, ce qui vous permet de la faire évoluer si nécessaire.
L'App Engine est une étape supérieure au moteur Kubernetes, vous permettant de vous concentrer uniquement sur votre code, tandis que Google fournit toutes les exigences de la plate-forme sous-jacente.
Cloud-Functions est le sommet de la pyramide informatique, vous permettant d'écrire une fonction simple qui, lorsqu'elle est lancée, utilise toute l'infrastructure de base pour calculer et renvoyer le résultat.
Merci de votre attention!
Twitter: @martinomburajr