What’s Next – La Keynote d’Adrian Colyer

A l’occasion de la what’s next qui se tenait jeudi 26 et vendredi 27 mai au grand rex à paris, le CTO de springsource est venu nous présenter les nouveaux projets et l’actualité de l’éditeur. plus précisément adrian colyer a commencé par nous parler des nouveaux défis de l’informatique, avec la mobilité et le développement android, les réseaux sociaux, et le cloud. tous ces sujets correspondent aux nouveaux besoins identifiés par springsource. il faut désormais déployer nos applications sur tout type de plateforme allant du site web à l’application mobile native, en s’interfaçant avec des réseaux sociaux comme les api facebook connect et twitter par exemple.

Le développement mobile

android
SpringSource s’intéresse de près à l’essor d’Android et fournit des solutions pour faciliter le développement d’applications pour cette nouvelle plateforme.
Le projet Spring-Android fournit des templates de clients REST pour faciliter la consommation des services du Backend. Il s’agit donc d’une version optimisée du RestTemplate pour l’environnement Android. Ce template permet de configurer facilement HttpClient 4.X avec du Marshalling JSON, XML, ou RSS.
Le deuxième besoin adressé par spring-android concerne l’authentification à des services distants, pour utiliser par exemple l’API d’authentification Twitter, ainsi qu’un service d’authentification propriétaire. Spring-android-auth permet d’une part de persister les informations de connexion et de session dans la base SQLite embarquée par Android, et d’autre part d’établir des sessions web via l’implémentation du protocole OAuth 1 (pour Twitter) et 2 (pour Facebook).
Adrian Colyer nous a aussi parlé du développement de l’application d’exemple GreenHouse développée en open source pour démontrer les capacités des projets mobiles de l’éditeur et pour mettre en avant les bonnes pratiques en la matière. GreenHouse repose sur l’utilisation de spring-mobile, une extension de spring-mvc pour créer des interfaces web destinées aux SmartPhones, spring-social pour s’interfacer avec les réseaux sociaux, et spring-android pour l’application cliente Android.
À vrai dire tous ces projets existent déjà depuis 2010 et ne sont pas vraiment de grandes nouveautés, mais il est tout de même intéressant de noter l’orientation mobile prise par l’éditeur.

Les réseaux sociaux

Social-Spring
Après le nomadisme, Adrian Colyer a continué sa Keynote en nous parlant des nouveaux usages des réseaux sociaux et en mettant en avant le fait qu’aujourd’hui toutes les applications se doivent d’être connectées aux différents réseaux. SpringSocial fournit les templates nécessaires pour gérer l’authentification à différents réseaux sociaux et ajouter de nouveaux fournisseurs d’authentification, mais il permet aussi bien sûr d’en utiliser les API. Parmi les API supportées, j’ai retenu :

  • Facebook
  • Twitter
  • LinkedIn
  • GitHub

Tout comme le CTO de SpringSource, nous ne nous attarderons pas trop sur le sujet qui n’est finalement pas une nouveauté. Ce projet adresse principalement les développements grand public qui ne sont définitivement pas majoritaires dans notre industrie où l’application d’entreprise règne en maître. Adrian Colyer s’est permis un raccourci pour associer l’utilisation de ces services tiers aux nouvelles problématiques de stockage avec les NoSQL et big-data.

La persistance des données

nosql-databases
Les RDBMS n’ont plus l’exclusivité de la persistence des données et SpringSource en a bien conscience. Adrian Colyer nous a donc parlé du projet spring-data dont le but est de faciliter l’utilisation des nouveaux services de persistance comme les NoSQL de tous types. SpringData introduit de nouvelles annotations pour gérer le mapping des beans vers les bases non relationnelles. Elles permettent de gérer finement la configuration du stockage sur des systèmes distribués.
La librairie se découpe en plusieurs sous-projets :

  • mapping pour assurer le mapping des beans par des annotations unifiées pour les différents systèmes de données.
  • Blob pour les systèmes de stockage sous forme de Blob tel Amazon S3.
  • Column Store pour les NoSQL orientés colonne avec Cassandra et HBase.
  • Document Store pour les NoSQL orientés document avec un support pour MongoDB et CouchDB.
  • Graph pour les bases orientées graphe avec Neo4J.
  • Key value store, les bases orientées clé-valeurs, avec le support de Riak, Reddis et Membase.
  • Map-Reduce, pour simplifier des frameworks de MapReduce avec le support de Hadoop.

Voici donc une offrequi s’annonce largement étoffée par rapport aux templates déjà disponibles pour JDBC et JPA. Dommage que BigTable ne fasse pas partie du lot.

Le déploiement des applications

