Cloud Computing : où en est-on ?
En quelques mois, le Cloud Computing a bel et bien dépassé l’état de simple « buzz » marketing pour devenir une véritable révolution informatique. En effet, tous les grands acteurs du monde informatique proposent aujourd’hui leurs solutions « dans les nuages » permettant aux entreprises d’externaliser leurs systèmes informatiques à des fournisseurs spécialisés : Google, Amazon, VMware, Microsoft, SalesForce, IBM…
Dans la lignée du dossier proposé par 01 Informatique, il est donc intéressant de dresser un petit point sur quelques aspects du Cloud Computing.
Sur la maturité des développeurs et architectes Cloud
Les composants des applications Cloud restent dans l’ensemble similaires à ceux des applications Web traditionnelles : les développeurs techniques peuvent donc généralement monter en compétences rapidement sur les solutions PaaS. Cet aspect est renforcé par le fait que les plateformes Cloud proposent des services techniques classiques : persistance des données, hébergement de l’application, authentification et droits des utilisateurs, intégration…
Le manque de recul concerne en général davantage l’intégration d’une application Cloud dans le SI : par exemple, c’est une chose d’envisager l’externalisation d’une application, mais il faut également être prêt à externaliser ses données. En pratique, c’est plus facile à envisager pour des services annexes ou transverses que pour des services au cœur du métier de l’entreprise. Sans oublier les aspects juridiques largement évoqués dans la presse spécialisée…
Sur les difficultés de mise en œuvre
Développement
Cela varie en fonction des solutions. La solution PaaS de Google, App Engine, par exemple, nous affranchit de nombreuses difficultés côté environnements de développement et déploiement puisqu’on utilise Eclipse et des plugins qui permettent de créer des projets et de les déployer dans l’environnement de test local ou dans les nuages en quelques clics. Par contre, l’environnement de test local est très différent de l’environnement de production, ce qui ne facilite pas les tests et la détection de problèmes en amont.
Et surtout, cette solution implique des changements dans la façon de concevoir l’architecture des applications : par exemple, le datastore nécessite d’implémenter les relations entre les objets et les transactions différemment de nos applications relationnelles traditionnelles. Sans oublier les restrictions sur l’utilisation des ressources : délai maximal de 30 secondes par traitement, récupération d’au plus 1000 entrées par requête dans le datastore…
L’offre IaaS d’Amazon, EC2, à l’inverse, permet la mise en œuvre d’architectures plus classiques mais requiert la manipulation de machines virtuelles sur lesquelles sont déployées les applications.
D’où l’intérêt de surveiller le nouvel arrivant dans la course, Cloud Foundry, de Spring (récemment acquis par VMware). Cette offre PaaS, reposant à l’heure actuelle sur Amazon EC2, se veut justement rendre transparente la manipulation des machines virtuelles tout en permettant des développement plus traditionnels que ceux imposés par Google App Engine.
Entre les différentes solutions, IaaS ou PaaS, le match ne fait donc que commencer. Et le manque de portabilité entre elles ne va pas faciliter le combat !
Exploitation
Le dimensionnement est le premier problème majeur. Derrière l’image de l’opérateur de service à qui on confie l’hébergement de l’application avec la garantie du bon fonctionnement même quand d’importantes montées en charge sont nécessaires, on occulte souvent la nécessité – et la difficulté – de déterminer précisément la quantité de ressources dont on a besoin : en termes de requêtes HTTP entrantes ou sortantes, requêtes en base de données, accès au cache, etc. L’estimation de ces métriques n’est pas simple et ne doit pas être négligée : on délègue certaines tâches d’exploitation, mais celle-ci reste à notre charge.
La seconde problématique majeure (et inhérente) est la tarification : de simples tableaux associant des coûts à des quantités de ressources nous sont présentés mais comment les exploiter si on n’est pas en mesure de dimensionner nos besoins ?
Sur le Cloud et son écosystème
Emergence du Cloud Computing
Deux types d’applications ont largement contribué à l’émergence du Cloud Computing : d’abord les RIA (Rich Internet Applications), applications client/serveur sans déploiement sur les postes client et aux interfaces utilisateurs ergonomiques. Puis les applications Mobiles, sur des appareils comme iPhone ou Android. Le succès de l’App Store d’Apple, impressionnant et grandissant encore, ouvre la voie à des applications utilisées par des dizaines ou centaines de milliers d’utilisateurs à travers le monde, il est donc intéressant de pouvoir bénéficier d’hébergements scalables à moindre coût pour les services métier.
Cloud Computing et SOA
A l’instar de cette excellente image humoristique, j’ai lu plusieurs fois que « le Cloud avait remplacé SOA ». Au niveau marketing, peut-être… Mais aux niveaux opérationnel et technique, le Cloud ne remplace pas SOA, il peut au contraire reposer sur la collaboration entre applications et services.
