Voyage au centre du nuage : deep dive dans le Cloud

Je vous proposes un petit voyage au cœur du Cloud ... Plus rafraichissant qu'au centre de la Terre, mais non moins exigeant !
Voyage au centre du nuage : deep dive dans le Cloud

Vous avez développé, ou plutôt « vibecodé » votre application, et sur les bons conseils de votre IA favorite, vous l’avez déployée via une solution comme Replit ou Railways : deux clics, trois max, et tout roule nickel.

La belle vie, n’est-ce pas ? Mais vous êtes vous déjà demandé ce qu’il y a « dans » le nuage ?

Curieux d’en savoir plus ? Alors enfilez votre équipement d’explorateur, et mettons-nous en route pour une aventure dans les entrailles du Cloud …

1- Le Niveau Serverless – Functions as a Service (FaaS)

Tout à fait au sommet du nuage se trouve une couche où nous n’avons pas à nous soucier des serveurs : nous écrivons juste notre code pour des tâches spécifiques, et le Cloud l’exécute automatiquement, et seulement si nécessaire, en gérant tout le reste.

C’est idéal pour des applications qui réagissent à des événements, comme traiter une photo uploadée (par exemple, via des services comme des lambdas génériques). En revanche, c’est spécifique à ce cas d’usage.

2- Le Niveau des Containers – Emballage Portable des Applications

À ce niveau, nos applications sont emballées dans des « boîtes » légères et faciles à dupliquer que nous appelons « containers ». Leur fonctionnement repose sur des technologies Linux conçues pour permettre de reproduire un environnement Linux, en faisant une totale abstraction du matériel sous-jacent, et en facilitant au maximum l’isolation des services à l’intérieur des containers.

Cela facilite des déploiements rapides et consistants, en nous évitant de nous préoccuper de tout l’environnement sous-jacent. Par contre, nous n’avons pas la main sur cet environnement, ce qui peut devenir une contrainte, pour des produits plus exigeants.

3- Le Niveau du Virtual Private Server (VPS)

Plus bas, nous retrouvons des serveurs virtuels reprenant le fonctionnement d’une machine physique complète, mais dans le Cloud. Nous pouvons les configurer comme un ordinateur personnel, en choisissant et installant notre système personnel : parfois, nous partons d’Images déjà prêtes à l’emploi, parfois nous choisirons de configurer nous-même le système. Après, nous pourrons toujours créer une Image réutilisable.

Nous retrouvons la main sur l’environnement où s’exécute notre produit, tout en conservant des bénéfices proches de ceux des containers : nous pouvons facilement reproduire une Machine Virtuelle (par exemple pour absorber la charge). Cependant, les offres de VPS consistent à mutualiser les ressources physiques entre plusieurs clients. Si nous avons de fortes contraintes de sécurité (par exemple, pour la gestion de données sensibles), cela peut être une contrainte…

4- Le Niveau de la virtualisation : Compute, Storage et Network

Cette couche sépare le monde virtuel du monde physique. Ici, nous pouvons accéder directement à la puissance de calcul, au stockage et au réseau, mais virtualisé. À ce niveau, le Cloud Provider opère ce qu’on appelle un hyperviseur, un logiciel spécial, installé au niveau du matériel, qui gère l’orchestration des Machines Virtuelles, des Images machines, du stockage et du réseau (virtualisé), etc.

Les offres de type IaaS (Infrastructure as a Service) nous permettent d’interagir directement avec l’orchestrateur pour gérer manuellement la configuration de notre Machine Virtuelle et (dans une certaine mesure) de l’infrastructure sur laquelle elle sera exécutée. Cela nous permet de lever les contraintes de sécurité, mais au prix d’une complexité technique plus importante.

5- Le Niveau Bare Metal – Serveurs Physiques Dédiés

Ça y est. Nous avons franchi la frontière entre le monde virtuel et le monde physique. Alors ce n’est pas non plus comme passer du quantique à la physique classique … Certains fournisseurs comme OVH proposent des offres « Bare Metal » pour nous donner un accès direct à des machines physiques, qui nous seront alors réservées.

De cette façon, nous disposons d’un contrôle total, de la performance maximale, et d’un niveau de sécurité encore plus élevé (garanti absolu que nous sommes les seuls utilisateurs du matériel). Forcément, cela implique encore plus de complexité et d’expertise pour la gestion.

6- Le Niveau Fondamental – Hardware et Datacenters

Nous arrivons enfin au cœur du nuage. Ici, nous avons le matériel physique sur lequel repose tout l’édifice : processeurs (CPU et GPU), disques durs (généralement du SSD), câbles réseau (de fibre optique, pour assurer la performance), alimentation, etc. Les datacenters sont généralement opérés par les Cloud Providers (certains sous-traitent à des prestataires ou sont locataires de bâtiments physiques).

Dans un datacenter, nous aurons divers aménagements pour assurer la disponibilité et la sécurité du matériel :

  • Système de refroidissement (climatisation, parfois watercooling) ;
  • Alimentation électrique avec redondance (certains Cloud Providers vont jusqu’à s’assurer que les réseaux électriques sont raccordés à deux centrales électriques différentes …) ;
  • Système pour lutter contre les incendies ;

Tout cela permet de garantir que le Cloud reste opérationnel 24h sur 24 et 7 jours sur 7.

Les utilisateurs lambda vont rarement chercher à disposer d’un datacenter entier, loin s’en faut ! Par contre, des entreprises « grands comptes » peuvent opter pour ce genre de solution :

  • Soit elles vont sous-traiter à un Cloud Provider et souscrire à une offre de type « on-premise » (le Cloud Provider installe tout le nécessaire dans le Datacenter, pour le compte de son client) ;
  • Soit elles vont opérer elle-même leur offre Cloud. À ce moment là, ce peut être basé sur Openstack (une solution de Cloud open source.

Chaque niveau ses clients

Plus on descend dans les couches profondes du Cloud, plus c’est complexe à gérer, mais plus nous avons de contrôle sur l’environnement dans lequel se trouve notre produit. Le compromis repose donc sur trois piliers.

  • Facilité d’exécution : On la favorise en général quand les enjeux sont faibles et/ou qu’on souhaite un résultat rapide. On va alors opter pour l’un des plus hauts niveaux.
  • Performance : Ici nous chercherons avant tout une meilleure maîtrise sur l’infrastructure sur laquelle s’exécute notre application. Les niveaux intermédiaires seront généralement les plus adaptés à nos besoins.
  • Sécurité : Ici aussi, nous aurons surtout besoin de maîtriser notre infrastructure. Par contre, plus l’enjeu de sécurité est élevé, plus nous opterons pour du bas niveau.

Et le « on-premise » pour un particulier, cela s’appelle « une tour installée dans son salon » (et ça peut paraître bête, mais c’est une expérience intéressante, pour comprendre comment ça marche). Pour les plus bidouilleurs, je vous invite à regarder des solutions comme Nextcloud. C’est très instructif, et ça évite de laisser traîner les photos des vacances ou du petit dernier n’importe où.


Write a comment