Vous aimez ce que vous lisez sur ce blog ?
Envie d'aller plus loin avec véritable formation d'expertise en Java ?
Venez suivre ma formation Masterclasse Expertise Java !

"Même un développeur experimenté a besoin de continuer à apprendre. Et dans cette formation... j'ai appris beaucoup !" - A.G., Java Champion

Sessions intra-entreprises sur demande : contact[at]mokatech.net.
Inscrivez-vous vite !

Terracotta, un an après

Il y a un an, je vous présentais Terracotta, la solution de clustering pour Java (voir sur le blog Zenika une retranscription de mon article dans Programmez! : présentation, use-cases). Depuis, la société et son produit éponyme ont bien évolué, et je pense qu'il est temps de faire à nouveau le point.

Tout d'abord, un petit rappel.

Le produit phare de Terracotta est la plateforme DSO ("Distributed shared objects"), qui permet de répliquer des graphes d'objets arbitraires sur un cluster. Elle utilise pour cela un "bootjar" qui modifie le bytecode des classes lors de leur chargement au sein de la JVM, afin de surveiller et synchroniser leurs propriétés de manière fine et optimisée.
La configuration de ce mécanisme très puissant nécessite en revanche une parfaite compréhension du modèle mémoire Java ainsi que des subtilités de la programmation concurrente, ce qui réserve son usage aux ingénieur très confirmés.

Conscients de ce problème, les ingénieurs de Terracotta ont travaillé à identifier les principaux use-cases et simplifier leur mise en oeuvre, sous la forme de "produits" prépackagés : Terracotta for EHCache (cache), Terracotta for Hibernate (ORM), Terracotta for Session Clustering, Terracotta for Quartz (scheduling, composant de la suite OpenSymphony) et Terracotta for Spring (IOC).
Pour garantir la meilleure intégration possible et pérénniser les développements, Greg Luck (créateur de EHCache) a été embauché et Quartz acheté.

S'ils se basent toujours sur la plateforme DSO, ces différents produits sont préconfigurés et packagés de manière à permettre leur intégration par des développeurs non-experts, en une dizaine d'instructions simples.
Ils sont généralement disponibles en deux versions :

  • une version "Express" qui ne demande souvent que quelques jars dans le classpath (et parfois un agent JVM), mais qui inhibe alors les autres fonctionnalités de la plateforme DSO sous-jacente ;
  • une version "Custom" qui donne accès à l'intégralité des fonctionnalités de la plateforme DSO (y compris l'utilisation simultanée de plusieurs Produits), mais qui nécessite la mise en place d'un bootjar (compatible avec les JVM Sun et IBM uniquement) et une certaine maîtrise de la configuration du DSO lui-même.

Notez qu'il est relativement aisé de passer d'un mode à l'autre. Ainsi, si votre problématique se limite à la mise en cluster d'un cache EHCache, vous pouvez commencer avec Terracotta for EHCache Express, quitte à migrer plus tard sur la version Custom si vos besoins évoluent (par exemple, vous souhaitez également custeriser des sessions HTTP).

En conclusion, Terracotta est une technologie à surveiller de près, et qui évolue très rapidement. Elle fait à mon avis partie de la "stack" Java agile, aux côtés de Spring, Hibernate et Wicket.

Note : Je remercie Zenika et Terracotta de m'avoir permis de devenir formateur Terracotta agréé !
Vous pouvez donc désormais suivre cette formation en français chez Zenika.


Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.