7 juillet 2010
Tout a déjà été dit sur les logs. Pour preuve, ce n’est plus un sujet chaud, les équipes d’exploitation sont très contentes avec les logs de nos applications
.
D’accord, l’envers du décor est moins reluisant et il reste une marge de progression. Nous avions proposé dans Les 10 commandements des logs applicatives des suggestions focalisées sur le contenu des fichiers de logs ; voici aujourd’hui des propositions pour gérer les fichiers eux-mêmes. Même si le sujet peut sembler trivial, ces bonnes pratiques peuvent grandement simplifier le quotidien des équipes de production et améliorer les relations tumultueuses entre exploitants et développeurs.
Au risque de surprendre certains, les exemples de ce billet utilisent Logback plutôt que le standard de-facto Log4j car certaines bonnes pratiques que je proposerai sont impossibles à mettre en oeuvre avec Log4j. Aujourd’hui, je préfère utiliser Logback à Log4j pour gérer les logs de mes applications … même si je suis nostalgique du format ‘.properties’ pour la configuration de ces dernières
.
Bien que Logback ne soit pas le sujet de ce billet, j’ai ajouté à l’article initial un paragraphe « Pourquoi je préfère Logback à Log4j » pour expliquer ce choix.
Lire la suite de cet article »
24 mai 2010

