Java BarCamp IV : Cloud et DDD

This entry was posted by on Dimanche, 5 avril, 2009 at

Encore un succès ! C’était plein et on a été très bien accueilli dans les locaux de Google. Super bouffe au passage, j’ai beaucoup aimé les macarons en dessert et puis le fromage, trop la classe…
2 créneaux / 4 salle et au total 7 sessions, je vous résume les deux auxquelles j’ai participé :

Cloud computing
Un sujet pas vraiment Java au premier abord mais qui a attiré du monde. J’ai essayé de définir le cloud computing comme je le ressentais, Didier a été plus clair que moi en le décomposant en 3 offres :

  • IAAS (Infrastructure As A Services) : c’est typiquement Amazon avec ces offres S3 pour le stockage et EC2 pour les serveurs virtualisés. On a aussi Gandi avec une offre plus “end user” la où Amazon est vraiment très bas niveaux (encore qu’ils mettent en place de plus en plus de service à valeur ajoutée autour de leurs offres de base et aussi des outils de gestion en plugin dans Eclipse (demo)). On trouvera aussi Elastic Grid qui propose de faciliter le développement et déploiement sur l’infrastructure Amazon, ou encore GoGrid une offre concurrente à Amazon. Bientôt je pense qu’avec la fusion IBM/Sun de nouvelles offres vont apparaître.
  • SAAS (Software As A Services) : la on va trouver beaucoup d’acteur (s’appuyant souvent sur l’offre précédente), Amazon SimpleDB, Amazon SQSGoogle Apps (cf mon dernier article), Microsoft Azure Services, CloudMQ, ZumoDrive, … et je pourrais en lister pas mal et la liste va augmenter rapidement
  • PAAS (Platform As A Services) : c’est la plus un hébergement d’application sur une plate-forme commune s’adaptant au besoin selon la demande, c’est typiquement Google AppEngine, ou il est possible à tous de déployer son application web si on sait faire du Python. Microsoft a surement une offre dans Azure faudrait que je jette un oeil et Sun vient de lancer Zembly.

Pas mal de débat sur quid du mode déconnecté, la sécurité, et où java la dedans. Perso le mode déconnecté a pour moi une importance capitale dans ce monde de plus en plus nomade ou le cloud est en priorité un espace de stockage me permettant de partager mes données entre mes différents terminaux, ensuite un espace de service, et au final une plate-forme de déploiement de mes applis.
Fini de gérer son backup qu’on fait jamais, fini de chercher un moyen de partager ses données en réseau pour au final s’échanger un fichier avec une clé parce qu’on a pas réussi à faire parler un mac et un pc, mes données sont dans le cloud et synchronisées sur tout mes terminaux. J’ai mis en place Zumodrive dans ma société et c’est un vrai régal, les documents sont partagés même à l’exterieur de l’entreprise et je me pose plus la question du backup. J’ai prévu un prochain article sur l’experience avec cette offre cloud que je comparerais à Google Docs.
La sécurité reste le point crucial de l’implémentation de ces offres dans l’entreprise, j’ai l’impression d’entendre les mêmes remarques que lorsque l’on évoquait le paiement sur Internet il y a dix ans. Tous ces services sont bien sécurisés et il n’y a pas de risque zéro.
Java pour moi a sa place dans le cloud tant coté client que coté serveur. L’aspect multi plate-forme permet de faciliter les développements au niveau client (ex: le client ZumoDrive est en Java), j’aimerais voir proliférer des APIs Java “cloud-ready” facilitant l’intégration de service dans son code. De même côté serveur j’attends avec impatience Google AppEngine en Java.
Au final l’avantage du cloud computing est avant tout économique, les PME sont les premiers clients et voient leurs cout diminuer tout en ayant des capacités flexibles.

DDD (Domain Driven Design)
J’avais eu peu de succès la dernière fois avec ce sujet mais j’avais quand même attisé les curiosités, cette fois-ci il a été proposé par d’autres bien plus connaisseurs que moi et qui ont apportés des arguments pertinents sur les bienfait de ce concept. Un des points importants évoqués était cette habitude de trop parler technique et imbrication de framework pour s’orienter plus sur le métier, une évidence que l’on a tendance à oublier en voulant mettre nos nouveaux framework dans notre code. J’ai reparlé de Qi4j qui, je l’ai appris, n’est pas du pur DDD mais en tout cas reste à mes yeux une implémentation concrète de ce qui est pour moi la meilleure manière de modéliser du réel. Faut vraiment que je m’y mette et que je me fasse une démo de mon dossier médical implémenté avec Qi4j pour vraiment prouver que cette approche est pertinente.
Bien sur je reste persuadé que son implémentation dans un code existant reste difficile mais j’en suis pas encore là.
Le DDD c’est avant tout une bonne pratique et une nouvelle manière d’appréhender son développement. A suivre c’est sûr …

Merci encore aux organisateurs. C’est toujours une bonne occasion d’échanger. Et pourvu que Google nous ouvre leur porte le plus souvent possible ;)
Retrouvez les autres blogs sur le JavaBarCamp IV:

Comments are closed.