Accueil Nos publications Blog Le cloud 3/3 – Ses limites et points faibles

Le cloud 3/3 – Ses limites et points faibles

Après avoir défini plus concrètement ce qu’est le Cloud Computing et avoir vu quels outils il propose aux développeurs, nous allons maintenant nous intéresser aux principales limites et faiblesses de cette technologie.

En effet, bien que de plus en plus présents dans nos vies de tous les jours qu’elles soient professionnelles ou personnelles, le Cloud n’est pas une solution miracle répondant à tous les besoins.

Cet article fait partie d’un triptyque sur le Cloud Computing :

  1. Le cloud 1/3 – Les concepts de base
  2. Le cloud 2/3 – Le Cloud pour les développeurs
  3. Le cloud 3/3 – Ses limites et points faibles

La bataille de la standardisation

A l’heure actuelle, le principal problème du Cloud est le manque de standardisation. En effet, de nombreux services utilisent des API propriétaires qui peuvent coupler une partie du code au service utilisé. De plus, plus l’application utilisera les services mis à disposition par le fournisseur de services, plus la probabilité qu’elle devienne complètement dépendante de celui-ci augmente.

Il est donc vital d’essayer de limiter au maximum cette dépendance et, si elle devient indispensable, de la contenir au maximum via une architecture adaptée.

Pour palier à ce problème des solutions multi-cloud commencent à se mettre en place mais restes jeunes. En outre, la prochaine version de JavaEE souhaite proposer une standardisation mais il est fort probable que son adoption ne se fasse pas avant plusieurs années.

Une approche saine est donc de miser sur des implémentations open source qui restent rare à l’heure actuelle mais qui ne manqueront pas de se développer dans les mois qui viennent avec l’offensive de Cloud Foundry.

La gestion des défaillances

La gestion des défaillances n’est pas un problème propre au Cloud mais il est important de garder à l’esprit que le Cloud n’est pas une technologie miraculeuse qui ne connait aucune faille.

Plus l’application s’étend sur de nombreux serveurs, plus la probabilité qu’au moins un d’entre eux soit défaillant à un instant T augmente et plus la probabilité qu’ils soient tous défaillants diminue.

Cependant, la panne d’Amazon en Avril dernier a montré qu’il était possible qu’une région entière soit impactée puisque tous les serveurs hébergés dans la région Est des Etats-Unis étaient devenus indisponibles et qu’une partie des données a même été perdue.

Il existe pourtant des moyens relativement simple de se prémunir de ce genre de pannes à grande échelle. En l’occurrence, il suffit de répartir ses serveurs dans toutes les régions du globe. A l’origine le système de régions était fait pour limiter la latence, mais avec les réseaux actuels il est moins gênant de se connecter à un serveur loin de sa zone géographique.

Une autre approche intéressante est celle de NetFlix qui utilise un “Chaos monkey”. Il s’agit d’un programme qui arrête volontairement et aléatoirement des serveurs pour tester la résistance de l’ensemble. Il s’agit d’une solution qui peut sembler extrême mais qui est très efficace et qui, je pense, va se généraliser avec la complexité croissante des applications hébergées dans le Cloud.

La gestion de la confidentialité

Le principal reproche fait au Cloud est la gestion des données. Toutes les entreprises ne sont pas prêtes à externaliser leurs données sur le serveur d’un tiers et, pour certaines, c’est même légalement impossible sans contraintes énormes (Confidentiel Defense, données médicales, etc.).

Il existe cependant des moyens de traiter ce problème :

  • La première préconisation est de se renseigner sur les conditions d’utilisation du service utilisé et de choisir un fournisseur de services adapté à ses besoins. Il est vrai que cela devrait être fait pour tous les logiciels, mais cela devient primordial dans le cas du Cloud.
  • La deuxième possibilité est de s’orienter vers le Cloud privé en mettant en place des logiciels open source ou propriétaires tels que Cloud Foundry. Cela permet de garantir le contrôle des données. Cependant, les principaux avantages du Cloud au niveau de l’architecture matérielle et de la réduction de coûts sont alors perdus bien que l’on garde tous les bénéfices de la scalabilité.

(Crédits : cloudfoundry.com)

  • Enfin, une autre alternative est d’utiliser des services permettant de se connecter à des Datasources hébergés dans l’entreprise : toute l’application se trouve alors dans le Cloud mis à part les données sensibles qui sont hébergées localement. Ce type de solution est disponible sur Google App Engine et sur Mule Ion par exemple.

(crédits : mule.org)

La gestion du offline

Le dernier gros point noir du Cloud est la gestion hors connexion. Si toutes les données et tous les services sont en ligne, que ce passe-t-il lorsqu’il n’y a plus d’accès à Internet (dans les transports, coupure réseau, déplacement à l’étranger, etc.)?

Pour palier à ce problème, de nombreuses solutions existent ou émergent afin de proposer une gestion en mode hors ligne. Elles s’appuient généralement sur HTML5 mais nécessitent donc un navigateur compatible.

Une autre approche est celle de Chrome OS : il s‘agit d’un OS où toutes les applications sont des sites webs en HTML/javascript et qui propose des API, là encore basées sur HTML5, pour pouvoir fonctionner en mode hors ligne.

Enfin la dernière approche est la réalisation d‘applications se connectant aux services en ligne et rapatriant les données. C’est souvent le cas pour les applications mobiles qui utilisent massivement le Cloud mais qui restent utilisable sans connexion.

Cependant tous les services ne sont pas accessibles de cette manière et cela demande des frais supplémentaires en cas de déploiement d’une nouvelle solution.

Conclusion finale

En conclusion, je dirai que le Cloud est définitivement une technologie qui va prendre de plus en plus d’importance dans notre manière d’appréhender l’informatique. Cependant, comme le soulignait Patrick lors de la conférence du Paris JUG, il s’agit d’une technologie qui est, en ce moment, au pic de son effet “buzz”. C’est une période très intéressante puisque beaucoup de choses sont en train ou vont arriver mais il s’agit également d’une période de chaos. Il est important de bien comprendre cet état des choses afin, non pas de mettre le Cloud de coté, mais de pouvoir commencer à l’utiliser avec prudence.

Il est également important de ne pas voir le Cloud comme une solution miracle qui permettra de réduire les coûts d’infrastructures à 0 tout en multipliant la productivité à l’infinie. Utilisé à bon escient, il est possible de déployer rapidement des projets à moindre coût mais cela impliquera des changements dans la manière de développer (tant au niveau de la méthodologie qu’au niveau de la conception et de l’architecture des applications qui devront s’adapter pour être extensibles).

Une autre interrogation reste au niveau des IDE en ligne que je vois difficilement remplacer les IDE classiques à moyen terme.