La pyramide du "Cloud Computing"
Cet article a été publié initialement sur mon ancien blog, qui était hébergé par blogspot.com.
J’ai revu légèrement ma première définition du "Cloud Computing" comme suit :
Le "Cloud Computing" est un méga ordinateur "scalable et élastique", pour lequel l’utilisateur ne paie que ce qu’il consomme. Cet "ordinateur virtuel" héberge des services (software, hardware ou middleware) accessible depuis l’internet de manière publique ou privée.
Cette définition est générale et permet d’englober tous les types de services : software (SaaS), hardware (IaaS) ou middleware (PaaS) offerts par les acteurs du marché du "Cloud Computing". Afin de faciliter la comparaison entre les différentes solutions du "Cloud Computing", certains spécialistes [E_08, L_08, S_08] les ont hiérarchisées en trois catégories. Michael Sheehan [S_08] les présente sous forme d’une pyramide. Selon lui, cette pyramide pourrait être inversée, si elle était basée sur le nombre de services offert par catégorie, mais elle est ainsi afin de montrer une hiérarchie de services qui pourraient être interdépendant. À l’heure actuelle, une application de bureautique "SaaS" comme celle offerte par ZoHo n’est pas dépendante d’une solution de type "IaaS" comme EC2 d’Amazon. À terme ça pourrait changer, ainsi certaines applications "SaaS" seront hébergées sur des "IaaS" ou des "PaaS".
Je vais ci-dessous définir les trois couches : "Cloud Infrastructure", "Cloud Platform" et "Cloud Application" de la pyramide du "Cloud Computing". Je vais aussi donner des avantages et inconvénients (n’hésitez pas à poster un commentaire) pour chacune d’elles. Dans les prochaines semaines, je vais essayer de présenter des solutions du marché qui pourront être utilisées dans le cadre de mémoire : "Mise en place d’un site type Web 2.0 sur un Cloud". En attendant, je vais juste lister quelques solutions par catégorie (à nouveau n’hésitez pas à poster un commentaire pour me suggérer une solution. De plus je cherche des solutions Européennes.).
"Cloud Infrastructure"
Cette catégorie à la base de la pyramide du "Cloud Computing" regroupe les solutions qui permettent aux développeurs et aux ingénieurs système d’administrer et d’exploiter un "data centre" virtuel hébergé sur le "Cloud". Les solutions de type "Cloud Infrastructure" laissent aux spécialistes une grande liberté pour contrôler et paramétrer ces infrastructures informatiques (système) selon leurs besoins. Les solutions offertes dans cette couche sont souvent aussi appelées solution "IaaS". Dans cette catégorie sont regroupés aussi bien des solutions de stockage de données que les solutions d’hébergement de serveurs (virtuel).
L’avantage principal, offert par les solutions de type "Cloud Infrastructure", est un contrôle complet des infrastructures utilisées. Les inconvénients sont plus nombreux pour le moment. Ces solutions nécessitent plus de travail et d’expertise pour leur mise en œuvre comparé aux solutions des couches supérieures de la pyramide du "Cloud Computing". Ces solutions nécessitent aussi souvent un programme tiers pour mettre en œuvre les mécanismes de "scalabilité". De plus, les solutions de type "Cloud Infrastructure" fonctionnent généralement avec un mécanisme de multiplication d’instances (clonage de machines virtuelles), ce qui nécessite la mise en place d’un répartisseur de charge (load balancing) et impose certaines contraintes architecturales pour le développement d’application. Le dernier inconvénient est lié aux coûts cachés. Le cout des licences des systèmes d’exploitation et des programmes exécutés sur ces machines virtuelles peut être élevé, car les licences sont souvent facturées au processeur et non selon le modèle économique "pay as you go" processeur / temps.
- Amazon EC2 : http://aws.amazon.com/ec2/
- Amazon S3 : http://aws.amazon.com/s3/
- ElasticHosts : http://www.elastichosts.com/
- GoGrid : http://www.gogrid.com/
- Rackspace Cloud : http://www.rackspacecloud.com/
- RightScale : http://www.rightscale.com/
- Skytap : http://www.skytap.com/
"Cloud Platform"
Cette catégorie de la pyramide du "Cloud Computing" permet aux développeurs de déployer leurs applications sans se soucier des contraintes système, ainsi que de s’affranchir des problèmes de scalabilté et d’élasticité. Les solutions offertes dans cette couche sont souvent aussi appelées solution "PaaS". Dans cette solution sont regroupés aussi bien des solutions qui permettent d’héberger des applications clé en main, que des solutions de middleware.
Les avantages principaux des solutions de type "Cloud Platform" sont une simplification des développements pour les applications de type "Cloud" et un affranchissement des contraintes système, de scalabilté et d’élasticité. Les inconvénients sont liés au choix de la plate-forme qui est souvent une solution fermée (propriétaire) avec ses propres contraintes. Le choix du ou des langages de programmation est limité. De plus les prestataires de services qui offrent des solutions de "PaaS" imposent souvent des règles contraignantes pour le développeur. Par exemple Google App Engine impose sa propre base de données "BigTable"
- Appistry
- AppScale
- Azure
- Engine Yard : http://www.engineyard.com/
- Force.com : http://www.salesforce.com/platform/
- GigaSpaces : http://www.gigaspaces.com/
- Google App Engine
- Heroku : http://heroku.com/
- VMware vSphere 4
- Xen Cloud Platform
"Cloud Application"
Cette catégorie au sommet de la pyramide du "Cloud Computing" regroupe toutes les applications (webmail, suite de bureautique en ligne, CRM, ERP, etc.) hébergées sur l’internet, capable de gérer un grand nombre d’utilisateurs simultanément et pour lesquelles le client ne se soucie pas d’où elles sont hébergées et comment elles fonctionnent. Ces solutions sont développées pour répondre aux besoins de l’utilisateur final et elles offrent que peu de possibilités de paramétrisation. Les solutions offertes dans cette couche sont souvent aussi appelées solution "SaaS". Les solutions regroupées dans la catégorie "Cloud Application" permettent de répondre à un besoin spécifique du client comme la gestion de ses clients, la messagerie ou la bureautique.
Les avantages principaux des solutions de type "Cloud Application" sont un accès direct à l’application depuis n’importe où dans le monde, une simplicité d’utilisation, une mise en œuvre de solutions éprouvées. Un autre avantage des solutions de type "SaaS" c’est qu’elles sont parfois gratuite et mettent en ouvre le modèle économique freemium (modèle économique qui consiste à offrir un service de base gratuitement et à faire payer les services supplémentaires). L’inconvénient majeur est lié aux fonctionnalités souvent limitées de l’application. Ces solutions ne permettent généralement pas d’être adaptées pour répondre à des besoins spécifiques.
Beaucoup de ces solutions ne font qu’employer le terme "Cloud Computing" pour surfer sur la vague marketing associé à ce nouveau concpet.
- Google Apps : http://www.google.com/a/
- Google Docs : http://docs.google.com/
- iWork.com : http://www.iwork.com/
- Salesforce.com : http://www.salesforce.com/
- ZoHo : http://www.zoho.com/
- 24SevenOffice : http://www.24sevenoffice.com/
[E_08] Thorsten von Eicken, The Three Levels of Cloud Computing, http://virtualization.sys-con.com/node/581961, publié le 31/07/2008, consulté le 13/12/2009
[L_08] Peter Laird, Visual Map of the Cloud Computing/Saas/PaaS Markets, http://peterlaird.blogspot.com/2008/09/visual-map-of-cloud-computingsaaspaas.html, publié le 8/09/2008, consulté le 4/07/2009
[S_08] Michael Sheehan, Introducing the Cloud Pyramid, http://cloudcomputing.sys-con.com/node/609938, publié le 21/08/2009, consulté le 10/01/2009