Bon, c'est bien beau tout ça, mais si on rentrait un peu dans le vif du sujet ? Par exemple, comment fonctionne le cloud ? Ah... Ça, c'est une question délicate, parce qu'il existe plusieurs types de cloud !
Les différents types de cloud
Si le cloud est difficile à saisir pour beaucoup de gens, c’est parce que c’est un terme très large qui englobe beaucoup de concepts. Je vous propose pour commencer de retenir les termes suivants, qui font tous partie de la grande famille du cloud :
IaaS (Infrastructure as a Service) : un prestataire vous fournit un accès à tout ou partie de son infrastructure technique, c’est-à-dire à ses serveurs. C’est ce que faisait Amazon à ses tout débuts dans l'histoire que je viens de vous raconter (ils font d'autres services cloud aussi, maintenant).
Analogie : imaginez que vous faites un voyage à travers les États-Unis avec 3 amis. Vous avez besoin d’une voiture ; vous faites donc appel à un service de location de voitures. Si la voiture a un problème technique, vous devrez juste la ramener chez le loueur et on vous en donnera une autre. Ce n'est pas à vous de régler les problèmes de moteur de la voiture.
Avec un IaaS, vous déléguez donc la gestion de ces problèmes matériels. En revanche, si d’autres amis décident de se joindre à votre voyage en cours de route, il faudra demander vous-même d’autres voitures pour transporter tout ce petit monde.PaaS (Platform as a Service) : non seulement on vous fournit un accès à l’infrastructure, mais on s’occupe aussi de gérer le nombre de machines nécessaires pour que votre application fonctionne bien quelle que soit la charge de trafic. On vous donne aussi accès à des fonctionnalités comme par exemple des bases de données, des serveurs de cache, des serveurs d’e-mail…
Analogie : reprenons notre voyage à travers les États-Unis avec un groupe d’amis. Avec un PaaS, vous ne louez plus directement les voitures : vous embauchez les services d’une personne responsable de vérifier si le voyage se déroule toujours dans les meilleures conditions (appelons cette personne le “concierge”).
Si 3 nouveaux amis vous rejoignent en cours de route, le concierge s’en apercevra et louera une seconde voiture sans que vous ayez besoin de le demander. Si d’un coup 20 nouveaux amis se joignent à votre voyage, il remplacera les voitures par un bus qu’il affrétera spécialement pour vous.
C’est exactement ce que fait un PaaS comme AWS : il vérifie que les visiteurs qui vont sur votre site le font dans les meilleures conditions. Il rajoute ou retire des serveurs en fonction du trafic. Vous pourriez presque lui demander des rafraîchissements quand vous avez soif !SaaS (Software as a Service) : on vous fournit l’accès à un logiciel sous forme de service. Avant, vous deviez installer le logiciel sur votre machine (ex. : Microsoft Office). Aujourd’hui, le logiciel se présente sous la forme d’une application web (qui n’est rien d’autre qu’une sorte de super site web !). Vous devez juste vous rendre à une adresse et vous pouvez l’utiliser (ex. : Microsoft Office 365, Google Workspace…).
Toutes ces offres de cloud fournissent des services à différents niveaux. Comme les langages de programmation, certains services sont "bas niveau" (proche de la machine) et d'autres sont "haut niveau" (grosse abstraction, éloignée du fonctionnement de la machine).
À titre d’exemple, le graphique ci-dessous classifie différentes offres cloud selon leur typologie :
Quand adopter le cloud ?
Faut-il partir sur une infrastructure cloud pour votre prochain site ? Il n’y a que vous qui puissiez le décider. Voici quelques éléments vous permettant de faire votre choix en toute objectivité si vous hésitez à vous lancer dans une plateforme PaaS comme AWS :
Le cloud vous permet de commencer gratuitement dans la plupart des cas. Dans le cas d'AWS, vous pouvez utiliser le service un an gratuitement si vous consommez peu de ressources. Vous devriez pouvoir suivre ce cours sans rien payer, donc !
Vous n’avez rien à faire si le trafic de votre site grossit : vous utiliserez automatiquement plus de serveurs (et ferez chauffer votre CB sous forme de pay as you go).
Vous n’avez pas à gérer les problèmes techniques « bas niveau », comme la perte d’un disque dur ou même d’un serveur entier. Tout cela est invisible pour vous.
Vous bénéficiez de fonctionnalités très pratiques qui vous évitent d’avoir à installer et maintenir un serveur de base de données, d’e-mails, etc. Bref, vous allez gagner du temps dans vos développements !
En revanche :
Vous devez adapter votre site pour qu’il fonctionne avec les limitations et fonctionnalités offertes par votre PaaS. Il y a des règles à suivre quand vous développez : vous n'êtes par exemple pas censé stocker vos fichiers sur le même serveur que celui qui contient votre site. Il faut les stocker sur d'autres serveurs, en faisant appel à un service de stockage.
Si vous voulez changer de prestataire, cela ne se fait pas en claquant des doigts. Il faut parfois recoder tout ou partie de votre site pour qu’il fonctionne sur un autre PaaS.
Les bugs techniques sont rares mais peuvent toujours survenir, quoi que le service Marketing veuille bien tenter de vous faire croire. Ne faites pas une confiance aveugle dans votre cloud, et demandez des SLA (Service Level Agreements) pour garantir financièrement le bon fonctionnement du site, si vous êtes une entreprise et que le site est critique pour vous. Avec des SLA, le fournisseur aura des pénalités si votre site ne fonctionne pas pendant plusieurs heures par sa faute.
La galaxie Amazon Web Services
Rentrons maintenant un peu plus dans le vif du sujet : quels sont les fournisseurs de cloud ? Et qu'y a-t-il concrètement à l'intérieur d'Amazon Web Services ?
Les principaux fournisseurs de cloud
Si Amazon Web Services fut le premier à se lancer dans le cloud, de nombreux autres l'ont ensuite suivi. Ils restent loin derrière en termes d'utilisation, mais il est important de les connaître. Citons notamment :
Microsoft Azure ;
Google Cloud Platform (GCP).
Ce magic quadrant inclut les fournisseurs cloud du IaaS (Infrastructure as a Service) et du PaaS (Platform as a Service) :
Le graphique suivant, datant de 2021, vous donne une idée de la part de marché de chaque fournisseur :
Fort de ses 33 % de part de marché, Amazon est celui qui domine l’offre cloud depuis le tout début...
Les autres fournisseurs, comme Google, Microsoft et IBM, ont une plus faible part de marché mais une croissance plus forte. Ce qui est logique quand on y pense : il est plus facile d'avoir une grosse croissance quand on est petit que quand on est déjà très gros.
J'ai déjà personnellement essayé les clouds de Google et d'IBM en plus d'AWS. Ils offrent des services concurrents intéressants, mais ne rivalisent pas en termes de diversité de l'offre. En clair : AWS profite du fait qu'il était le premier sur le marché pour continuer à innover et fournir de nouveaux services.
Les services proposés par AWS
Pour comprendre toute la richesse des services proposés par AWS, rendez-vous sur la page d'accueil d'AWS.
Vous devriez voir ceci :
Chaque élément que vous voyez est une catégorie... et chaque catégorie propose plusieurs services, qui font partie de l'offre globale d'AWS :
Chacun de ces services est un univers à part, riche et entier. Il faut parfois des semaines ou des mois pour comprendre et maîtriser le fonctionnement d'un seul de ces services.
Mais... c'est horrible ! Il y a tellement de choses ! Je ne pourrai jamais maîtriser tout ça !
C'est exactement ce que je me suis dit la première fois que j'ai vu AWS (et encore, à l'époque il n'y avait même pas le tiers des services que vous voyez ici !). La bonne nouvelle c'est que... vous n'avez pas besoin de tout connaître. Vous ne pouvez pas tout connaître. Personne ne peut. C'est trop riche.
Détendez-vous donc et dites-vous que c'est normal d'avoir un grand sentiment de vertige en voyant la liste de tous ces services.
Il y a quand même quelques services principaux incontournables qu'il faut connaître. Comme je suis sympa, les voici !
EC2 : Elastic Compute Cloud
Ce service permet de gérer des serveurs sous forme de machines virtuelles dans le cloud. En gros, vous pouvez lancer des serveurs et faire ce que vous voulez avec. Vous avez accès à la ligne de commande, donc vous pouvez les piloter à distance.
Il compose l'offre de IaaS (Infrastructure as a Service). À lui seul, on pourrait dédier plusieurs cours entiers.
RDS : Relational Database Service
Il permet de gérer des bases de données managées dans le cloud. Cela veut dire qu'on met à votre disposition un serveur de base de données préconfiguré. Contrairement à EC2, vous n'avez pas accès à la ligne de commande, et c'est volontaire. Vous pouvez vous concentrer sur l'utilisation de la base de données. Vous laissez Amazon s'occuper de toute la gestion du serveur pour vous (ex. : mises à jour de sécurité et sauvegarde). Cela n'a l'air de rien, mais cela vous fait gagner du temps !
S3 : Simple Storage Service
Amazon S3 (Simple Storage Service) est un service de stockage et de distribution de fichiers. C’est une sorte d’entrepôt de fichiers à très bas coût qui garantit de ne jamais perdre vos données. Utilisez-le pour faire télécharger des fichiers sur votre site, ou pour y stocker des images.
IAM : Gestion des identités
AWS IAM (Identity and Access Management) est LE service de sécurité par excellence. On y définit les règles d’accès des utilisateurs aux services de la galaxie AWS. Si vous souhaitez autoriser votre comptable à télécharger la facture mais pas à éteindre vos serveurs, c’est là que ça se passe.
... et bien d'autres !
Je vous avoue que je meurs d'envie de vous parler de plein d'autres services...
... mais il va falloir que je me retienne. Restons focused, concentrons-nous sur l'essentiel.
En résumé
Les services cloud se déclinent en plusieurs familles, de SaaS offrant un maximum de flexibilité, jusqu’au l'IaaS abstrayant les couches basses de l’infrastructure.
Les trois plus gros acteurs du cloud sont AWS, Microsoft et Google.
La possibilité d’avoir du “pay as you go” est l’une des forces du cloud. Vous payez à la hauteur de votre consommation réelle.
Dans un environnement cloud, vous déléguez la gestion bas du niveau de l’infrastructure. Tout cela est invisible pour vous.
Les principaux services que nous allons voir dans ce cours sont : EC2, RDS, S3 et IAM.
C'est donc tout ce que je vous propose de retenir pour l'instant ! Nous allons découvrir ces 4 services incontournables (EC2, RDS, IAM et S3) dans ce cours.