Deux approches Cloud (parmi d’autres)
DevoxxFr a été l’occasion d’une revue très large des technologies en connexion avec les sujets chauds du moment : le Mobile, les frameworks de haute productivité (Grails et Play par notamment), le futur de Java, les langages de la JVM présents et à venir (Scala, Groovy, Ceylon), le NoSQL, et bien entendu le CLOUD !
A ce titre, je reviendrais sur deux présentations qui montrent la diversité des solutions proposées quand on se penche sur les offres PAAS (Platform As A Service) :
- Un retour d’expérience sur Google App Engine , par Didier Girard et Ludovic Champenois, mettant en avant la richesse de la solution, qui regroupe toutes les briques techniques susceptibles d’être exploitées ;
- Une approche composite, menée par Cyrille Leclerc, qui s’est attaché à construire une application en choisissant un fournisseur différent pour chacun des aspect techniques (Base de données, moteur Web, Analyse de logs, ressources statiques, emails ).
Google app engine
L’approche Google a les avantages d’une solution entièrement propriétaire :
- Tous les éléments sont réunis dans une plateforme (Mail, données, Moteur de servlet ).
- Les outils de développements (sous eclipse) sont matures, vraiment opérationnels (de ma propre expérience) et demandent peu ou pas de configuration,
- Les performances sont au rendez-vous, puisque les briques techniques sont optimisées entre elles (et qu’elles bénéficient du savoir-faire de Google en la matière qui n’est plus à démontrer). On peut même dire que, en respectant les bonnes pratiques (en utilisant autant que possible le cache par exemple), les temps de réponse sont excellents.
- Une obligation de se conformer à des standards spécifiques (notamment sur la persistance et le format BigTable de Google), avec des efforts notables d’abstraction vers des standards (JPA, JSR Cache).
- Un seul fournisseur chez qui déployer son application ‘cloudisée’, par opposition à ce que VM Ware promeut au travers de cloud foundry.
- Au global, une possibilité de se désengager peu aisée, notamment si la politique de tarif devait évoluer (ce sont des choses qui sont impérativement à envisager sur le long terme) ou bien si la structure du DataStore change.
- La latence du réseau entre le serveur et la base de données (on les colocalisera, plutôt que d’avoir un serveur en Europe et une base de données aux Etats-Unis),
- Le droit sous lequel les données sont stockées selon leur sensibilité (Cloud Français ; Cloud américain),
- La gestion du cycle de vie des données (et les fonctionnalités d’export, pour des traitements BI dans ses infrastructures, par exemple),
- La sécurité : ces offres sont forcément moins protégées que les DMZ personnalisées, et à chaque maillon de la solution cette question doit être posée,
- De même pour les SLA (niveaux de service) : notre solution doit être résiliente, et supporter toutes les défaillances potentielles des chacun des différents fournisseurs,
- Enfin, et non le moindre : la politique tarifaire ; les offres non bornées peuvent présenter des risques important lors de l’explosion de la charge de l’application.
- Database As A Service : Mongo HQ par exemple, avec des offres complémentaires de sauvegarde,
- Stockage de fichiers : Amazon Web Service AWS S3 ou Microsoft Azure,
- Search as a service :Solr avec WebSolr.
- E-mail as a service : SendGrid , CritSend,
- Monitorig as a service : AppDynamics
Et les inconvénients qui viennent avec :
J’ai pu noter que, depuis mes premiers tests en 2009, cette plateforme avait évolué vers une solution vraiment complète et industrialisable; Par exemple les exécuteurs sont déclinés en ‘Front’ (traitant les requêtes Web) et ‘Back’ (qui peuvent supporter les traitements asynchrones, batch, plus gourmands en performance), avec la possibilité d’exporter les données.
Un cloud composite
Les offres sur le cloud sont pléthoriques et des offres dédiées pour chaque composant technique d’une application permettent d’envisager une construction sur-mesure.
En partant des plateformes comme Heroku, Cloudbees, CloudFoundry et en se penchant sur les extensions possibles, on s’ouvre à des combinaisons très nombreuses ; On aura cependant à l’esprit des aspects structurants pour la bonne tenue de l’application en production et leur maîtrise à l’heure de faire le choix d’architecture:
Sans décliner chacune des solutions techniques, on peut observer que les éléments suivants sont bien couverts par les offres cloud :
Les projections de coûts d’utilisation sont vraiment bas, et servent notamment les petites structures ou celles qui démarrent, qui n’ont pas forcément à se poser la question de créer leur propre salle blanche et établir une équipe d’industrialisation. Attention cependant aux coûts cachés: la rareté des compétences, la maîtrise des données…
Pour nos clients qui cherchent à mettre sur pied une application à forte volumétrie, sans forte pérennité (une campagne de publicité, une enquête à large spectre), ces approches semblent particulièrement appropriées et immédiatement disponilbes.









