Graphite est un outil pour grapher différentes métriques qui peuvent être aussi bien des indicateurs systèmes (utilisation CPU, espace disque disponible, etc …), des indicateurs applicatifs (utilisation de la heap d’une JVM, requêtes par secondes d’une base de données, etc.) ou des indicateurs métiers exposés en JMX par exemple. Théoriquement, il n’y a pas de limite aux informations qui peuvent être stockées dans Graphite du moment qu’il s’agit de données numériques. Il est très facile de créer ses propres indicateurs.
Si l’installation basique de Graphite est relativement aisée, les choses deviennent un peu plus complexes lorsqu’il s’agit d’optimiser l’installation et de comprendre son comportement interne pour l’adapter à vos besoins.
Dans cet article je parlerai uniquement des mécanismes de Graphite et de son installation dans un environnement mono-serveur. La montée en charge et la haute disponibilité ainsi que les outils s’appuyant sur Graphite feront l’objet d’articles ultérieurs.
Lire la suite de cet article »
Après le succès de l’atelier NginX du 9 avril, Xebia a décidé d’organiser une seconde session le 23 avril prochain.
Description:

Facebook, GitHub, Dropbox et bien d’autres arrivent à gérer des millions de connexions simultanées. Leur secret ? Le serveur http NginX ! Xebia et eNovance s’associent pour vous faire découvrir ce serveur conçu dans la lointaine Russie, dont le succès n’est plus à faire. Que vous soyez ops ou devs, cet atelier s’adresse à vous qui avez l’habitude de travailler avec Apache en front de vos applications web.
Au cours de cette soirée, nous aborderons les différentes configurations possibles grâce à NginX comme la gestion du SSL, la configuration des logs et du monitoring, le reverse proxy et le load balancing. Cette session sera également l’occasion de profiter d’un retour d’expérience de Cédric Lecomte qui est expert NginX chez eNovance.
Cet atelier, animé par Séven Le Mesle, Stéphane Moreau, Gérôme Egron et Guillaume Arnaud, aura lieu le mardi 23 avril à 19h dans les locaux de Xebia.
Vous pouvez dès maintenant vous inscrire sur Eventbrite.
Adresse :
156 Boulevard Haussmann à Paris
Bâtiment A – 7ième étage
Avec un cache vous pouvez sauver la vie de votre application. Bien sûr il est déjà utile de penser à exploiter tous les caches disponibles. Pour un serveur web, par exemple, tirez parti du navigateur de vos clients. Ce cache est gratuit, ne nécessite aucune installation particulière de votre part et améliore grandement le temps de chargement ressenti par l’utilisateur. Vous pouvez aussi utiliser un CDN pour délivrer vos ressources statiques. Sur votre exploitation, vous utilisez peut-être déjà un proxy-cache (Varnish, Apache, Nginx, BlueCoat, …), un cache distant (Memcached, Redis, Gemfire, …) et sûrement un cache local allant de la simple Map à un EHCache en passant par un cache Guava. Dans notre éco-système, il est rare de trouver des applications n’utilisant pas de cache. Mais attention, un cache apparemment efficace peut s’avérer dangereux à moyen ou long terme: blocage de l’application, OutOfMemory et autres joyeusetés sont monnaie courante.
Voici donc 10 commandements pour garantir bonne utilisation, et bon fonctionnement, des caches. Ces règles sont à prendre comme une ligne de conduite qui vous permettra de ne pas vous perdre en chemin.
Lire la suite de cet article »
Comme le mouvement Agile a rapproché donneurs d’ordre et équipes de réalisation autour d’une vision commune orientée « produit », le mouvement DevOps rapproche aujourd’hui les équipes de développement (DEV) et d’exploitation (OPS) autour d’une vision commune orientée « service », afin de mieux concilier réactivité et qualité de service.
DevOps aborde le paradoxe entre des équipes projets qui cherchent à livrer toujours plus fréquemment des nouvelles fonctionnalités d’une part et d’autre part des équipes d’exploitation qui cherchent à stabiliser et fiabiliser les systèmes tout en maitrisant leur coût.
On peut décrire DevOps selon trois axes :
- Aligner l’exploitation sur les enjeux métiers comme l’agilité a déjà aligné le développement sur le métier.
- Aligner le développement sur les réalités de l’exploitation pour rendre possible la mise en production, la disponibilité et la fiabilité des fonctionnalités métier.
- La transformation du métier d’OPS pour gérer des topologies chaque jour plus grosses et plus complexes avec l’adoption d’infrastructure as code et d’outils comme Chef ou Puppet. Les nouveaux OPS sont des programmeurs ! Ils débattent à la machine à café de TDD, de Ruby vs. DSL, de choix d’IDE, de Git vs. SVN, …
DevOps est souvent associé à la mise en place d’un processus de Continuous Delivery qui, dans la mouvance Lean, vise à déployer les fonctionnalités en production au plus vite et de maximiser les feedbacks. Nous reviendrons dans un autre billet sur les processus de Continuous Delivery.
La mise en place d’une culture DevOps touche les humains, les processus et les outils. Nous proposons une démarche englobant ces trois aspects en prenant comme point d’entrée les processus et, de proche en proche, faire évoluer les humains et les outils.
Lire la suite de cet article »
Comme promis dans le premier article de cette série sur le “making off” du workshop Continuous Delivery, nous vous présentons plus de détails sur la préparation de l’infrastructure de l’atelier. Nous prévoyons de reprogrammer cet atelier au mois de janvier (pour ceux qui sont intéressés, soyez attentifs au calendrier des Tech Events Xebia et Eventbrite!)
Lire la suite de cet article »
Répondant à la demande, le 31 janvier nous rééditerons la soirée des 13 et 20 octobre derniers !
La saison est au Continuous Delivery ! Venez découvrir comment automatiser le déploiement d’une application java web typique sur des serveurs Tomcat via une usine GitHub/Jenkins/Nexus.
Nous verrons plusieurs techniques de déploiement, de la plus simple à la plus sophistiquée :
- déploiement sur Tomcat avec des commandes shell lancées par Jenkins au lieu de les lancer à la main ;
- utilisation du tomcat-maven-plugin avec les conseils d’Olivier Lamy, lead developer du plugin et committer Tomcat ;
- homogénéisation des déploiements du dev à la prod avec Jenkins associé à Rundeck pour gérer des commandes shell. Vincent Behar, committer Jenkins et ‘owner’ du jenkins-rundeck-plugin nous présentera cet outil Open Source en vogue chez les OPS ;
- DeployIt : l’outil intégré d’automatisation des déploiements made in Xebia.
Pour avoir plus de détails sur le déroulement de l’atelier et pour vous inscrire, nous vous invitons à utiliser la page dédiée sur Eventbrite.
Nous avons vu précédemment comment créer un script de déploiement d’application sur Tomcat et comment l’exploiter avec le plugin JENKINS REMOTE SSH PLUGIN.
Dans cet article, nous allons utiliser le même script, mais avec Rundeck, un outil open-source (http://rundeck.org/), fourni par la société DTO Labs.
Il est résolument orienté pour les exploitants. Dans les grandes lignes, il permet de gérer une liste de machines et d’y exécuter des scripts à distance.
Dans l’outil, chaque machine appartient à un projet. Chaque accès et exécution de script y est tracé. On règle les permissions d’accès de chaque personne par projet, script, en lecture, écriture ou exécution. Autant dire que nous avons là une solution prête pour la production dans une entreprise.
Lors des ateliers, chaque binôme avait à sa disposition 3 VM Linux avec sur chacune d’elle un serveur Tomcat. Pour refaire l’expérience ici, nous nous contenterons de lancer le script en local.
Nous tenons à remercier Vincent Behar pour sa participation active à l’élaboration et animation de cette séance sur Rundeck.
Lire la suite de cet article »
Pour déployer une application sur un serveur Tomcat distant, nous avons vu précédemment comment utiliser Apache Tomcat Maven Plugin. Nous pouvons aussi utiliser un script. Cette solution plus élaborée est certainement plus proche des solutions d’exploitation existantes aujourd’hui dans nos entreprises.
Dans l’esprit DevOps, il faut avoir un mode de déploiement le plus tôt possible identique à celui de la production. L’approche par script convient ainsi à un maximum d’environnements possibles (du test jusqu’à la production).
Pour ce faire, le script sera placé sur le serveur distant et exécuté à distance.
Le but de cet article est de vous proposer une solution pour déployer une application web sur un serveur Tomcat distant à chaque commit sur votre repository. Pour cela, nous allons utiliser le plugin Remote SSH pour Jenkins.
Lire la suite de cet article »
Les 13 et 20 octobre derniers a eu lieu le deuxième Tech Event Xebia avec, cette fois, comme sujet le Déploiement Continu sur Tomcat avec Jenkins, Rundeck et Deployit. Pour l’occasion nous avons eu la collaboration spéciale de deux guest stars :
- Olivier Lamy, architecte chez Talend, membre de la fondation Apache et committer sur Tomcat et sur Jenkins
- Vincent Behar, ingénieur Java à Exalead, owner du plugin Rundeck pour Jenkins et cofondateur de Paris Devops,
Merci à eux pour leur participation à la préparation de l’atelier ainsi qu’à sa présentation.
Flickr est l’exemple le plus évoqué à l’heure actuelle de déploiement continu. Il existe bien d’autres exemples connus comme Outbrain, Wealthfront ou Etsy. Même si le nombre d’entreprises qui arrivent à ce niveau de maturité est encore faible, il est possible qu’à l’avenir cette méthode devienne une technique courante dans les projets avec la progression de l’agilité. Son implémentation oblige, en effet, à accomplir quelques principes du manifeste agile, dont par exemple :
- Une attention continue à l’excellence technique et à la qualité de la conception améliore l’agilité.
- Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.
Ainsi qu’à en pousser d’autres :
- Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.
- Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.
Lire la suite de cet article »

Le quatrième Paris DevOps Meetup aura lieu mercredi 4 Mai à partir de 19h00 dans les locaux de Xebia.
Au programme :
- Un retour d’expérience sur un gros projet agile distribué (100 personnes, 10 équipes, 4 pays) orienté culture DevOps, process… et (un peu ;-) outils).
- Monitoring dans un cadre DevOps : infrastructure, services, business, trend monitoring, alert monitoring, dashboards, wallboards, etc.
Les inscriptions se font sur lanyrd comme d’habitude : http://lanyrd.com/2011/paris-devops-meetup-4/
Notez bien l’adresse :
Xebia
156 boulevard Haussmann à Paris
Immeuble A – 7e étage