Cloud, cloud, cloud... Les gens n'ont que ce mot-là à la bouche en ce moment ? Qu'est-ce que c'est ? À quoi ça sert ?
Amazon Web Services (AWS) est justement une de ces solutions cloud. C'est un service qui vous permet d’utiliser les mécanismes du "cloud computing", et de bénéficier de leurs avantages pour héberger votre prochain site web.
Comme vous devez avoir une bonne compréhension globale des principes du cloud avant toute chose, je vais vous expliquer dans ce premier chapitre ce qu’est le cloud, et comment il fonctionne !
Découvrez la relation entre serveurs et Cloud Computing
Mettons d'abord les choses au clair : « cloud » est d’abord un terme marketing. Voilà pourquoi vous l’entendez souvent. On aimerait que vous disiez « Je veux utiliser le cloud pour mon site web »… Bien qu’il s’agisse d’un cours sur le cloud (et donc quelque part à la gloire du cloud !), j’aimerais aiguiser votre esprit critique avant d’aller plus loin.
Comment est né le mot cloud ? Comment a-t-on découvert et mis en place ces nouvelles techniques ? Laissez-moi vous raconter la petite histoire du cloud à travers l'histoire d'Amazon Web Services.
Remontons quelques années en arrière. Juillet 2002. Amazon est un site de vente en ligne qui cartonne. Simple site de vente de livres à l’origine, on peut aujourd’hui tout acheter : jeux vidéo, matériel hi-fi, vêtements, chaussures… Pour évoluer et gérer de plus en plus de clients, Amazon a dû construire lui-même une très grosse infrastructure technique. Eh oui, il faut des serveurs, beaucoup de serveurs.
Un site comme Amazon est donc hébergé sur d’innombrables serveurs, eux-mêmes regroupés dans de grands entrepôts appelés datacenters. Tous les très gros sites ont leurs propres datacenters, et Amazon ne fait évidemment pas exception à la règle.
On se croirait dans un décor de science-fiction, et pourtant c'est bien dans des endroits comme celui-ci que tous les plus gros sites web du monde sont hébergés (bon OK, la photo a un peu été retouchée !).
Chaque colonne que vous voyez est appelée une baie de serveurs. À l'intérieur, on peut trouver facilement 20, 30, 40 serveurs. Zoomons un peu sur eux :
Les serveurs sont des ordinateurs comme les autres. Ils ont des ports USB, des ports Ethernet, et évidemment un bouton Power.
En revanche, ils sont plats (pour les empiler) et ils ne sont quasiment jamais branchés à un écran, car on les administre à distance. On les désigne généralement sous le nom de serveurs empilables.
D'où vient le cloud ?
Pour faire face à la demande qui grandissait de jour en jour, Amazon a dû apprendre à standardiser et automatiser la gestion des dizaines de milliers de serveurs répartis dans les quatre coins du monde. Ils ont rapidement réalisé l’avantage économique et technologique que procurerait cette innovation aux entreprises.
Un développeur n’a plus besoin d'acheter des tonnes de serveurs comme Amazon, juste pour être prêt en cas de pic de trafic. Il peut simplement lui demander d'utiliser temporairement plus de serveurs les heures où il a plus de visiteurs. Amazon s’occupera de mettre à disposition les bonnes machines, de les configurer et de remplacer celles qui présentent un dysfonctionnement. Bref, l’entreprise se focalise sur son business tandis qu’Amazon gère sa flotte IT de manière optimale.
Cette idée, simple et pourtant si séduisante, a conquis le marché technologique et a propulsé le cloud sur le devant de la scène.
Le service AWS est maintenant composé de millions de serveurs dans le monde, eux-mêmes répartis dans de multiples datacenters qui lui appartiennent : aux États-Unis, en Irlande, en Asie… Ces datacenters ont poussé comme des champignons ces dernières années.
Quelle est la différence avec un hébergeur qui loue des serveurs ?
Dans le cas d'un hébergement traditionnel, aussi appelé on-premise, vous achetez ou louez vos propres serveurs. Vous pouvez dire, si vous allez dans la salle serveur de l’entreprise ou son datacenter : « Ces serveurs-là, ce sont les miens ! » (et si vous les avez achetés, vous pouvez même graver votre nom dessus).
Les ingénieurs d’Amazon ont eu l’idée de « cacher » le fonctionnement de leurs serveurs, et de vendre uniquement de la puissance de calcul et du stockage. Bien sûr, au final, c’est toujours un vrai serveur qui répond à vos requêtes (un serveur branché sur une prise électrique avec un disque dur et tout !). Mais la différence est que vous ne savez pas quel est le serveur qui répond aux requêtes. Parfois, le serveur change dans la journée et vous n’êtes pas au courant, mais ça n’est pas grave : ce qui compte, c’est que votre site fonctionne toujours !
L’intérêt de ce fonctionnement, c’est que vous n’avez plus à vous préoccuper des problèmes physiques des machines. Si un disque dur tombe en panne, ce n'est pas à vous d'aller le remplacer.
Voilà comment le cloud (ou cloud computing) est né. Cela n’a rien de magique : il y a toujours des serveurs, des processeurs, de la mémoire et des disques durs. Sauf qu’au lieu de vous louer un serveur précis avec son numéro de série, on vous loue « la puissance d’un serveur ».
En quoi consiste la responsabilité partagée ?
Vous l’aurez compris, la force d’AWS, et de tout service Cloud, est de décharger le client de la gestion des couches basses du parc informatique.
Très bien, mais que se passe-t-il lors d’une panne ou d’une faille de sécurité ?
Eh bien, cela dépend du service AWS utilisé, ainsi que du type de panne dont il est question. On parle ainsi d’un modèle de responsabilité partagée.
Prenons le simple exemple où nous déléguons à AWS absolument toute la gestion des serveurs et des bases de données. Nous n’avons aucun contrôle sur ces composants., notre seule action possible se résume à mettre à jour le code PHP du site web. Dans ce cas-là, s’il y a une faille de sécurité sur la version Linux de la machine hébergeant notre site web, c’est clairement à la charge d’AWS de corriger cette faille.
Si toutefois il y a une vulnérabilité dans notre code PHP, la tâche de correction nous incombe. Notre site web repose sur notre capacité à sécuriser le code applicatif, mais également sur la capacité d’AWS à maintenir un serveur à jour, dans un datacenter protégé, et ainsi de suite...
D’où la notion de responsabilité partagée.
La responsabilité d’AWS diffère d’un service à un autre(par exemple, entre Amazon S3 et Amazon RDS). La règle d’or à retenir est que si vous avez la main dessus, c’est à votre charge.
En résumé
La force du cloud réside dans la flexibilité qu’il offre aux développeurs. On ne loue plus une machine pour une durée fixe. On loue uniquement la puissance de calcul dont on a besoin.
Le cloud repose toujours sur des machines physiques. On délègue tout simplement leur gestion à un tiers.
La responsabilité du fournisseur de cloud diffère selon le service proposé. Plus on contrôle les briques du services, plus on étend notre responsabilité.
Dans le prochain chapitre, je vous propose d’explorer les différents types de services cloud.