Xebia a le plaisir d’accueillir le deuxième KawaCamp dans ses locaux jeudi 27 Mai 2010.
Qu’est ce qu’un KawaCamp ? C’est un BarCamp dédié aux sujets qui gravitent autour de l’écosystème Java ! Et qu’est-ce qu’un BarCamp alors
? Pour résumer voici la définition de Wikipedia. Nous allons nous retrouver entre passionnés pour discuter de sujets qui nous tiennent à coeur autour de tables rondes/ateliers durant lesquels chacun participe et donne son point de vue.
Les sujets sont choisis grâce aux centres d’intérêts que chacun exprime sur la page d’inscription. Cette session s’oriente vers les sujets d’actualité avec beaucoup de HTML5 et d’Android sans oublier NoSQL, TDD, Agilité, …
Si vous aimez les discussions passionnées autour d’un verre, le KawaCamp vous comblera en organisant nos débats !
Informations pratiques :
Ils en parlent :
3 septembre 2009
Après Tomcat qui rentrait cet été de plain-pied dans l’univers du Java Platform as a Service avec le mariage de SpringSource à VMWare et à CloudFoundry, c’est au tour de l’autre moteur léger de servlets, Jetty/Webtide, de s’adosser à un acteur du Cloud Computing, Intalio, pour développer son offre.
Une reconnaissance méritée
C’est une très belle opportunité pour Jetty qui était jusqu’à présent beaucoup plus embarqué que Tomcat par des grands projets de Cloud Computing (Google App Engine, Hadoop, Gigaspace XAP, etc) mais n’avait pas constitué sa propre offre.
Sur les pas d’Amazon ?
Le mariage d’Intalio avec Webtide est assez différent de celui de SpringSource avec VMWare et Cloud Foundry. Alors que la deuxième union concerne des spécialistes de l’infrastructure, Intalio est lui issu de l’univers des applications CRM et s’étend vers les infrastructures de Cloud Computing comme l’a fait Amazon auparavant.
Des serveurs J2EE lourds absents
Nous remarquerons à l’occasion que les serveurs J2EE heavyweight se font très discrets dans cette période d’avalanche d’annonces sur Java Platform as a Service, on peut s’attendre à ce qu’ils répondent sur cette tendance qui va bouleverser les modes de fonctionnement dans les data centers et menacer leurs parts de marché.
Ils en parlent
19 août 2009
SpringSource continue à dérouler son plan de Java Platform As A Service avec le rachat de Cloud Foundry, le spécialiste de plate-forme Apache / Tomcat / MySQL sur Amazon EC2.
Rod Johnson annonce dans SpringSource Launches Enterprise Java Cloud que SpringSource offrira à ses clients non seulement la possibilité de déployer sur le cloud public Amazon EC2 mais aussi et surtout sur des clouds privés.
Il s’agira vraisemblablement de la mutualisation de nos plates-formes Java actuelles avec un chef d’orchestre Hyperic et des serveurs tc Server (Tomcat augmenté de fonctionnalités d’administration) ; la JVM sera Sun HotSpot et l’OS de prédilection sera RehHat Enterprise Linux (RHEL) même si Windows, Solaris et MacOSX seront proposés (détails ici).
Il ne nous faudra que quelques minutes pour déployer de nouvelles applications web ou pour ajuster les ressources CPU et mémoire allouée à une application par l’ajout ou la suppression de nœuds dans un cluster.
Techniquement, il n’y a pas de rupture par rapport à ce qu’offrent depuis longtemps les serveurs JEE « lourds » (IBM WebSphere, Oracle/BEA Weblogic, RedHat JBoss App Server ou Sun Glassfish).
Cependant, les mentalités ont changé, les esprits sont marqués par la simplicité d’exploitation des Public Clouds. Les équipes d’exploitation sont en train de se transformer, les processus s’allègent et l’offre lightweight de SpringSource tombe à point nommé.
Et la virtualisation matérielle dans tout ça ? Rod Johnson nous dit que la Tomcat Platform As A Service s’exécutera « aussi sur vSphere », le produit phare de son récent acquéreur VMWare. La nuance est forte entre « aussi sur » et « principalement sur ».
Nous le verrons à l’usage, le duo RHEL / Sun JVM sera la couche d’abstraction suffisante pour exécuter la plupart de nos applications Java. Le renfort de la virtualisation matérielle ne se justifiera que dans un nombre limité de cas comme les serveurs J2EE s’avèrent rarement nécessaire face aux simples Tomcat, Jetty ou Glassfish V3 …
17 août 2009
Pourquoi VMWare a racheté SpringSource dont le métier et la culture sont si différents ? Pourquoi un tel prix ?
Mon analyse est que VMWare a racheté SpringSource parce que le cloud computing de forme Platform As A Service (PaaS) à la Google App Engine va bientôt mieux répondre que la virtualisation matérielle aux besoins d’optimisation des data centers Java. Selon l’adage « Si quelqu’un scie la branche sur laquelle je suis assis, mieux vaut que ce soit moi », VMWare s’est dotée de l’expertise de SpringSource sur Tomcat et Hyperic.
Je parlerai des applications Java légères (Servlets, JDBC, JPA et JMS) qui sont aujourd’hui largement majoritaires dans nos data centers Java. Billy Newport, IBM WebSphere, reconnait qu’elles représentent 80% des cas, SpringSource aurait sûrement des chiffres plus élevés.
Lire la suite de cet article »
7 mai 2009
Depuis le rachat de Covalent en Janvier 2008, SpringSource est le premier contributeur au projet Apache Tomcat avec plus de 80% des commits ; Mark Thomas et Philip Thomas en sont les principaux acteurs.
Tomcat est la pierre angulaire de l’offre middleware de SpringSource aujourd’hui composée de tc Server, une version professionnelle Open Source de Tomcat et dm Server, un serveur OSGi (le format d’assemblage que SpringSource préfère aux classiques .war).
Mark Thomas a présenté lors de SpringOne 2009 : Securing Apache Tomcat For Your Environment les points essentiels sur ce sujet qui se décompose en trois thèmes : la confidentialité, l’intégrité et la disponibilité.
Lire la suite de cet article »
5 mai 2009
Une conférence est l’occasion de discuter avec les ingénieurs des difficultés que nous rencontrons à utiliser leurs produits. J’ai profité de ma participation à SpringOne 2009 pour échanger avec Mark Thomas sur le suivi de l’adresse IP des internautes dans les logs d’audit d’applications web. Mark Thomas est des principaux committer du projet Tomcat et de SpringSource tc Server.
Le problème se présente lorsqu’un serveur Tomcat est précédé d’un reverse proxy (e.g. mod_proxy, Squid Cache, etc) ou d’un load balancer (Nortel Alteon, F5 Big-IP, etc) : La méthode HttpServletRequest.getRemoteAddr() ne retourne plus l’adresse IP de l’internaute mais celle du composant réseau qui précède le serveur Tomcat.
Cette perte d’information a été compensée par les reverse-proxy en ajoutant un header http X-Forwarded-For à toutes les requêtes qu’ils font transiter. Bien que ce header ne soit pas standard (son nom commence d’ailleurs par « X- »), il est devenu un standard de facto utilisé par la très grande majorité des reverse proxy et load balancers (paramètre xforward=enable pour les Alteon d’après Command Reference ; propriété Insert XForwarded For de la GUI du profile http ou règle when HTTP_REQUEST { HTTP::header insert "X-Forwarded-For" [IP::client_addr] } pour les Big-IP d’après F5 Dev Central : Using « X-Forwarded-For » in Apache or PHP ).
Cependant, les implémentations de l’API Servlet ne sont pas tenues de prendre en compte ce paramètre dans la méthode request.getRemoteAddr() dont la javadoc stipule bien Returns the Internet Protocol (IP) address of the client or last proxy that sent the request. . Tomcat est d’ailleurs autant concerné que ses concurrents Websphere ou Weblogic, pour ne citer qu’eux.
Toutes les couches sont impactées : l’Access Log Tomcat dont les patterns common et combined utilisent le remote host name (%h) et les frameworks de sécurité et d’audit comme Spring Security (cf WebAuthenticationDetails.getRemoteAddress()) ou CAS Inskektr ClientInfo).
Lire la suite de cet article »
22 septembre 2008
Spring Source a publié l’information sous la forme d’une modification sibylline de la note d’Enterprise Maintenance Policy : Seuls les clients commerciaux bénéficieront des patchs publiés après les trois mois qui suivent le lancement d’une version majeure des projets majeurs Spring (framework, security, web flow, etc). L’objectif annoncé de Spring Source est de réduire les coûts de maintenance des anciennes versions de ses projets en incitant les utilisateurs à migrer vers les versions récentes.
Concrètement, les utilisateurs non commerciaux du framework seraient limités aux versions 2.0.1 (contre 2.0.8 pour les clients commerciaux) et 2.5.3 (contre 2.5.5) [1]. Une telle limitation serait bloquante pour la plupart des projets.
Au delà de l’objectif annoncé, on peut y voir la tentative de créer un modèle de monétisation de l’open source : « payer pour les mises à jour ».
Ce qui est sûr, c’est que cette annonce, au delà des sempiternels débats stériles que nous offre internet (Cf. : TSS), laisse quelques questions en suspens.
Lire la suite de cet article »
20 mai 2008
Paris JUG reçoit mercredi à 18h45 Patrick Curran, président du Java Community Process pour une table ronde autour de l’ouverture du JCP.
Des membres français du JCP participeront au débat : Guillaume Laforge (spec lead de la JSR 241: The Groovy Programming Language), Cedric Thomas (CEO d’OW2 – ObjectWeb), Eric Samson (CTO de Data Service) et Antonio Goncalves (membre des JSR Java EE 6, EJB 3.1 et JPA 2.0).
Deux ans après l’appel d’IBM et BEA à ouvrir la plateforme Java, à l’heure de la controverse OSGI versus Java Module System, du large succès de Flash face à JavaFX, des relations délicates entre Sun et la Fondation Apache et de l’émergence de SCA/SDO, c’est l’occasion de comprendre les enjeux que la plateforme Java rencontre aujourd’hui et peut être d’assister à l’inflexion de la gouvernance de Java.
Cette table ronde s’adresse aux experts Java autant qu’aux managers qui définissent des stratégies de Système d’Information.
Tous les détails de la soirée Paris JUG – Table ronde : l’ouverture du JCP.
1 mai 2008
L’annonce de SpringSource a des allures de schisme. Après des années à critiquer la complexité et le monolithisme de Java Enterprise Edition (Java EE), les équipes de Rod Johnson ont franchi le Rubicon et proposent un serveur d’applications Java qui ne reposera pas sur la monolithique spécification Java EE.
SpringSource Application Platform se limite à quelques fragments de cette spécification (principalement Servlet et JPA) assemblés dans un conteneur OSGI augmenté de quelques particularités Spring. Les applications web ne seront plus assemblées sous forme de WAR avec un fichier web.xml mais sous forme de plusieurs bundles OSGI avec des fichiers de configuration Spring.
Lire la suite de cet article »