Revue de Presse Xebia

Revue de Presse Xebia

La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia.

Actualité éditeurs / SSII

Le coin de la technique

Actualité éditeurs / SSII

Cloud: Jboss AS7 se déploie sur OpenShift, OpenStack se dévoile dans un guide

Le Cloud, on en entend beaucoup parler mais peu le voient vraiment arriver dans leur travail de tous les jours. Pourtant, les choses avancent vite.

OpenShift : du coté de Redhat/JBoss tout d’abord, qui a annoncé cette semaine la disponibilité de JBoss AS 7 sur leur Cloud. Tournant sur OpenShift (le Paas à la RedHat) lui même tournant sur CloudForm (Iaas), l’offre est ainsi la 1ere offre compatible JEE6 out of the box. Il est intéressant de noter qu’elle permet apparemment le déploiement d’un nombre illimité d’applications sur AS 7, et ce gratuitement, en utilisant l’offre OpenShift Express. A nous la puissance du standard web profile (voire plus) ! Et pour simplifier l’approche, l’annonce pointe d’ailleurs vers des vidéos montrant la facilité du processus de déploiement d’applications JEE6: on a presque l’impression qu’un simple git push suffit ! Une autre vidéo montre comment déployer la « Spring Pet Clinic ».

OpenStack: Mais comme toute nouvelle techno émergente, il n’y a pas un seul standard. Ubuntu, Intel, Dell et de nombreuses autres entreprises, de leur coté, développent l’OpenStack qui se définit comme un Operating System pour le Cloud, lorgnant donc du coté de l’Iaas. Si le projet existe depuis quelques temps déjà (il avait été lancé par Rackspace et la NASA il y a un an), la sortie du guide « Openstack Beginner Guide for Ubuntu Natty » est l’occasion d’en parler. Annoncé ici et disponible en PDF, le guide vous permettra d’avoir une première approche de la stack en vous lançant dans les configurations réseau, déploiements d’images et autres barbarismes en ligne de commande. Comment ça, ça n’est pas du Java et ne vous concerne pas ? Vos projets futurs risquent pourtant fort de tourner sur ces infrastructures. Attention, la lecture de « OpenStack Overview » (pdf disponible ici) est conseillée pour avoir une petite idée avant de se lancer dans la lecture du guide complet. Vous vous y familiariserez avec et découvrirez les 3 composants de l’ensemble:

  • OpenStack compute qui permet de provisionner des ressources en mettant à disposition un réseau de machines virtuelles
  • OpenStack Object Store qui permet le stockage de données de façon redondante et scalable
  • OpenStack Glance qui est un catalogue d’images serveur

Mais l’interopérabilité étant maintenant une donnée que les entreprises prennent en compte (à raison !), il y a fort à parier que toutes ces technologies se coupent et se recoupent allègrement. RedHat a d’ailleurs évoqué une version future de OpenShift tournant sur OpenStack.

RabbitMQ + Cloud Foundry: Cloud Messaging that just works

Restons dans les nuages en faisant un petit tour du côté de Cloud Foundry, la solution de Platform as a Service de VMware (nous en parlions ici). Après l’intégration de MySQL, MongoDB et Redis, voici donc l’arrivée de RabbitMQ parmi les nouveaux services proposés par la plateforme qui fait sien le slogan de RabbitMQ: Cloud Messaging that just works. Rappelons que RabbitMQ a été racheté par SpringSource/VMware il y a un an et demi et cette nouvelle annonce valide finalement leur stratégie pour offrir une écosystème complet. En effet, comme rappelé dans l’annonce de Cloud Foundry, le messaging est une brique essentielle pour entre autre:

  • la maintenabilité: minimisation de l’impact pour de nouvelles alertes, nouveaux rapports ou logs
  • la scalabilité: on peut déléguer par exemple des tâches à des workers particuliers
  • l’efficacité: les informations peuvent être poussées vers les différents composants, évitant de faire du polling ou de se synchroniser sur une base
  • la robustesse: les queues de messages permettent de temporiser si des instances ou des composants sont désactivés

De plus RabbitMQ implémente le protocole AMQP (versions 0-8 et 0-9-1) qui, contrairement à JMS, a l’avantage de ne pas être enfermé au seul monde Java. C’est d’autant plus intéressant que cette plateforme supporte pour l’instant 3 langages: Java (avec aussi Scala et Groovy), Ruby/Rails et JavaScript (node.js). L’interopérabilité sur ces différents frameworks peut donc être facilitée par RabbitMQ.

Reste que Cloud Foundry est encore dans une phase bêta, la partie monitoring par exemple reste encore très perfectible comparée à son concurrent direct Google App Engine. Nous n’avons pas pu non plus tester les performances d’applications tournant sur cette plateforme.

Vous pouvez commencer dès maintenant grâce à ces tutoriels : Spring 1, Spring 2, exemple d’application sur github et Spring AMQP.

A noter: AMQP est d’ailleurs le protocole de messaging utilisé sur OpenStack, mentionné dans l’entrée précédente, grâce à RabbitMQ et en Python (ce dernier n’est pas un langage supporté par Cloud Foundry),

Le coin de la technique

Apache Commons Lang 3

Les librairies d’Apache, Apache Commons se retrouvent dans de nombreux projets et permettent de s’appuyer sur du code qui marche et qui fait bien ce qu’on lui demande. Mais il est vrai que ces librairies ont perdu de leur superbe, n’étant pour la plupart pas « Java 5 compliant ». Qui a encore envie de caster ses objets alors que Google Guava, lui, utilise les generics ? Pour pallier en partie à ce problème, ce sont les commons-lang qui ont récemment débarqué en V3, apportant dans de nombreuses méthodes le support de ces generics.
C’est sur Web Tambouille que l’on trouve l’article le plus complet leur étant consacré. Il y détaille le contenu de divers packages:

  • lang3.* : contient des utilitaires pour les String, Array, Object…
  • lang3.concurrent.* : quelques ajouts enrichissant java.util.concurrent.
  • lang3.builder.* : divers Builder, comme le EqualsBuilder() qui permet de comparer facilement des objets
  • lang3.reflect.* : des utilitaires pour améliorer votre code traitant de réflexion
  • lang3.mutable.* et lang3.tuple.* : vous avez toujours rêvé de pouvoir changer la valeur de vos entiers ou de pouvoir en retourner plusieurs en un seul appel de méthode ? Vous trouverez ici votre bonheur

Attention tout de même: la compatibilité ascendante n’est pas assurée: il faudra au minimum recompiler car les anciens packages n’ont pas étés conservés.
Bref, cet article est à lire car on a souvent tendance à passer à coté de toutes les fonctionnalités offertes alors que cette librairie est (souvent) déjà dans nos projets. C’est dommage, non ?

2 Responses

Laisser un commentaire