Cloud
"Le cloud computing ou informatique en nuage est un concept qui consiste à déporter sur des serveurs distants des traitements informatiques traditionnellement localisés sur des serveurs locaux ou sur le poste client de l'utilisateur"
La version PDF de la présentation est disponible ici : Media:cloud.pdf
Introduction
La notion de Cloud abstrait complètement le principe de localité : serveurs locaux, machines clients, etc. Tout se passe à distance (serveurs distants), l'utilisateur n'a plus aucune notion de l'endroit ou sont stockées ses données. L'entreprise tout comme l'utilisateur ont une ingérence sur le système qui héberge leurs applications. La notion de matériel est ici abstraite pour l'utilisateur, son seul souci est d'avoir une bande passante décente pour accéder aux services désirés, généralement via des API standard ou des clients légers type navigateur web.
Son apparition provient majoritairement au besoin grandissant de réponse aux problèmes de QoS et de continuité. L'architecture d'un cloud permet d'améliorer considérablement ces points sensibles. Les fournisseurs de "Cloud" proposent des services tout comme un fournisseur d'énergie propose de l'électricité : vous vous abonnez pour telle ou telle données et vous ne payez que ce que vous consommez.
Principaux services
Les fournisseurs proposent différents services que l'on distingue en trois couches principales.
IaaS : Infrastructure as a Service
Cette couche représente le socle, le plus bas niveau : c'est donc la plus importante. Elle permet aux clients de louer ou acheter des machines ou serveurs virtuels ou bien même du stockage à la demande. Lorsque vous optez pour ce genre de services vous avez un certain nombre de choses à votre charge, mais cela vous permet d'optimiser l'utilisation de votre espace. La répartition de travail est comme suit :
- Vous maintenez : les applications, les serveurs d'applications, l'intégration SOA et les bases de données.
- Votre fournisseur maintient : la virtualisation, le matériel serveur, le stockage et les réseaux.
PaaS : Paltform as a Service
Cette couche vient directement s'appuyer sur la couche précédente (IaaS). Cette couche met à disposition des entreprises un environnement middleware immédiatement disponible. Elle est plus particulièrement destinée aux développeurs web ou orientés web. Dans ce contexte ou la plate-forme est livrée, vous n'avez qu'à maintenir vos applications, votre fournisseur se charge de tout le reste.
SaaS : Software as a Service
Cette dernière couche, destinée directement aux utilisateurs, est une offre "clé en main". Le client paye pour utiliser le logiciel et non pour le posséder (à la différence d'une licence par exemple). Au jour d'aujourd'hui cette couche est peu fournie au niveau des services que proposent les principaux fournisseurs (Amazon, Google & Windows). Cela revient plus simplement à louer le logiciel seulement le temps qu'on l'utilise, comme si l'on louait une maison de vacances !
Principe technique
L'architecture du Cloud repose sur un principe fondamental : la virtualisation. Celle-ci rend possible une infrastructure composée, pour chaque "Cloud", d'un cloud manager et de plusieurs noeuds.
Dans un premier temps, on peut voir l'architecture simpliste comme ceci :
Un Cloud est donc composé d'un "cloud manager" et de plusieurs "nodes". Au niveau de la couche système : - Pour les noeuds, ils disposent d'un système de virtualisation qu'on appelle "hypervisor" qui est adapté à l'infrastructure matérielle et qui sait gérer le cycle de vie des images logicielles. Chaque noeud dispose également d'une application bas niveau chargée de gérer les interactions entre le cloud manager et l'hypervisor mais aussi de lancer ou arrêter les images virtuelles grâce aux signaux reçus.
- Pour le cloud manager, c'est lui qui gère dynamiquement l'allocation des ressources (stockage, temps de calcul, mémoire, ...). Il commande les noeuds et est capable de répartir la charge grâce au "load balancer", il dispose de plusieurs interfaces permettant d'être inter-manager et inter-cloud. Il y'a donc une communication complète entre plusieurs "Cloud" et tous les managers dont ils sont composés. Cela confère bien l'aspect élastique du cloud computing.
On arrive donc à une architecture ressemblant plus à celle-ci :
Sécurité
Les données stockées en local sont sécurisées grâce au NAS qui sont dupliqués et cryptés. Quant aux données en transit, on fait appel à des services concurrent à l'intérieur du cloud pour garantir la sécurité. Les données en transit à l'extérieur sont évidemment sensibles aux attaques, on met donc en place des firewall et filtrage par adresses pour réduire au maximum le risque d'attaques. En interne, on utilise classiquement la technologie VLAN à laquelle on ajoute un cryptage applicatif sur les données physiques.
Fournisseurs
Je vous invite à consulter ce blog qui résume les 3 fournisseurs les plus important du marché avec une application dynamique permettant de voir la décompositions de tous les services proposés. Les trois fournisseurs sont aujourd'hui Amazon EC2, GoogleAppEngine et Windows Azure.