Un avenir nuageux… Et c’est tant mieux !
On entend beaucoup parler du Cloud Computing ces dernier temps, à juste titre me demanderez-vous ? Mais qu’est-ce que le Cloud Computing et ne s’agit-il pas encore d’un nouveau buzz word pour vanter les mérites d’une technologie déjà connue ?
Quelle différence entre le Cloud Computing et la virtualisation que l’on connait déjà ?
La virtualisation permet de mutualiser les ressources hardware (disque, RAM, …), de diminuer les coûts en terme de consommation d’énergie électrique, de place et de personnel pour l’administration et la logistique et d’augmenter l’efficacité des PRA (Plan de Reprise d’Activité) du fait de la simplicité de remise à disposition d’un système en quelques clicks. Cette couche d’abstraction entre le système et le hardware a permis une avancée au niveau de l’administration des parcs informatiques.
Le Cloud Computing c’est en fait de la virtualisation, mais chez un hébergeur. Quels sont les avantages ?
· De même que pour l’hébergement classique, cela permet de s’affranchir des problématiques hardware : plus besoin de commander, par exemple, un ESX et ses lames avec les questions de délais et d’installation, tout est déjà en place et l’interface d’administration n’attend que vous.
· L’autre valeur ajoutée, plus originale celle là, est le modèle économique retenu, le « SaaS » (Software as a Service), c’est-à-dire la facturation à l’utilisation : une partie « fixe » (c’est-à-dire prédictible) fonction du temps d’utilisation des ressources réservées (CPU, RAM, disque, …) et une partie « variable » (dépendante de votre succès) en fonction du trafic (l’utilisation du réseau en quelque sorte). Et pour les systèmes payants (Windows, …) un surcoût (très raisonnable) est appliqué sur la partie « fixe » afin de compenser la licence. Certains packages systèmes/logiciels payants existent également avec leur tarification « fixe » associée.
Ces 2 composantes mises ensembles, cela vous permet par exemple de monter une plateforme pour une démonstration de 2 jours pour un coût dérisoire avec à disposition des ressources en termes de puissance (CPU, RAM, …) et de stockage de données quasi illimitées.
Quelle est la cible du Cloud Computing ?
Le Cloud Computing serait-il alors une énorme sandbox (bac à sable ou environnement de tests) réservée pour les POC (Proof Of Concept), pour les démonstrations en quelque sorte ? Bien sûr que non, ce serait du gâchis ! Cette offre s’adapte aussi très bien aux applications qui nécessitent de la scalabilité, et il y en a de plus en plus de nos jours :
· Les applications sociales que l’on trouve sur FaceBook, par exemple, et qui peuvent connaître un succès du jour au lendemain en profitant de phénomènes de viralité et voir leur fréquentation exploser.
· Les APIs montées elles mêmes sur un modèle économique de type SaaS et qui ne nécessitent de dépenser de l’argent pour leurs ressources qu’à partir du moment où des clients paient pour utiliser lesdites APIs.
· Finalement, le Cloud Computing propose également des possibilités variées comme Amazon avec ses AWS (Amazon Web Services) qui décompose son offre en plusieurs parties : EC2 (Elastic Compute Cloud) pour les instances de machines virtuelles, EBS (Elastic Block Store) pour le stockage de données persistantes avec de nombreux i/o (type données de bases de données), SQS (Simple Queue Service) pour la gestion de files de messages, SimpleDB pour un stockage de données simplifié sur un modèle non relationnel, CloudFront pour délivrer des contenus statiques (images, …) avec une distribution géographique (fonction de CDN (Content Delivery Network) comme Akamai, …), … et S3 (Simple Storage Service) spécialement mis en place pour le stockage de données à disposition d’Internet. S3 est tout à fait adapté à des sites de type contenu, collaboratif par exemple comme les blogs, … en offrant un volume de stockage quasi illimité. Et le trafic me direz-vous ? Libre à vous de gérer votre propre plateforme de cache en amont qui cache les informations les plus tendances et ne fait appel à S3 que pour charger les informations moins requêtées. Magique !
Avec un minimum d’infrastructure, il est possible de maintenir des sites grand format !
La mort de la virtualisation ?
Mais alors, la virtualisation que nous connaissons et qui ne date pas de si loin me direz-vous est-elle sur le déclin ? Hé bien non, car elle ne s’adresse pas à la même cible. Prenez l’exemple d’un SI, urbanisé avec son EAI, son ETL, sa gestion centralisée de l’authentification, … Trop complexe et de plus la scalabilité n’est pas de mise puisque le public cible des applications du SI est sensé être connu… Enfin… Si on a pensé à faire un cahier des charges et une matrice des flux échangés ! Mais cela est un autre sujet…
De plus, un des thèmes encore tabou du Cloud Computing est résumé simplement par « Mais où sont mes données ? », « Que se passe-t-il lorsque j’arrête le site, suis-je sûr que mes données sont effacées ? » et « D’autres que moi ont-ils un droit de regard sur mes informations ? ». A l’heure où même le secret bancaire vacille, il est juste de se poser la question. Actuellement, la réponse est loin d’être évidente et les règlements internationaux s’entremêlent. La confidentialité des données n’est, à mon avis, pas encore assurée et il faudra attendre un murissement certain avant de voir des zones de stockage régies par une charte internationale ou à la carte. En attendant, ce genre de préoccupation ne concerne pas la majeure partie des sites, loin de là.
Les différentes formules
Infrastructure
J’ai testé l’offre d’Amazon avec ses AWS. AWS propose la mise à disposition de machines virtuelles avec des spécifications techniques hard (CPU, RAM, architecture, …) sur lesquelles on sélectionne le système à charger parmi une liste. Ensuite, on peut se connecter en SSH à la machine et on l’administre à sa guise, en utilisant ou non les briques (EBS, SQS, …) mises à disposition.
Webapp
Le fonctionnement retenu par Google (Google App Engine), pour ne citer que lui, qui propose un environnement d’exécution pour vos applications web, à la contrainte près de l’utilisation de Python pour le développement des applications, de l’utilisation d’un modèle de stockage de données non relationnel (BigTable), du respect de contraintes de performances sur les temps de réponse et les volumes échangés, … Un environnement beaucoup plus structuré (et contraignant) qui est le pari de Google qui a misé sur la performance grâce à l’homogénéité et la simplicité. Il est à noter que pour intégrer des applications déjà développées, cela impliquerait une réécriture totale ou partielle de celles-ci… Google a choisi de se séparer des boulets « ressource-phages » du passé.
Autres
D’autres formules vont probablement faire leur apparition : on note par exemple Microsoft’s Azure Services Platform qui proposera une gamme de services étendue.
En conclusion
Le Cloud Computing est promis à un bel avenir. Il s’inscrit en effet dans la démarche en vogue de restructuration des infrastructures et de réduction des coûts. Il rejoint de plus le modèle économique SaaS par ce que l’on pourrait appeler le modèle Haas (Hardware as a Service). Ce modèle économique s’inscrit dans l’évolution naturelle des architectures vers les SOA (Services Oriented Architecture) et répond aux besoins des consommateurs.
Les services proposés par les sociétés de Cloud Computing seront probablement la clé de leur succès, des services comme, par exemple, FPS (Flexible Payments Service) de Amazon permettant via une API d’accéder à des fonctionnalités de paiement sécurisé. Lorsque les offres vont mûrir, des services orientés métier apparaîtront probablement, facilitant la mise en place de processus métiers.
Cela ne veut pas dire pour autant qu’il n’y aura plus besoin de réfléchir lors de la mise en place d’infrastructures et il y a maintenant 2 questions essentielles à se poser :
· Le Cloud Computing répond-il à mon besoin en particulier et apporte-t-il des avantages par rapport à une infrastructure virtualisée (ou non) interne ?
· Si oui, quelles sont les briques dont j’aurai besoin et comment les organiser ?
Le Cloud Computing décharge d’un certain nombre de contraintes logistiques, voire d’un nombre certain, mais il faut toujours une étape de conception rigoureuse et réfléchie de l’infrastructure.
Une description détaillée de la conception et de la mise en place de l’infrastructure sur AWS d’une application sociale à forte sollicitation fera l’objet de mes prochains posts.
Frédéric FAURE