Le CTO de SpringSource nous a ensuite parlé de son nouveau cheval de bataille qu’est le déploiement. Rien de très étonnant avec la nouvelle mode DevOps et l’industrialisation des déploiements. Après les réseaux sociaux et leurs SAAS, il met en avant les architectures PAAS comme étant la solution d’avenir pour résoudre les problèmes de déploiement. Parmi les avantages du Platform As A Service, Adrian Colyer retient :

  • La rapidité des déploiements
  • Le coût de ce type d’hébergement
  • La scalabilité des services

Toutes ces facilités permettent de réduire le Time to market tout en augmentant la flexibilité métier. Le discours est assez convaincant. Adrian Colyer nous parle ensuite des différents modes de fonctionnement avec le cloud public, le cloud privé et les services mixant cloud privé et public. À partir de là, il nous parle de ce qu’il appelle le micro cloud. En réalité, il s’agit du déploiement d’une architecture PAAS en local sur la machine du développeur. L’avantage étant de tester les développements directement sur une architecture iso-production, pour éviter les fameux bugs de production par exemple.

CloudFoundry

cloud_foundry_logo-1

Nous abordons ici le gros sujet de la présentation en la personne de l’open PAAS (comprendre PAAS open source), avec le dernier né des services SpringSource CloudFoundry. Il s’agit d’un service monétisé de distribution et d’hébergement de type PAAS. Il permet d’obtenir son cloud privé ou public, seul le micro cloud est disponible gratuitement.

La solution fournit différents templates permettant d’intégrer des services applicatifs (frameworks de développement) et des services d’infrastructures (systèmes de gestion des données).
Le système supporte différents runtimes pour le développement:

  • Java
  • Ruby
  • NodeJS

Il est aussi possible de choisir parmi différents services d’environnement:

  • NoSQL(MongDB, Reddis) ou SQL (MySQL)
  • Bus de message (RabbitMQ)

La solution gère nativement la scalabilité horizontale en définissant le nombre d’instances à lancer et le load-balancing entre les différents frontaux.
Adrian Colyer nous fait ensuite une petite démonstration avec l’outil vmc qui permet d’administrer le cloud sans mal. Avec ce petit utilitaire en ligne de commande, on peut déployer son application à partir du répertoire projet. Parmi les fonctions de vmc on retrouve :

  • Déploiement de l’application
  • Définition du nombre d’instances lancées
  • Consultation de l’état des différents serveurs

L’outil possède sans doute d’autres fonctionnalités, mais elles ne faisaient pas partie de la démonstration. vmc semble vraiment facile à utiliser et permet manifestement de monter des architectures complexes très rapidement. Bien sûr ces affirmations sont à prendre avec des pincettes car nous sommes restés dans les clous d’une démonstration, sans aborder par exemple le problème de la configuration des middlewares ou des architectures un peu plus ésotériques. La solution suscite en tout cas l’intérêt et j’avoue avoir créé mon compte sur le site pendant la présentation.
Pour finir, Adrian Colyer nous parle d’une nouveauté dans la déclaration des beans Spring, qui permet de définir un profil correspondant à l’environnement de déploiement. Ainsi, les ressources d’environnement peuvent être directement déclarées dans la configuration Spring et s’adapter au profil en cours d’exécution. Par exemple cela permet de déclarer les datasources ou les URLs de connexion aux bus de messages.

Conclusion

Au final, il n’y a pas de grande révolution dans les annonces du CTO SpringSource. Le discours est resté très commercial, avec la mise en avant de toutes les solutions déjà au catalogue de l’éditeur. Il n’en est pas moins intérressant d’en tirer les axes de développement de SpringSource, à savoir les réseaux sociaux, le NoSQL et le PAAS. Parmi les termes revenus les plus souvent, nous retiendrons la scalabilité, les applications polyglottes, avec l’entrée de NodeJS sur le devant de la scène. Bref SpringSource, entré dans le giron de VMWare, mise l’essentiel pour ne pas dire tout sur son nouveau service CloudFoundry.

Billets sur le même thème :

2 commentaires

  • Je me lance dans le troll : si la démo (peut on parler de démo quand on expose des copies de la console dans des slides ?) t’a intéressé, essaie l’offre FREE de CloudBees et déploie ton appli sur RUN@Cloud (Tomcat6/MysqL) directement depuis ton intégration continue.
    Bon, je dis ça, je ne suis évidemment pas très objectif, mais je suis resté sur ma faim pendant cette « démo ». Je n’ai pas vu de plus-value flagrante dans l’offre CloudFondry, par rapport à l’existant. Quand au côté opensource, j’ai un peu du mal à comprendre ou se situe la limite open/propriétaire.
    J’attend surtout de voir si/comment SpringSource/VMWare compte participer au débat sur JavaEE 7 & le Cloud

Laisser un commentaire