mer, 15/05/2013 - 10:07
Le cloud computing suscite aujourd’hui un très grand enthousiasme chez les éditeurs de logiciels, les constructeurs et les opérateurs téléphoniques. En effet, il ne se passe pas un jour sans qu'un article ou un produit sorte sous le nom de "cloud". Ce phénomène s’est d’ailleurs popularisé ces dernières années au niveau du grand public, en proposant des services de stockage (dropbox, google drive, skydrive), mail (gmail) ou photo (picasa web). Par Antoine Berthelin, Responsable du pôle java chez Soat.
Dans les entreprises également, les équipes commerciales se servent aujourd’hui du service cloud Salesforce, par exemple. Et les serveurs viennent à être hébergés de plus en plus souvent chez des fournisseurs cloud, comme OVH, Amazon ou Azure.
Passée la barrière idéologique, les avantages du cloud computing ne sont plus à démontrer : coût ridiculement bas, élasticité des ressources, mutualisation, support “24/24” dispensé par des “pros”, gestion des mises à jour, sécurité, facturation au robinet etc.
Aussi curieux que cela puisse paraître, les informaticiens utilisent encore aujourd’hui que très peu le cloud computing pour leurs besoins..
Mais les choses changent à grande vitesse, grâce à la multiplication des plateformes de développement et d'hébergement riches (que nous appelons PaaS - Plaform as a Service).
Une plateforme technique pour qui ?
Les solutions cloud computing sont souvent représentées en 3 catégories :
- SaaS (Software as a Service) : produit final accessible sous forme de services, le plus souvent dans le navigateur internet (exemples : gmail, dropbox ou salesforce)
- IaaS (Infrastructure as a Service) : mise à disposition de ressources machines, à la demande, permettant d’installer le système d’exploitation (par exemple : Linux ou Windows)
- PaaS (Platform as a Service) : mise à disposition d’un socle technique très riche, permettant aux informaticiens de sous-traiter au maximum cette partie, et de se concentrer le plus possible sur la partie spécifique de leurs applications.
Les clients de ces PaaS sont les informaticiens qui gèrent les serveurs, ou bien les développeurs qui cherchent un environnement de développement et de déploiement sur leurs technologies, dans le but de gagner du temps sans réinventer la roue.
Les ingrédients pour construire un logiciel
Les développeurs sont de très grands consommateurs de logiciels leur permettant de travailler en équipe et maîtriser leurs déploiements.
Pour que tout soit optimal, le développement d’une application web en java nécessite les outils suivants :
- un système d'hébergement de code (SVN, Git, ...)
- un service d'intégration continue permettant de construire l’application au fil des développements (Jenkins, Teamcity, Bamboo, Hudson)
- un service contrôlant le code en permanence pour détecter les dérives le plus tôt possible (Sonar)
- un dépôt pour héberger les composants logiciels (Artifactory, Nexus)
- un service pour gérer les tâches de développement (Jira, Mantis, Youtrack, Redmine)
- un service pour héberger les applications web ou d’entreprise, en intégration et en production (Tomcat, Jboss, Glassfish, etc)
- un service permettant de faire des tests de performance “grandeur nature”
- un service hébergeant toutes les instances de bases de données pour des besoins de production ou de tests (mysql, mongodb, orcale, SQL Serveur, postgreSQL, etc)
Installer, paramétrer, monitorer, gérer les mises à jours et les sauvegardes, ainsi que sécuriser tous ces services nécessite des compétences mais surtout du temps.
Du temps que l'on a en moins pour se consacrer à la création de “valeur”, à savoir livrer des fonctionnalités aux utilisateurs.
Il n’est pas rare dans une équipe de huit personnes d’avoir une personne à mi-temps, qui doive s’occuper de maintenir et d’améliorer les besoins en outils de l’équipe.
Pour répondre à ce besoin, Google a été le premier en 2008, à sortir une plateforme cloud avec google App Engine, qui a été suivi par de nombreux PaaS (Cloudbees, Azure, Heroku, Openshift, Cloudfoundry, etc).
Certains PaaS vont encore plus loin, comme la société Cloudbees qui offre aux informaticiens une plateforme sur mesure, couvrant entièrement le cycle de vie d’une application :
- Hébergement du code (Git et SVN)
- Service d’intégration continue permettant de construire l’application et de la déployer (Jenkins)
- Base de données (Mysql, Mongodb)
- Serveur d’applications (Jboss, Tomcat)
- Monitoring (New Relic)
- etc
Ces services peuvent être activés gratuitement en 5 minutes. Ceci permet aux développeurs d'être opérationnels immédiatement, avec un coût très faible comparé au coût habituel constaté, ainsi que d’avoir une qualité et une réactivité largement supérieures.
Pour le développeur que je suis, le cloud PaaS Cloudbees apporte aujourd’hui un service que j'attendais depuis longtemps : pouvoir me concentrer uniquement sur mon code, et donc sur la création de “valeur” que j'apporte aux utilisateurs, en sous-traitant mes besoins en logiciel “standard”.
La valeur ajoutée d’une application est sa capacité à intégrer d’autres logiciels
La plupart des applications qui sont conçues ont des socles communs, tels que :
- Envoi de mails
- Gestion de l’authentification
- Sécurisation des mots de passe
- Recherche “full text” (à la google) (Solr, Elasticsearch)
- Remontée d’alertes lorsque l’application a un comportement inhabituel
- Monitoring et stratégie de “pansements automatiques” (changement de matériel “à chaud” ; augmentation ou diminution des ressources réservées aux services, en fonction des sollicitations)
- Mise à jour d’applications sans perturbations, et avec basculement automatique sur de nouveaux serveurs
- etc
Pour une grande majorité des cas, deux choix se présentent à nous lors de la conception d’un logiciel : développer le service en question ou intégrer un service déjà existant dans l’application.
La communauté open source met à disposition gratuitement – sous réserve de respecter la licence – beaucoup de services, qui couvrent une grande partie des besoins génériques.
Cependant, il arrive parfois que cette option ne soit pas toujours la plus efficace. En effet :
- Un outil peut être trop difficile à installer et à intégrer
- Lire la documentation d’installation ou faire les mises à jour d’un produit n’est pas toujours simple
- Demander l’autorisation à son entreprise d’utiliser un nouveau produit, pour un besoin infime à l’échelle de l’entreprise, relève souvent du parcours du combattant
- etc
Pour surmonter ces difficultés, les éditeurs de technologies vendent du support, mais à des coûts relativement élevés.
Pour palier à cela, les offres PaaS offrent de nouvelles possibilités beaucoup plus flexibles, levant un à un les obstacles cités plus haut.
Les développeurs peuvent alors utiliser facilement des outils plus adaptés pour répondre à un besoin, et ainsi libérer leur créativité.
Les PaaS sont des mines d’or technologiques, simplement accessibles
Un PaaS... c’est un peu la caverne d’Ali Baba des développeurs.
Effectivement, construire un logiciel dans un PaaS offre tous les services à portée de clic (ou d’API), et de carte bleue.
La grande majorité des services technologiques standards et populaires sont déjà installés, configurés, supportés, documentés et mis à jour.
Pourquoi ?
Car les éditeurs de PaaS se sont entourés de partenaires technologiques en travaillant “main dans la main” avec eux. Le but était de fournir aux utilisateurs une intégration très simple et avec une facture unique, ceci en sous-louant les services à des prix imbattables.
Ainsi, un logiciel créé dans un PaaS profite de cet écosystème pour intégrer, par exemple, une base de données noSQL en quelques minutes, chose qui effrayait la DSI jusqu’à présent.
Pourquoi les DSI ont-elles peur des nouvelles technologies ?
Nouvelles bases de données pour gérer les données (Cassandra, MongoDB, etc), nouveaux frameworks web (play!, Ruby On Rails, Grails, node.js, etc), … les DSI ont peur de mettre en place de nouvelles technologies, même si celles-ci peuvent être plus adaptées à leurs besoins !
Pour les DSI, outre le fait de devoir former les équipes en place, ou recruter de nouvelles compétences, ces services doivent être aussi maîtrisés une fois en production. Il faut donc savoir installer, configurer, monitorer et sauvegarder les données associées, tandis que des bases de données comme Oracle, ou des serveurs comme WebLogic, sont maîtrisés depuis très longtemps et ont fait leurs preuves.
Mais avec les solutions PaaS, les serveurs hébergeant une base de données MongoDB sont directement gérés et maintenus par l’éditeur lui-même, dans le cloud, offrant une fiabilité qu’il sera difficile d’égaler sur des serveurs “maison”.
Moins cher sur le cloud ?
Oui... et la raison est simple : il est très facile pour un éditeur de technologie de supporter des services dans un environnement qu’il gère directement :
- il maîtrise les montées de versions (s’épargnant le support d’un nombre incalculable de versions)
- il connaît l'environnement : ce sont ses serveurs, donc il les a choisis et configurés en fonction des contraintes de la technologie
- il peut mutualiser les ressources machines : si le service n’est pas utilisé par un client, il peut vendre les ressources à quelqu’un d’autre
- il a accès aux serveurs pour analyser les problèmes (effectuer un dépannage sans avoir accès au serveur revient à travailler à l’aveugle, impliquant souvent un résultat mauvais)
- il peut anticiper les pannes en surveillant le service
- il peut analyser finement l’utilisation de son service et ainsi améliorer son produit
Les éditeurs de technologie ont donc un intérêt particulier à vous faire utiliser leurs services du cloud PaaS.
Comment choisir son PaaS ?
Ce choix dépend souvent de la technologie utilisée par les applications même si la majorité des fournisseurs sont multi-language.
Par exemple, le PaaS CloudBees offre un très bon support pour la technologie Java, Heroku est pertinent sur le framework web Ruby on Rails, et Windows Azure sur les technologies .net.
Donc le meilleur choix est souvent de choisir un “spécialiste” de la technologie.x
Mais, l’écosystème du PaaS est lui aussi déterminant. Un PaaS, qui fonctionne sur le IaaS Amazon EC2, offre aujourd’hui la garantie d’avoir un écosystème riche et performant.
La majorité des éditeurs technologiques ont investi massivement sur Amazon EC2, qui règne sans partage sur les IaaS commerciaux.
Certains PaaS, comme cloudfoundry, permettent de construire sa plateforme sur des machines “maison”. Cela peut être une bonne alternative pour les entreprises ayant déjà investi lourdement dans des serveurs avec des équipes en place, ou sur des données hautement sensibles.
En revanche, ce choix se fait au détriment de l’écosystème, de l’élasticité, de la réactivité, etc.
Comment se lancer dans un cloud PaaS ?
Les fournisseurs de PaaS les plus populaires ont tous un point commun : leurs services sont gratuits. Ces offres “free” contiennent souvent des ressources limitées ou des services bridés.
Allez y, c’est simple, documenté et gratuit !
Des sociétés de conseil sont spécialisées dans le cloud comme Soat, Zenika, Xébia ou Sfeir. Pour un gain de temps, et également mettre à profit leur expertise et leurs retours d'expériences, elles peuvent accompagner les entreprises afin d’accélérer les migrations et configurer les PaaS en fonction des besoins spécifiques.
Les bonnes pratiques
Y aller c’est bien, mais pouvoir en sortir c’est mieux !
Avant d'externaliser ses services informatiques ou son infrastructure, il faut toujours faire attention à ne pas trop dépendre d’une entreprise tierce.
La question à se poser est : que se passe t-il le jour où le fournisseur dépose le bilan ou que le service doit “revenir à la maison” ?
Ce qui fonctionne sur le cloud fonctionnera dans la majorité des cas ailleurs.
Pour cela, les services utilisés doivent être standards et disponibles sous forme de licence (libre ou pas). De plus, il faudra prévoir quelques semaines/mois de travail pour refaire à l’identique des hébergeurs cloud ont fait, et vérifier un à un les points d'adhérences entre les services utilisés et le PaaS.
Et la sécurité dans tout cela ?
En fonction des besoins, un cloud privé peut être une solution qui isolera complètement le réseau. Si besoin, un tunnel sécurisé peut être installé entre le fournisseur cloud et les locaux de l’entreprise, moyennant un coût supplémentaire.
Attention aux idées préconçues telles que “le cloud c’est bien et si je suis attaqué chez moi, je peux toujours débrancher la prise de toute façon”. Cela paraît rassurant, mais dans la réalité les pirates ont, la plupart du temps, déjà les données quand l’attaque est constatée.
Ceci est à l’image de la catastrophe industrielle qu’a connu Sony, en 2011, sur son PlayStation Network, en se faisant voler tous les numéros de carte bleue. En informatique, quand on détecte une faille de sécurité, il est bien souvent trop tard...
Le risque zéro n’existe pas, même si les professionnels de la sécurité cherchent à l'atteindre. Il faut bien avoir en tête que les meilleurs d’entre eux sont en majorité chez les hébergeurs cloud.
D’autre part, il est préférable de se faire accompagner par des prestataires dédiés lorsqu’il s’agit de certains domaines spécifiques comme les données médicales, le “confidentiel Défense”, le bancaire, etc.
Le juridique ?
Le recours à des fournisseurs cloud pose de nouvelles problématiques juridiques. Il faut donc vérifier si le droit applicable et la juridiction compétente sont compatibles avec son activité.
Par exemple, certaines données ne doivent pas être stockées à l'extérieur de l’Europe.
Le support d’un service juridique spécialisé pourra répondre aux différentes contraintes qui ne sont pas insurmontables dans la grande majorité des cas.
Alors convaincu ?
Choisir le cloud, c'est aussi confier à une société tierce toutes nos données. Nous sommes donc méfiants ... très méfiants : instinctivement nous préférons avoir notre bien le plus précieux à côté de nous.
Cela provient de nos arrières grands-parents : ils avaient la même crainte concernant leur argent. Ils préféraient mettre leurs Louis d'or sous leurs matelas plutôt que de les confier aux banquiers qui les transformaient en argent "virtuel", le Franc.
Après quelques générations, on s’est rendu compte que l’argent est beaucoup plus en sécurité dans le coffre de la banque, disponible avec une carte bleue, que dans un coffre personnel.
En fait, notre argent est depuis déjà bien longtemps dans le nuage informatique, avec les services associés comme la carte bleue ou les transferts automatiques. Et pourtant, nous avons aujourd'hui plus de difficultés à confier des services informatiques que de l’argent.
Une autre question peut se poser : les technologies autour du cloud sont-elles matures pour une utilisation massive, ou est-il préférable d’attendre qu’elles soient éprouvées pour les utiliser ? Oui, et non… Non au niveau maturité, dans le sens où une nouvelle technologie arrive sur ce marché tous les six mois, et que ce n’est pas encore standardisé. Oui, si l’on prend exemple sur le site de commerce en ligne Amazon, qui utilise son propre cloud depuis plus de 10 ans, et nous propose aujourd’hui son expertise sous forme de service.
La vraie réponse est donc que si l’on dispose du bon fournisseur de cloud, ce sera toujours plus adapté qu’un serveur poussiéreux, traînant dans un coin, avec une climatisation qui tombe en panne tous les deux mois.
Il faudra peut être attendre une génération pour les technologies du cloud soient adoptées naturellement, comme l’est la banque. En attendant, il faudra tout de même se méfier du concurrent qui utilisera le cloud en réduisant drastiquement ses coûts.
Les technologies autour du cloud vont permettre à de nouvelles sociétés de concurrencer bon nombre d’acteurs étant déjà dans la course, car le ticket d’entrée pour créer de la valeur est devenu très faible.
Dans ce monde en mutation, les nouveaux acteurs seront ceux qui auront la capacité de s'approprier ces nouvelles technologies.
Antoine Berthelin, Responsable du pôle java chez Soat
A propos de l'auteur