J’ai assisté au séminaire SpringSource tc Server qui a eu lieu le Mardi 28 Juillet dans les locaux d’OCTO. L'objectif principal de ce séminaire était de présenter deux produits SpringSource : tc Server et Hyperic HQ. Je vous propose un bref compte-rendu de la présentation menée par Chris Harris, consultant senior chez SpringSource.
Chris commence par positionner tc Server et Hyperic HQ sur la gamme de produits SpringSource, qui s'articule maintenant sur 3 axes :
tc Server est défini par SpringSource comme une alternative low-cost à JE****E, basé sur un Tomcat, fournissant des fonctionnalités de monitoring et d'administration d’**applications d'**entreprise. Les gains qui ont été mis en avant sont donc essentiellement :
Le serveur fournit toutes les fonctionnalités existantes dans un Tomcat 6.0.19 (Servlet/JSP, clustering avec replication de session/contexte, etc.) et d’autres fonctionnalités orientés entreprise. En effet, la solution permet, entre autre :
L’architecture tc Server est composée de 3 différentes briques :
AMS (Application Management Suite) permet d'administrer et superviser des instances tc Server mais également d'autres types de ressources : apache http server, activeMQ, JVM, OS. A travers une console d’administration, l’outil permet d’effectuer différents type d’opérations distribuées :
Les applications peuvent être déployées/undeployées/démarrées/arrêtées sur un groupe d’instances tc Server qui lui-même peut être démarré/arrêté. Les instances tc Server peuvent également être configurées à travers la console d’administration AMS, par contre, elles ne peuvent pas être configurées de manière groupée.
Les optimisations disponibles sur tc Server «out of the box» sont principalement le paramétrage des options de JVM, des scripts de configuration adaptés à la production ou à un démarrage rapide, des scripts de démarrage des instances/agents AMS/serveur AMS et un service Windows. Quelques fonctionnalités avancées ont également été ajoutées à Tomcat comme par exemple le «Non-blocking (NIO) connector» (connecteur asynchrone) et le «High Concurrency JDBC Connection Pool».
Un des principaux avantages de la solution est de faciliter le d****iagnostic des incidents, notamment grâce à la détection de deadlocks de Threads, la génération de heap dump, les dumps d’exceptions, ou encore la corrélation URL/Thread. La solution offre également la possibilité de configurer des seuils permettant de lever des alertes. Les seuils configurés par défaut concernent :
Chris est ensuite passé à la démonstration durant laquelle il a illustré les features présentées précédemment. Il commence donc par une présentation de la console d’administration AMS avec son dashboard customisable via des portlets, une customisation qui peut être dédiée à différents type de rôles (production, développeurs, etc.). Nous avons ensuite parcouru les fonctions d’administration/monitoring des ressources (OS, groupe d’instance, application, pool de connexion/thread, etc.). Des ressources plus spécifiques à l'application peuvent être supervisées par simple exportation de MBeans JMX au niveau applicatif. Cette opération est simplifiée par l'utilisation du framework Spring permettant d'exporter des attributs/opérations/métriques de ressources via l'ajout d'annotations sur les classes Java : @ManagedResource, @ManageAttribute, @ManagesOperation et @ManagedMetric. Nous avons également vu comment configurer des alertes à travers un ensemble de conditions (principalement en cas de dépassement de seuil d’un indicateur) en prenant l’exemple de plusieurs types d’incident (arrêt de la base de donnée, requête JDBC trop lente avec détail de la requête en cause, trop de temps passé dans le garbage collector, etc.). Enfin, Chris nous a montré comment utiliser l’outil de script disponible dans AMS, appelé CLI (Command-Line Interface) pour effectuer les mêmes opérations d’administration que via la console web d’AMS.
Après une courte pause, Chris enchaîne sur une présentation rapide du produit Hyperic HQ. A première vue Hyperic HQ ressemble à AMS... c’est normal, AMS a été construit sur la base d’Hyperic HQ suite au rachat de la société Hyperic par SpringSource. La principale différence entre les deux produits est que AMS est spécifique à Tomcat, alors que Hyperic HQ permet de monitorer une très grande variété de ressources :
Chris nous a montré comment rapidement installer la solution (5-10 minutes) et nous a présenté la console qui ressemble donc très fortement à la console AMS. L'outil n'est pas dédié aux développeurs mais aux exploitants.
En conclusion, cette demi-journée a permis de constater la richesse de l’offre SpringSource d’aujourd’hui, avec des outils qui paraissent complets, et une très forte volonté de conquête des environnements de production.