Bonjour Frédéric,
Merci pour cet article. Je reviens un instant sur la sécurisation des données : Penses-tu qu’il est possible d’appliquer facilement une méthode de cryptage style BlowFish pour stocker des données sous forme cryptée sur le nuage et les décrypter à la volée lors de la lecture ?
ChrYStophe
C’est effectivement possible au niveau des AWS puisque tu as la main sur tes serveurs et ton infra dans la limite du cadre des AWS. Tu pourrais donc crypter tes données sensibles sur EC2 afin de les stocker sur EBS (ou S3) afin d’en limiter leur accès à la partie applicative seule qui aurait la clé. Attention cependant sur des applications traitant de gros volumes de données à ne crypter que les données sensibles afin d’éviter des pertes de performances et une surconsommation CPU. Il ne faut pas oublier non plus que si tu cryptes tes données, tu dois utiliser un algorithme réversible et comme son nom l’indique… C’est en tout cas un moyen d’éviter une lecture trop simple du contenu sensible que tu pourrais stocker. Maintenant, il faut voir avec les autres fournisseurs de Cloud Computing plus contraignants en termes de cadre technique comme Google. Je pense que le même principe est applicable : tu traites tes données au niveau applicatif et tu les injectes dans la base.
Salut,
Quand on cherche dans Google « Cloud Computing Windows », on tombe là-dessus : http://technet.microsoft.com/fr-fr/dd575618.aspx?wt.srch=1
A mon avis ils sont à côté de la plaque sur le sujet, ils parlent plutôt de Saas ici…
Est-ce que tu confirmes ?
ChrYStophe
Effectivement je résumerai la présentation par :
Hors Sujet : SaaS (SOA) != HaaS (Cloud Computing).
Le SaaS est le modèle économique basé sur les SOA (architecture orientée services) et qui permet de facturer le service à l’utilisation.
Le HaaS est le modèle économique basé sur la virtualisation des systèmes et qui permet de facturer les ressources hardware à l’utilisation. Le Cloud Computing est en fait un terme business et technique car englobant la notion de modèle économique et la notion de services techniques spécifiques de gestion des ressources « à la volée ».
Pour avoir une SOA efficace et scalable, il peut être intéressant de la bâtir sur une infrastructure de type Cloud Computing ou tout simplement virtualisée.
On a besoin de choux et de carottes pour faire une bonne soupe, mais c’est 2 légumes différents…