Figure incontournable du monde du NoSQL, Michaël a fait une présentation aux petits oignons, pas trop geek et plutôt assez pragmatique. Il y a ceux qui parlent Paas, Iaas et Saas à qui on a envie de dire assez, et il y a ceux qui parlent de vos vrais problèmes de « la vraie vie » et des solutions que le Cloud apporte. Ce matin, nous embarquons dans la deuxième chaloupe.
Il y a une évolution dans le monde de l’entreprise et dans la façon dont les architectures sont pensées. Ce mouvement qui vient des grandes entreprises du Web débarque maintenant dans le monde des entreprises classiques. Une nouvelle génération d’application émerge. Google par exemple a embauché des développeurs formés en Intelligence Artificielle. Car la clé désormais, ce n’est plus de stocker de la donnée, mais de savoir l’exploiter. Il y a de nouveaux comportements dans les réseaux sociaux, il y a beaucoup d’application de géolocalisation et donc de nouvelles possibilités. Le plus intéressant est de découvrir que de nouvelles technologies sont déjà là, et rendent tout ceci faisable. A la fin de la présentation, vous repartirez avec des noms de logiciels et de nouvelles idées.
La mobilité et l’internet mobile est aussi une réalité. Depuis 2008 il y a plus de personnes connectées sur Internet avec un smartphone qu’avec un ordinateur. Michaël présente l’application des Taxi G7 à Paris. L’utilisation de la géolocalisation et l’analyse de vos habitudes permettent au service de vous proposer le type de taxi adapté automatiquement. L’iPhone et Android rendent faciles ce qui n’était qu’un rêve il y a 5 ans.
Avez-vous remarqué que Facebook a ajouté la géolocalisation dans ses Smart-lists ? Vous pouvez ainsi envoyer un message aux personnes non plus dans votre espace social, mais dans le même espace géographique ! Désormais, la clé n’est pas de parler à un ami éloigné mais à votre voisin de table au restaurant. Techniquement, Apache Lucene propose d’intégrer des recherches géolocalisées. HTML5 permet aussi sur les derniers navigateurs d’utiliser les informations de géolocalisation.
Un autre aspect intéressant : le temps réel arrive dans les applications webs. Dans une application de gestion, nous ne sommes pas forcément habitué au temps réel. Pourtant ce serait un outil formidable pour le décisionnel. Michael présente l’exemple de Quora, site de questions et réponses, qui se met à jour en permanence et en temps réel. Imaginons l’application du temps réel dans le monde de l’entreprise, avec des dashboards interactifs par exemple. Après avoir présenté ces exemples, Michaël va nous expliquer comment cela fonctionne.
Il présente la recherche en continue sur Twitter. Il suffit de taper un mot clé, et de suivre la page web de Twitter. Celle-ci se met à jour automatiquement. Mais comment faire cela dans notre architecture d’entreprise ?
En pratique il y a plusieurs technologies, ElasticSearch permet par exemple de faire avec Percolator des recherches en temps réel. Le document devinent la requête.
Atmosphere est un framework Java simple qui permet de faire des interactions avec le client. Websocket du côté navigateur.
Il y a sinon des outils de Complex Event Processing comme Esper. Vous pouvez faire des requêtes en temps réel. Vous stockez des requêtes, vous faites passer un flux de données, et vous avez alors le résultat en temps réel.
L’intelligence est important pour une application. LinkedIn vous suggère par exemple automatiquement des personnes que vous connaissez certainement. Pour cela il se base sur votre graphe et sur vos recherches. Imaginez sur l’eXpress-Board, lorsque vous êtes recruteur, un système intelligent capable de vous proposer des profils de candidats similaires ? Moi je suis reparti avec cette idée grâce à Michaël.
Amazon propose depuis longtemps un moteur de recommandation, un des outils qui permet de vendre le plus de livres et de CDs aux visiteurs. Michaël cite le chiffre de +10% de CA supplémentaire, en poussant les utilisateurs à découvrir d’autres livres lors de la phase d’achat.
Alors comment rendre intelligent son application ? Apache Mahout est un moteur open-source capable d’apprendre en étudiant les comportements des visiteurs d’un site. C’est un système capable de proposer aux visiteurs des objets selon leurs achats, comme dans le cas d’Amazon. Michaël cite aussi le projet Neo4J, une base de données orientée graphe, très pratique pour modéliser un réseau social, calculer les chemins entre vos amis, et les amis de vos amis.
Autre sujet : User Experience
La meilleure des applications n’est rien sans une interface parfaite. Design agréable, mais ergonomie bien pensée.
Google+ les gens parlent beaucoup de l’animation, alors que le plus important c’est le backend.
Pour terminer, et pour montrer aussi le type d’application que nous utiliserons demain, Michaël parle du projet Google Flight. Il s’agit d’un portail de recherche des vols d’avions pour les USA. Allez tester l’ergonomie et la puissance de ce moteur, et imaginez la même chose dans quelques mois, dans votre S.I.
La présentation attaque ensuite une comparaison entre les architectures SOA aujourd’hui en entreprise, et les questions de scalabilité, d’évolution et d’entretien d’une application complexe. Comme Michaël le dit, aujourd’hui un projet dans une Banque parle avec 5 ou 6 autres projets. La difficulté est de penser évolution et organisation de ces services pour les années qui viennent.
Finalement ce que l’entreprise recherche c’est de l’élasticité, de l’automatisation et de l’abstraction/virtualisation. Tout d’abord de l’abstraction, afin que les infrastructures matérielles soient indépendantes des plateformes logicielles. On connait le succès de Java depuis 10 ans, qui permet de développer sur Pc et de mettre en production sur Solaris. On l’oublie un peu, mais c’est déjà bien pratique. Imaginons demain un S.I où la virtualisation est largement répandue. Cela offre de l’élasticité et permet de faire du capacity planning. Enfin cela permet aussi d’automatiser peut-être plus facilement des tâches répétitives.
Pourquoi ne pas imaginer non plus demain un mélange de Private et de Public Cloud ? En imaginant que les données sont sécurisées ? Cela permettrait à l’entreprise d’avoir une marge de sécurité à l’extérieur de son site. Cela serait aussi un bon point pour tout ce qui est reprise sur incident, et plan de récupération en cas de crashes.
Michaël cite l’exemple du Guardian, qui utilise une partie de Google App Engine et d’Amazon EC2, tout en conservant un SI interne important.
Le stockage des données ensuite est intéressant. Vaut-il mieux faire du relationnel systématiquement, et du non-relationnel exceptionnellement ou l’inverse ? Le souci c’est la scalabilité. Le non-relationnel coûte moins cher, et répond à beaucoup de besoins. Mais par contre, vouloir rendre scalable et en cluster une base relationnel est vraiment une dépense à peser avant d’engager des frais. Est-ce que la solution pour une partie de vos données ne passe pas par l’utilisation de ces fameuses bases NoSQL ?
Pour conclure Michaël nous rappelle aussi quelques principes simples du monde du Cloud. Pensez que votre application va planter, et pensez dès le départ à intégrer de la flexibilité, de l’asynchrone et des systèmes de reprise dans votre architecture. Avec Scala, et l’utilisation d’Akka, découpler des services devient un jeu d’enfant.
On attend maintenant du côté de Java EE 7 afin de voir ce que le prochain standard pourra nous proposer.
Merci à Michäel pour cette très bonne présentation.
Allez je file en salle suivante…
Les slides sont sur SlideShare
Merci pour ce post ! ptite faute: qui parle »nt » Paas 🙂