Cloud computing

Définition

Le cloud computing, qu’est-ce que c’est ?

Selon wikipedia: « Le cloud computing, ou l’informatique en nuage, est l’exploitation de la puissance de calcul ou de stockage de serveurs informatiques distants par l’intermédiaire d’un réseau, généralement internet. »

La première fois que j’ai lu cette phrase, cela ne m’en a pas appris d’avantages sur le cloud…

Une définition plus complète serait:

La mise à disposition de ressources informatiques (CPU, Mémoire, stockage, réseaux), par un fournisseur cloud (ex: Amazon Web Services, Alibaba Cloud, Outscale).

Ses ressources sont accessibles et « manageables » par le biais d’une interface web ou une API,
et le consommateur paie uniquement pour ses ressources consommées avec une facturation à l’heure.

Il est donc possible, par exemple, de déployer une vingtaines de serveurs sur le cloud de votre choix en quelques clics ou lignes de code, et d’y accéder quelques minutes après.

Console AWS
API AWS

OK, mais alors pourquoi utiliser le cloud ?

Pour mieux comprendre l’utilité du cloud, prenons l’exemple d’un site e-commerce durant la période des fëtes, et qui doit faire face à un fort traffic dû aux achats en ligne.

L’afflux important sur le site engendre une surcharge sur les serveurs webs, et à terme le site e-commerce sera indisponible.
Qui dit indisponibilité, dit pas d’achats, qui dit pas d’achats, dit perte d’argent pour la société !

Pour absorber ce pic de traffic et éviter l’indisponibilité, il existe deux possibilités:

La scalabilité verticale (méthode « classique »): On garde les serveurs existants, et on les « upgrade » en capacité hardware.
La scalabilité horizontale (méthode cloud): On augmente le nombre de serveurs et on diminue ce nombre lorsque le traffic diminue.
Je parlerai d’auto-scaling dans un prochain post.

Pour rappel la scalabilité, au sens d’une application, est la capacité s’adapter à une montée de charge, tout en maintenant son niveau de service.

scalabilité verticale et scalabilité horizontale

La scalabilité verticale comporte des limites « hardware », en effet toute machine atteint à un moment donné une limite physique, vous pourriez résoudre votre problème actuel en ajoutant de la RAM et du stockage, mais vous serez sûrement de nouveau confrontés à ses problèmes dans un futur proche.
De plus, une fois la période des fêtes terminée, il n’y a plus d’utilité à utiliser ses super-machines-upgradées, car elles seront sous-comsommées le reste de l’année.

La scalabilité horizontale est beaucoup plus souple. On parlera alors d’élasticité.
Et c’est bien là l’avantage d’utiliser le cloud, c’est pouvoir exploiter des architectures scalables grâces aux ressources du cloud provider.

C’est pouvoir approvisionner/désapprovisionner très rapidement des serveurs pour répondre aux pics de traffic.
Pas de matériel physique à acheter ni installer, on ne paie que pour les ressources utilisées.

Conclusion

Le cloud est un outil adapté à l’ère des architectures micro-services d’aujourd’hui, et un outil idéal pour déployer rapidement des applications scalables. Mais le cloud comporte bien plus de complexité que cela, mais je pense que c’est suffisant pour une introduction.

Je posterai bientôt d’autres post sur le sujet 😉

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *