<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>Planet Paris DevOps</title>
      <description>Actualités devops : planet de plusieurs blogs sur le thème devops.</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=d0af02c9637fce81284f75e4e3804eb4</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=d0af02c9637fce81284f75e4e3804eb4&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 23:14:14 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>USI dans VOTRE entreprise avec MyUSI</title>
         <link>http://blog.octo.com/usi-dans-votre-entreprise-avec-myusi/</link>
         <description>Vous aimez USI ? OCTO Academy vous organise un programme sur-mesure tout au long de l’année. Ces conférences portent sur des sujets d’innovation et de prospective adressés régulièrement lors de notre évènement USI : Big Data, Lean Management, ruptures technologiques qui changent la DSI, Internet des objets, etc. Pour chaque entreprise, le programme MyUSI est adapté aux enjeux que vous [&amp;#8230;]&lt;div class='yarpp-related-rss'&gt;

Articles suggested :&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/octo-academy-lance-son-offre-de-seminaires-interentreprises/&quot; title=&quot;OCTO Academy lance son offre de s&amp;#xe9;minaires interentreprises&quot;&gt;OCTO Academy lance son offre de séminaires interentreprises &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/formations-octo-juin-juillet-2015/&quot; title=&quot;Formations OCTO : juin-juillet 2015&quot;&gt;Formations OCTO : juin-juillet 2015 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/reinventez-la-formation-interentreprises-avec-octo-academy-2/&quot; title=&quot;R&amp;#xe9;inventez la formation interentreprises avec OCTO Academy&quot;&gt;Réinventez la formation interentreprises avec OCTO Academy &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://blog.octo.com/?p=55537</guid>
         <pubDate>Thu, 30 Jul 2015 09:29:50 +0000</pubDate>
         <content:encoded><![CDATA[<h3><em><span style="color:#000000;">Vous aimez <a rel="nofollow" style="color:#000000;" target="_blank" href="http://www.usievents.com/">USI</a> ?<span style="color:#d3b771;"> <strong><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy">OCTO Academy</a></strong> </span>vous organise un programme sur-mesure tout au long de l’année.</span></em></h3>
<p><img class=" wp-image-55544 size-thumbnail alignleft" src="http://blog.octo.com/wp-content/uploads/2015/07/Capture-d&#x002019;&#xe9;cran-2015-07-30-&#xe0;-11.14.34-150x150.png" alt="MyUSI" width="150" height="150"/></p>
<p style="padding-left:60px;">Ces conférences portent sur des sujets d’innovation et de prospective adressés régulièrement lors de <span style="color:#d3b771;"><strong><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.usievents.com/">notre évènement USI</a></strong></span> : Big Data, Lean Management, ruptures technologiques qui changent la DSI, Internet des objets, etc.</p>
<p style="padding-left:60px;">Pour chaque entreprise, le programme <span style="color:#d3b771;"><strong><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m">MyUSI</a></strong></span> est adapté aux enjeux que <em><strong>vous</strong></em> nous préciserez. Notre challenge est de créer une émulation et (r)éveiller <em><strong>vos</strong></em> futurs innovateurs.</p>
<p style="text-align:center;"><a rel="nofollow" target="_blank" href="http://www.octo.academy">www.octo.academy</a></p>
<p><span id="more-55537"></span></p>
<h1><span style="color:#000000;"><a rel="nofollow" style="color:#000000;" target="_blank" href="http://www.octo.academy/fr/m">LES <em>my</em> USI</a></span></h1>
<h3><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/1">ARCHITECTURES &amp; TECHNOLOGIES</a></span></h3>
<p><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/1">&gt; Les nouvelles Architectures Web Front-End</a></span></p>
<p><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/1">&gt; Data science &amp; Machine Learning</a></span></p>
<p><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/1">&gt; Docker, le container léger</a></span></p>
<p><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/1">&gt; Dessine-moi une API&#8230; Et dis-moi comment la manager !</a></span></p>
<p><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/1">&gt; Les architectures de demain</a></span></p>
<p style="text-align:right;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/1">+D&rsquo;INFOS &gt;</a></span></p>
<hr />
<h3 style="text-align:left;"><span style="color:#5e5c5c;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/2">DYNAMIQUE D&rsquo;ÉQUIPE</a></span></span></h3>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/2">&gt; L&rsquo;optimisme, outil de performance : de l&rsquo;enthousiasme à la mobilisation animé par Philippe Gabilliet</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/2">&gt; La métaphore des jardins animé par Christian Monjou</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/2">&gt; Comprendre ce qu&rsquo;est le temps pour mieux le vivre animé par Bruno Jarrosson</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/2">&gt; Trop humains pour réussir ?</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/2">&gt; Plaisir et productivité, 10 règles d&rsquo;or</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/2">&gt; Les lois universelles de l&rsquo;informatique</a></span></p>
<p style="text-align:right;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/2">+D&rsquo;INFOS &gt;</a></span></p>
<hr />
<h3 style="text-align:left;"><span style="color:#5e5c5c;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/4">MÉTHODOLOGIES &amp; CHANGEMENT</a></span></span></h3>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/4">&gt; La responsabilité culturelle : UX Strategy</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/4">&gt; Vers l&rsquo;entreprise agile</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/4">&gt; DevOps en pratique</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/4">&gt; De la pensée projet à la pensée produit</a></span></p>
<p style="text-align:right;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/4">+D&rsquo;INFOS &gt;</a></span></p>
<hr />
<h3 style="text-align:left;"><span style="color:#5e5c5c;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/5">PROSPECTIVE</a></span></span></h3>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/5">&gt; Le wearable computing</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/5">&gt; Banque digitale : les FinTech cannibalisent la banque</a></span></p>
<p style="text-align:right;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/5">+D&rsquo;INFOS &gt;</a></span></p>
<hr />
<h3 style="text-align:left;"><span style="color:#5e5c5c;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/3">STRATÉGIE SI</a></span></span></h3>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/3">&gt; Les secrets des Géants du Web</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/3">&gt; Le SI en 2020</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/3">&gt; La révolution digitale</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/3">&gt; Cloud en 2015 : vers la DSI Cloud broker&#8230;</a></span></p>
<p style="text-align:left;"><span style="color:#5e5c5c;"><a rel="nofollow" style="color:#5e5c5c;" target="_blank" href="http://www.octo.academy/fr/m/3">&gt; BigData</a></span></p>
<p style="text-align:right;"><span style="color:#d3b771;"><a rel="nofollow" style="color:#d3b771;" target="_blank" href="http://www.octo.academy/fr/m/3">+D&rsquo;INFOS &gt;</a></span></p>
<p style="text-align:center;"><a rel="nofollow" target="_blank" href="http://www.octo.academy">www.octo.academy</a></p>
<hr />
<p style="text-align:center;">
<div class='yarpp-related-rss'>
<p>Articles suggested :</p><ol>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/octo-academy-lance-son-offre-de-seminaires-interentreprises/" title="OCTO Academy lance son offre de s&#xe9;minaires interentreprises">OCTO Academy lance son offre de séminaires interentreprises </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/formations-octo-juin-juillet-2015/" title="Formations OCTO : juin-juillet 2015">Formations OCTO : juin-juillet 2015 </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/reinventez-la-formation-interentreprises-avec-octo-academy-2/" title="R&#xe9;inventez la formation interentreprises avec OCTO Academy">Réinventez la formation interentreprises avec OCTO Academy </a></li>
</ol>
</div>]]></content:encoded>
      </item>
      <item>
         <title>OpenShift 3 : le PaaS privé avec Docker</title>
         <link>http://blog.octo.com/openshift-3-le-paas-prive-avec-docker/</link>
         <description>OpenShift est une solution de PaaS (Plateforme-as-a-Service) privée permettant de construire, déployer et exécuter des applications dans des containers. Elle est disponible en open source sous licence Apache 2.0 et distribuée dans deux produits : Origin (communautaire) ou Enterprise. La genèse de la version 3 Depuis juillet 2014, OpenShift s’est lancé dans un vaste et ambitieux [&amp;#8230;]&lt;div class='yarpp-related-rss'&gt;

Articles suggested :&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/comment-segment-l-offre-de-cloud-computing/&quot; title=&quot;Comment segmenter l&amp;rsquo;offre de cloud computing?&quot;&gt;Comment segmenter l&amp;rsquo;offre de cloud computing? &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/devops-corner-episode-1-chef-pour-les-nuls/&quot; title=&quot;Devops corner, &amp;#xe9;pisode 1 : Chef pour les nuls&quot;&gt;Devops corner, épisode 1 : Chef pour les nuls &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/devops-corner-episode-2-chef-les-limitations/&quot; title=&quot;Devops corner, &amp;#xe9;pisode 2 : Chef, les limitations&quot;&gt;Devops corner, épisode 2 : Chef, les limitations &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://blog.octo.com/?p=54620</guid>
         <pubDate>Wed, 03 Jun 2015 09:24:44 +0000</pubDate>
         <content:encoded><![CDATA[<p style="text-align:justify;"><strong><img class="alignleft wp-image-54689" src="http://blog.octo.com/wp-content/uploads/2015/05/openshift_logo-150x150.png" alt="openshift_logo" width="86" height="86"/>OpenShift</strong> est une solution de <strong>PaaS</strong> (<em>Plateforme-as-a-Service</em>) privée permettant de <strong>construire, déployer et exécuter </strong>des applications dans des containers. Elle est disponible en <em>open source</em> sous licence Apache 2.0 et distribuée dans deux produits : <a rel="nofollow" target="_blank" href="https://github.com/openshift/origin/">Origin</a> (communautaire) ou <a rel="nofollow" target="_blank" href="http://www.openshift.org/#v3">Enterprise</a>.</p>
<p style="text-align:justify;"><span id="more-54620"></span></p>
<h1><strong>La genèse de la version 3 </strong></h1>
<p style="text-align:justify;">Depuis juillet 2014, OpenShift s’est lancé dans un vaste et ambitieux <strong>projet de refonte de son architecture</strong> en vue d’intégrer en son sein &#8211; les désormais incontournables &#8211; <strong>Docker</strong> et <strong>Kubernetes</strong>.</p>
<p style="text-align:justify;">Pour OpenShift, lancer ce projet il y a 1 an était particulièrement audacieux, et constituait une <strong>stratégie risquée</strong>. Alors que la course avec <strong>Cloud Foundry</strong> battait son plein, <strong>OpenShift</strong> a choisit de se lancer dans un long chantier de <strong>refonte technique</strong> au détriment de l’enrichissement fonctionnel de son produit et de la compatibilité avec la précédente version. Nous pensons, aujourd’hui qu’ils ont fait le bon pari.</p>
<p style="text-align:justify;">A date, le projet Origin regroupe 74 contributeurs sur Github dont les 10 plus actifs travaillent tous chez <strong>Red Hat</strong>. Cette <a rel="nofollow" target="_blank" href="http://commons.openshift.org/">communauté</a> plutôt active, a réalisé 15 itérations en 11 mois et vient de rendre disponible sa version <strong>b<b>ê</b>ta 3</strong> qui est déjà très prometteuse. Une première <em>release candidate</em> est attendue pour <strong>fin juin</strong> 2015 pour OpenShift Enterprise.</p>
<p style="text-align:justify;">Bien que la solution soit principalement portée par <strong>Red Hat</strong>, elle repose fortement sur Kubernetes (de <strong>Google</strong>). Ceci pose la question de la <strong>gouvernance</strong> qui n&rsquo;est pas forcément triviale et qui dépend de la bonne entente et de l&rsquo;alignement des visions des deux entreprises. Qu&rsquo;adviendra-t-il des nouvelles fonctionnalités poussées par Google : viendront-elles enrichir Kubernetes au détriment d&rsquo;OpenShift? Visiblement, la question n&rsquo;est pas encore tranchée.</p>
<p style="text-align:justify;">Toutefois, si le soutien de Google se confirme, une <strong>gouvernance bicéphale</strong> de ces géants ne pourra être que bénéfique à OpenShift. Il permettra de <strong>confirmer l&rsquo;avance prise sur la concurrence</strong> de <strong>Docker Enterprise</strong> (Machine, Compose et Swarm).</p>
<h1><strong>Construire et déployer automatiquement ses applications : le fonctionnement</strong></h1>
<p>OpenShift v3 offre nativement <strong>3 modes</strong> <strong>de construction</strong> automatisée d’une application :</p>
<ul>
<li><strong>Le mode Docker-File </strong>: permet de construire automatiquement un container <strong>Docker</strong> en fournissant à OpenShift l’adresse d’un gestionnaire de code source pointant sur un Docker-File et ses dépendances.</li>
</ul>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-Docker-File-Build-Strategy-OCTO.png"><img class="aligncenter size-large wp-image-54679" src="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-Docker-File-Build-Strategy-OCTO-1024x290.png" alt="Openshift3-Docker-File-Build-Strategy-OCTO" width="640" height="181"/></a></p>
<ul>
<li><strong>Le mode <em>Source-To-Image</em></strong> <strong>(STI) </strong>: permet de construire automatiquement une application en poussant le code source applicatif dans OpenShift (à l&rsquo;instar des <strong><em>buildpacks</em></strong> dans <strong>Heroku</strong>).</li>
</ul>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-STI-Build-Strategy-OCTO.png"><img class="aligncenter size-large wp-image-54680" src="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-STI-Build-Strategy-OCTO-1024x430.png" alt="Openshift3-STI-Build-Strategy-OCTO" width="640" height="269"/></a></p>
<ul>
<li><strong>Le mode Custom Build </strong>: permet de fournir sa propre logique de <em>build</em> d&rsquo;une application en fournissant à OpenShift une image Docker conçue à cet effet.</li>
</ul>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-Custom-Build-Strategy-OCTO.png"><img class="aligncenter size-large wp-image-54682" src="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-Custom-Build-Strategy-OCTO-1024x430.png" alt="Openshift3-Custom-Build-Strategy-OCTO" width="640" height="269"/></a></p>
<p>&nbsp;</p>
<p>OpenShift 3 permet aussi de définir une <strong>stratégie de déploiement automatisé</strong> d&rsquo;une application lorsque qu&rsquo;une nouvelle <strong>version d&rsquo;image</strong> est publiée dans la <em>registry</em> ou lorsque que la <strong>configuration</strong> de l&rsquo;application est mise à jour.</p>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-Deployment-Strategy-OCTO.png"><img class="aligncenter size-large wp-image-54684" src="http://blog.octo.com/wp-content/uploads/2015/05/Openshift3-Deployment-Strategy-OCTO-1024x430.png" alt="Openshift3-Deployment-Strategy-OCTO" width="640" height="269"/></a></p>
<p style="text-align:justify;">En complément de ces <b>modes de <em>build</em> et de déploiement</b>, OpenShift 3 offre la possibilité de définir ses propres <strong>« <em>blue prints</em> »</strong> applicatifs sous forme de fichiers « <em><a rel="nofollow" target="_blank" href="https://github.com/openshift/origin/blob/master/examples/sample-app/application-template-custombuild.json">templates</a></em> » au format Json ou Yaml. Ces « <em>blue prints</em> » décrivent à la fois la <strong>topologie de l’architecture</strong> de l’application et la <strong>politique de déploiements</strong> des containers. Le schéma ci-dessous illustre l’assemblage des différents composants d’un « <em>template</em> » d’une application 3-tiers dans OpenShift.</p>
<div id="attachment_54624" style="width:650px;" class="wp-caption aligncenter"><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/05/Architecture-OpenShift-v3-OCTO-Technology-Edouard-DEVOUGE.png"><img class="wp-image-54624 size-large" src="http://blog.octo.com/wp-content/uploads/2015/05/Architecture-OpenShift-v3-OCTO-Technology-Edouard-DEVOUGE-1024x695.png" alt="Architecture Application Template OpenShift v3 " width="640" height="434"/></a><p class="wp-caption-text">Schéma d’une architecture d’une application 3 tiers dans OpenShift v3</p></div>
<p>&nbsp;</p>
<p style="text-align:justify;">Les différents composants assemblés dans un « <em>template</em> » sont en partie hérités des<strong> concepts de Kubernetes</strong>. Les principaux objets à retenir sont les suivants :</p>
<ul style="text-align:justify;">
<li>Un « <strong>POD </strong>» est un environnement d’exécution de container(s) Docker local à un serveur (on déploiera deux types de containers sur un même POD s’il est nécessaire de partager des ressources locales).</li>
<li>Un « <strong>Service </strong>» est un point d’entrée (VIP) rendant abstrait un accès « load-balancé » à un groupe de containers identiques. En principe, on déploie un Service par <em>tiers</em> de l’architecture.</li>
<li>Un « <strong>Service Deployer </strong>» <em>ou « Deployment Config » </em>: est un objet qui décrit une politique de déploiement d’un container sur la base de <em>triggers</em> (par exemple : redéployer lorsqu’une nouvelle version d’une image est disponible dans la <em>registry</em> Docker)</li>
<li>Un « <strong>Replication Controller </strong>» est un composant technique en charge de la résilience des POD</li>
<li>Une « <strong>Route </strong>» expose un point d’entrée (DNS <em>hostname</em> ou VIP) à l’extérieur d’une application</li>
</ul>
<p style="text-align:justify;">Grâce à ses différents mécanismes de déploiement et à la possibilité de définir ses propres « <em>blue prints</em> », OpenShift v3 se plie aux <strong>architectures applicatives les plus complexes et exigeantes</strong>.</p>
<h1><strong>Sous le capot</strong> <strong>: une architecture élégante</strong></h1>
<p style="text-align:justify;">Le déploiement d’une infrastructure OpenShift 3 peut se faire soit de manière <strong><em>standalone</em></strong> (en déployant l’image Docker suivante : « <a rel="nofollow" target="_blank" href="https://github.com/openshift/origin/#getting-started">openshift/origin</a> »), soit de manière <strong>distribuée</strong> en utilisant les playbooks <strong>ANSIBLE</strong> fournis par OpenShift. Dans ce dernier cas, on déploie sur des serveurs des <strong>rôles</strong> de type « Master » ou de type « Node ».</p>
<p style="text-align:justify;">Les nœuds de type « <strong>Master</strong> » servent à la fois à :</p>
<ul style="text-align:justify;">
<li>traiter les requêtes à l’API d’administration (en provenance du CLI ou du portail Web)</li>
<li>réaliser les opérations de <em>build</em> des images et de déploiement des containers</li>
<li>assurer la résilience des PODs (réplication)</li>
</ul>
<p style="text-align:justify;">Les « <strong>Masters</strong> » utilisent un annuaire distribué <a rel="nofollow" target="_blank" href="http://thenewstack.io/about-etcd-the-distributed-key-value-store-used-for-kubernetes-googles-cluster-container-manager/">etcd</a> pour le <strong>partage de configuration</strong> et la <strong>découverte des services</strong>.</p>
<p style="text-align:justify;">Les « <strong>Nodes</strong> » hébergent les PODs et exécutent des <strong>containers (application</strong> et/ou <strong><em>Registry</em>)</strong>.</p>
<div id="attachment_54625" style="width:650px;" class="wp-caption aligncenter"><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/05/Architecture-OpenShift-v3-OCTO-Technology.png"><img class="wp-image-54625 size-large" src="http://blog.octo.com/wp-content/uploads/2015/05/Architecture-OpenShift-v3-OCTO-Technology-1024x619.png" alt="Architecture OpenShift v3 - OCTO Technology" width="640" height="387"/></a><p class="wp-caption-text">Schéma d’architecture de déploiement d’une infrastructure OpenShift v3</p></div>
<p>&nbsp;</p>
<p style="text-align:justify;">L’architecture ainsi proposée est à la fois <strong>distribuée</strong>, <strong><em>scalable</em></strong> et <strong>résiliente</strong>. Le seul bémol concernant le passage à l&rsquo;échelle : le <strong>provisionnement</strong> et la <strong>gestion de la capacité des serveurs</strong> sous-jacents restent à réaliser <strong>manuellement</strong> pour le moment.</p>
<p style="text-align:justify;">Il est possible d’interagir avec la plateforme au travers de son <strong>API REST</strong>, en <strong>CLI</strong> ou via son <strong>portail Web</strong> (uniquement en lecture seule, pour le moment).</p>
<div id="attachment_54635" style="width:802px;" class="wp-caption aligncenter"><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/05/Portail-OpenShift-v3-OCTO.png"><img class=" wp-image-54635" src="http://blog.octo.com/wp-content/uploads/2015/05/Portail-OpenShift-v3-OCTO.png" alt="Portail web d&#x002019;administration d&#x002019;OpenShift v3" width="792" height="367"/></a><p class="wp-caption-text">Portail web d’administration d’OpenShift v3</p></div>
<h1><strong>Le point de vue d’OCTO </strong></h1>
<p style="text-align:justify;">OpenShift 3 propose une passerelle intéressante du monde du « <em>Platform-as-a-Service</em> » vers le monde du « <em>Container-as-a-Service</em> » (CaaS). La solution proposée par Red Hat est <strong>audacieuse</strong> et son <strong>architecture est à l&rsquo;état de l&rsquo;art</strong>. Nous apprécions particulièrement le format de spécification des « <em>blue prints</em> » d’architecture et d’orchestration de déploiement.</p>
<p style="text-align:justify;">Dans sa version actuelle (bêta 3), OpenShift met peu l’accent sur <strong>l’exploitabilité de la plateforme</strong>. Il faudra donc <strong>attendre</strong> encore un peu avant de l’employer en <strong>production</strong>. Toutefois, on retrouve à la <em><a rel="nofollow" target="_blank" href="https://trello.com/b/nbkIrqKa/openshift-origin-infrastructure">roadmap</a></em> des <em>user stories</em> à ce sujet :</p>
<ul>
<li style="text-align:justify;"><strong>concentration de log</strong> avec <a rel="nofollow" target="_blank" href="https://www.elastic.co/products/elasticsearch">ElasticSearch</a>&#8211;<a rel="nofollow" target="_blank" href="https://www.elastic.co/products/logstash">Logstash</a>&#8211;<a rel="nofollow" target="_blank" href="https://www.elastic.co/products/kibana">Kibana</a> ou <a rel="nofollow" target="_blank" href="http://www.fluentd.org/">Fluentd</a></li>
<li style="text-align:justify;"><strong>monitoring</strong> avec <a rel="nofollow" target="_blank" href="https://github.com/GoogleCloudPlatform/heapster">Heapster</a>,</li>
<li style="text-align:justify;"><strong>métrologie</strong>,</li>
<li style="text-align:justify;">facilités pour le <strong>déploiement</strong> de clusters.</li>
</ul>
<p>Apprendre à modéliser une application dans OpenShift 3 constitue selon nous, <strong>un nouveau métier</strong> et à ce titre <strong>requiert de nouvelles compétences</strong> afin de se poser les bonnes questions : Comment organiser les conteneurs? Faut-il utiliser des routes ou des services? Comment gérer les données (persistence, réplication, sauvegarde)? Comment gérer le multi-tenant? Que devient mon usine de développement et de déploiement (UDD)?</p>
<p>En synthèse, cette solution de <strong>PaaS privé</strong> s&rsquo;annonce <strong>très prometteuse</strong>. Elle permet de <strong>réduire le <em>time to market</em></strong> en automatisant dès le début du projet, les <strong>processus de construction</strong> et de <strong>déploiement</strong> d&rsquo;une application. Elle est <strong>compatible</strong> avec les <strong>architectures Web les plus complexes, </strong>bien que les problématiques de la <strong>gestion des données</strong> et de l&rsquo;intégration avec des services externes ne soient que partiellement adressées pour le moment.</p>
<p>Nous croyons qu&rsquo;Openshift 3 a tout pour <strong>s&rsquo;imposer sur le marché</strong> comme<strong> la référence</strong> en matière de <strong>PaaS privé </strong>basé sur <strong>Docker.</strong></p>
<p>&nbsp;</p>
<p><em>Pour aller plus loin : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/NewHopeKim/open-shift-and-docker-october2014">http://fr.slideshare.net/NewHopeKim/open-shift-and-docker-october2014</a></em></p>
<div class='yarpp-related-rss'>
<p>Articles suggested :</p><ol>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/comment-segment-l-offre-de-cloud-computing/" title="Comment segmenter l&rsquo;offre de cloud computing?">Comment segmenter l&rsquo;offre de cloud computing? </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/devops-corner-episode-1-chef-pour-les-nuls/" title="Devops corner, &#xe9;pisode 1 : Chef pour les nuls">Devops corner, épisode 1 : Chef pour les nuls </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/devops-corner-episode-2-chef-les-limitations/" title="Devops corner, &#xe9;pisode 2 : Chef, les limitations">Devops corner, épisode 2 : Chef, les limitations </a></li>
</ol>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Devoxx France 2015 – Compte Rendu</title>
         <link>http://blog.octo.com/devoxx-france-2015-compte-rendu/</link>
         <description>Pour sa quatrième édition, Devoxx France prenait place cette année au Palais des Congrès qui a attiré près de 2500 personnes sur 3 jours du 08 au 10 avril 2015. Une vraie réussite et une organisation rondement menée ! En guise de rappel, Devoxx est une groupe de conférence initié en Belgique qui regroupe un grand nombre [&amp;#8230;]&lt;div class='yarpp-related-rss'&gt;

Articles suggested :&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/qcon-london-2011-un-peu-de-process-beaucoup-darchitecture-et-de-la-performance-pour-passer-a-lechelle/&quot; title=&quot;QCon London 2011: un peu de process, beaucoup d&amp;rsquo;architecture et de la performance pour passer &amp;#xe0; l&amp;rsquo;&amp;#xe9;chelle&quot;&gt;QCon London 2011: un peu de process, beaucoup d&amp;rsquo;architecture et de la performance pour passer à l&amp;rsquo;échelle &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/vers-des-api-haut-niveau-pour-java-et-nosql-avec-spring-data/&quot; title=&quot;Vers des API haut niveau pour Java et NoSQL avec Spring Data&quot;&gt;Vers des API haut niveau pour Java et NoSQL avec Spring Data &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/a-quoi-sert-azul-zing/&quot; title=&quot;A quoi sert Azul Zing ?&quot;&gt;A quoi sert Azul Zing ? &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://blog.octo.com/?p=54174</guid>
         <pubDate>Tue, 28 Apr 2015 07:30:27 +0000</pubDate>
         <content:encoded><![CDATA[<p>Pour sa quatrième édition, Devoxx France prenait place cette année au Palais des Congrès qui a attiré près de 2500 personnes sur 3 jours du 08 au 10 avril 2015. Une vraie réussite et une organisation rondement menée !</p>
<p>En guise de rappel, Devoxx est une groupe de conférence initié en Belgique qui regroupe un grand nombre de développeurs du monde Java mais pas seulement. La variété des formats de conférences (keynote, university, quickie, tools-in-action, hands-on-lab) contribue à la richesse de l&rsquo;événement. Cette année on a parlé BigData, DevOps, IoT et Mobile mais aussi traditionnellement Java Modulaire et la clôture des Cast Codeurs.</p>
<p>Cet article a pour but de faire un tour d&rsquo;horizon des conférences que nous avons pu suivre, de vous donner un premier retour et de vous fournir les pointeurs pour approfondir si vous le souhaitez.</p>
<p><span id="more-54174"></span></p>
<h1>DevOps</h1>
<h2>Quand Devops rencontre BigData (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/olivier_bazoud">Olivier Bazoud</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/vincent_heuschling">Vincent Heuschling</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/QTQ-9573/Quand_DevOps_rencontre_BigData!">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="https://github.com/obazoud/devoxx-quand-devops-rencontre-bigdata/blob/master/Devoxx.France.2015-Quand.Devops.rencontre.Bigdata.pdf">Full</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://github.com/obazoud/devoxx-quand-devops-rencontre-bigdata">HOL</a></li>
</ul>
<p>Cette première session était un Hands’on, animé par Olivier Bazoud et Vincent Heuschling, je n’ai donc pas pu prendre beaucoup de notes. Les 4 exercices sont disponibles sur le GitHub et sont bien découpés. En 3 heures je n’ai pas l’impression d’être allé très loin avec Spark mais j’ai au moins pu toucher du doigt son utilisation.</p>
<p>Objectifs du Hands On Lab (HOL) :</p>
<blockquote>
<ol>
<li>Manipuler des données avec le REPL</li>
<li>Analyser des Apache Logs</li>
<li>Détecter des anomalies dans des logs réseau</li>
<li>Utiliser un cluster</li>
</ol>
</blockquote>
<p>Dans une architecture BigData, la difficulté repose souvent sur l&rsquo;analyse de logs. Deux outils principaux du BigData :</p>
<ul>
<li>Hadoop (HDFS, MapReduce, OpenSource, Google en 2006)</li>
<li>Spark (Fonctionnel, In Memory, Midsize Data, Berkeley AMPLab)</li>
</ul>
<p><strong>Spark</strong> part du postulat que la plupart des Datasets ne dépassent pas le Giga, il va pouvoir tenir dans la RAM de plusieurs machines. Quelques avantages :</p>
<ul>
<li>Rapide (RAM)</li>
<li>Fonctionnel (moins de code)</li>
<li>En pleine croissance (Spark SQL, Spark Streaming, MLlib, GraphX) en 3 ans</li>
<li>Spark Shell : permet de tester des commandes en live</li>
</ul>
<p>Les données sont stockées dans un RDD (Resilient Distributed Dataset) qui rejoint le principe habituel d’éclatement de la donnée en <b>partitions</b> qui vont être <b>exécutées sur plusieurs noeuds</b> (1 partition = 1 processus).</p>
<p><strong>Hadoop</strong> se base sur le MapReduce (splitter les fichiers sur HDFS pour les traiter parallèlement).</p>
<p>Une brève phrase de conclusion sur le Big Data en général que j’ai finalement bien aimée :</p>
<blockquote><p>&laquo;&nbsp;La difficulté du machine learning réside plus dans le choix des données, de la pondération choisie pour chaque colonne plus que de l&rsquo;algorithme d&rsquo;apprentissage en lui même.&nbsp;&raquo;</p></blockquote>
<h2>Mesos University (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/aurelien_maury">Aurélien Maury</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/pablo_lopez">Pablo Lopez</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/jean-baptiste_claramonte">Jean-Baptiste Claramonte</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/jean-pascal_thiery">Jean-Pascal Thiery</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/QWZ-4582/Mesos_University">CFP Devoxx</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://github.com/WeScale/mesos-university">Github</a></li>
</ul>
<p><img class=" wp-image-54248 size-medium alignright" src="http://blog.octo.com/wp-content/uploads/2015/04/MesosUniversity-Logo-300x92.png" alt="MesosUniversity-Logo" width="300" height="92"/>Mesos, qui signifie &laquo;&nbsp;milieu&nbsp;&raquo; en grec ancien, est un système de clustering se voulant générique : une interface de partage de ressources pour faciliter le support d&rsquo;applications distribuées. Mesos trouve son origine à l&rsquo;université de Berkeley 2009, initialement conçu pour pallier les problèmes de certaines applications distribuées comme Hadoop.</p>
<p>L&rsquo;objectif de Mesos est d&rsquo;augmenter la densité applicative dans le cluster, exploitant ainsi chaque machine qui compose le cluster de manière plus efficace, par opposition au fait d&rsquo;instancier des noeuds dont les ressources ne sont pas pleinement exploitées (ex. : un serveur web qui consomme beaucoup de mémoire mais peu de ressources CPU). Son défi est de fournir ce dont les applications distribuées ont besoin (signal start/stop, monitor-clean, etc.). D&rsquo;autre part, Mesos supporte tous les types de noeuds au sein de son cluster (VM, conteneur (LXC, Docker), bare metal).</p>
<p>L&rsquo;architecture de Mesos repose sur un pattern master/slave. Les <strong>slaves</strong> informent le master des ressources dont ils disposent via des <strong>offres</strong>. Ces dernières contiennent obligatoirement la quantité de CPU et de RAM disponible. D&rsquo;autres ressources sont implémentées par défaut. Le <strong>master</strong> collecte les offres et les distribue aux frameworks. La notion de <strong>framework</strong> correspond au couplage d&rsquo;un <strong>scheduler</strong> qui va, avec le master, lancer les tâches et d&rsquo;un <strong>executor</strong>, facultatif, qui va exécuter les tâches. Pour éviter que le master et le scheduler ne deviennent des SPOF, il va être nécessaire de les redonder. C&rsquo;est là qu&rsquo;intervient <a rel="nofollow" target="_blank" href="https://zookeeper.apache.org/">Apache Zookeeper</a> qui se base sur la notion de <em>quorum</em> pour l&rsquo;élection d&rsquo;un master, les autres devenant <strong>standby master</strong>.</p>
<blockquote><p>Dans les faits, les serveurs dont on dispose sont toujours hétérogènes !</p></blockquote>
<p>On peut définir ses propres ressources ce qui est pratique dans le cas d&rsquo;un cluster que l&rsquo;on construit petit à petit et dont les machines sont donc de puissances et fonctionnalités hétérogènes (ex: on achète une machine avec un GPU car on a besoin de traiter des images).</p>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/04/MesosUniversity-Mesosphere.jpg"><img class="aligncenter size-full wp-image-54250" src="http://blog.octo.com/wp-content/uploads/2015/04/MesosUniversity-Mesosphere.jpg" alt="MesosUniversity-Mesosphere" width="638" height="359"/></a></p>
<p>Mesos est un projet qui va apporter une grande valeur ajoutée à votre cluster de machine pour l&rsquo;exploiter au mieux. Des frameworks tels que <strong>Marathon</strong> ou <strong>Chronos</strong> de la <a rel="nofollow" target="_blank" href="https://mesosphere.com/">Mesosphere</a> enrichissent le framework pour aisément pouvoir construire son propre PaaS et gérer ses jobs. Les speakers ont également mis en avant l&rsquo;importance du DevOps dans l&rsquo;utilisation réussie de Mesos. En effet les développeurs sont les mieux placés pour savoir les ressources dont ont besoin leurs applications pour fonctionner.</p>
<p>En conclusion, pour réussir son déploiement Mesos :</p>
<blockquote><p>Keep <strong>C.A.L.M.S</strong> ! (<strong>C</strong>ulture <strong>A</strong>utomation <strong>L</strong>ean <strong>M</strong>easurement <strong>S</strong>haring)</p></blockquote>
<h2>Uniformisez vos postes de développement avec Docker Compose (anciennement Fig) (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/etienne_peiniau">Etienne Peiniau</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/ITF-5957/Uniformisez_vos_postes_de_developpement_avec_Fig">CFP Devoxx</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://github.com/etiennepeiniau">Github</a></li>
</ul>
<p>Ce Quickie par Etienne Peiniau présentait l’outil Fig plutôt connu dans l’écosystème Docker, qui est devenu depuis peu <a rel="nofollow" target="_blank" href="https://docs.docker.com/compose">Docker Compose</a> suite au rachat par Docker. Il répond aux cas d&rsquo;utilisation suivants :</p>
<ol>
<li>Déploiement des dépendances applicatives</li>
<li>Réplication sur les postes de développement</li>
</ol>
<p>Pour le configurer, on écrit un fichier <i>docker-compose.yml</i> dans son projet qui va assembler à la racine l&rsquo;ensemble des services docker à bootstrapper.</p>
<p>Quelques commandes utiles (qui s&rsquo;apparentent fortement à la ligne de commandes Docker) :</p>
<blockquote>
<ul>
<li><i>docker-compose up</i> : bootstraper l&rsquo;ensemble des conteneurs</li>
<li><i>docker-compose logs</i> : voir tous les logs en sortie standard des conteneurs</li>
<li><i>docker-compose ps</i> : lister les conteneurs de cette composition</li>
</ul>
</blockquote>
<p>En conclusion, j&rsquo;entendais souvent parler de Fig sans trop comprendre à quoi m&rsquo;attendre. Après ce quickie, cet outil me semble à la fois indispensable et très simple à utiliser si on a déjà quelques bases en Docker.</p>
<h2>Groovy&rsquo;s release process (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/guillaume_laforge">Guillaume Laforge</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/cedric_champeau">Cédric Champeau</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/fred_simon">Fred Simon</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/MTL-4442/Groovy_et_son_process_de_release:_nous_l%E2%80%99avons_rendu_%C2%AB_grooooooovy_%C2%BB_">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="https://speakerdeck.com/glaforge/groovys-release-process-devoxx-2015">Full</a></li>
</ul>
<p>Une présentation par l’équipe Groovy, dont Guillaume Laforge, et sponsorisé par <a rel="nofollow" target="_blank" href="http://www.jfrog.com/">JFrog</a>, l’outil de management d’artéfacts utilisés par Groovy depuis peu. Le talk a permis de retracer l&rsquo;histoire de Groovy et l&rsquo;évolution de son processus de release pour finir par une petite apparté sur JFrog.</p>
<p>Groovy qui est un compilateur a des besoins spécifiques qui sortent du lifecycle classique de maven. Initialement le déploiement était effectué par Maven avec le plugin Jelly mais manquait de flexibilité. Il leur a été nécessaire de passer à Ant pour plus de souplesse avant de finalement utiliser Gradle, lui même basé sur Groovy.</p>
<p>Concernant l&rsquo;intégration continue du projet, initialement celui-ci utilisait Codehaus qui :</p>
<ul>
<li>se base sur WebDAV pour pousser les artéfacts et la documentation</li>
<li>prenait plusieurs secondes pour lister / changer de dossier</li>
<li>prenait plus d&rsquo;une heure pour uploader des centaines de fichiers Javadoc</li>
<li>est en cessation d’activité depuis février 2015 et les dépôts sont en cours de migration</li>
</ul>
<p>Finalement Groovy est passé à Team City développé par Jetbrains. Ce dernier dispose d&rsquo;une communauté qui maintient des agents de build spécifiques à différentes plateformes. Les besoins de Groovy sont très spécifiques et il ont une grosse combinatoire à tester pour le langage :</p>
<ul>
<li>Plusieurs versions du JDK (6, 7, 8, 9)</li>
<li>Invoke dynamic en 7+</li>
<li>Toutes les branches de maintenances Groovy</li>
<li>Backward compatibility avec Gradle, Grails, etc&#8230;</li>
</ul>
<p>D&rsquo;autre part il leur manquait une grande partie d&rsquo;automatisation et de nombreux workflows ont été longtemps effectués manuellement (tagging, mise à jour de version, VCS, etc.) engendrant de nombreuses erreurs. Un autre problème se posait pour la maintenance des codes insérés dans la documentation qui finissaient par être obsolètes. Désormais, la documentation réalisée sous Ascii Doctor permet de tester tous les codes unitairement !</p>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/04/Groovy-JFrog.png"><img class="aligncenter wp-image-54233" src="http://blog.octo.com/wp-content/uploads/2015/04/Groovy-JFrog.png" alt="Groovy-JFrog" width="640" height="356"/></a></p>
<p>Finalement, Groovy utilise JFrog pour la gestion de ses artéfacts. <strong>Artifactory</strong> est l&rsquo;équivalent d&rsquo;un dépôt Nexus qui permet de gérer les différents snapshots générés à chaque commit. Il supporte Python, Debian, Docker, npm, maven, gradle, ivy, nuget, rpm, yum, etc. <strong>Bintray</strong> stocke les releases qui sont signées et déployées sur Bintray JCenter (synchronisé avec Maven Central). Le site web et la documentation peuvent être uploadés et mis à jour automatiquement.</p>
<h2>Scaling Docker with Kubernetes (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/carlos_sanchez">Carlos Sanchez</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/WXY-1157/Scaling_Docker_with_Kubernetes">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://www.slideshare.net/carlossg/scaling-docker-with-kubernetes">Full</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://github.com/carlossg/kubernetes-jenkins">Github</a> <a rel="nofollow" target="_blank" href="https://github.com/jenkinsci/kubernetes-plugin">Plugin Jenkins</a></li>
</ul>
<p>Google déploie près de 20 milliards de conteneurs par semaine ! Docker, qui adresse les applications orientées services essentiellement, est une nouvelle solution qui apporte ses propres problèmes&#8230;</p>
<p>Docker combine LXC et UFS (Union FS), un système de fichiers qui présente différentes couches. Linux est requis (cf. Boot2Docker MAC/WIN) mais on s&rsquo;approche du <em>Build once, run anywhere</em> et de nombreux dépôts officiels sont disponibles pour récupérer les images Docker</p>
<blockquote><p><span style="text-decoration:underline;">Conteneurs vs VM :</span></p>
<p>Les conteneurs sont isolés mais partagent le même OS (et librairies lorsque c&rsquo;est possible). Les VM virtualisent au dessus d&rsquo;un OS Hôte ou d&rsquo;un Hyperviseur qui va initialiser un OS complet pour chaque VM.</p>
<p><span style="text-decoration:underline;">DevOps :</span></p>
<p>Docker est un outil orienté <strong>développeur</strong> car il permet d&rsquo;exécuter son app localement, de la configurer et d&rsquo;exposer le minimum. Il est orienté <b>opérationnel</b> car il permet de masquer l&rsquo;application et de laisser les opérationnels se concentrer sur les problématiques d&rsquo;infra.</p></blockquote>
<p>Kubernetes a été crée par Google il y a un peu plus d&rsquo;un an et vient adresser la problématique de gestion de conteneurs sur plusieurs hôtes. Il peut être qualifié de <em>container cluster orchestration</em>. Il permet de configurer de multiples hôtes (nodes / minions) grâce notamment à une API et offre la possibilité d&rsquo;agir plus ou moins sur l&#8217;emplacement des conteneurs spawnés. D&rsquo;autre part, il propose un monitoring plus haut niveau que Docker.</p>
<p>Kubernetes est composé d&rsquo;un <strong>master</strong> qui joue le rôle de serveur d&rsquo;API et se base sur ETCD pour la synchronisation de configuration. Il s&rsquo;articule autour de <b>nodes</b> qui se composent à minima de Docker, ETCD, SkyDNS et Kubelet (qui s&rsquo;assure de l&rsquo;état des pods). Enfin les <b>pods</b> sont un groupe de conteneurs collocalisés qui partagent le même network/namespace/ip et volume (host mounted, empty volumes, GCE data disks, &#8230;). Pour chaque pod on configurera le nom de l&rsquo;image Docker, les ports à exposer, les volumes à monter et un label (tag) si nécessaire.</p>
<p>De nombreux fournisseurs de conteneurs existent déjà :</p>
<ul>
<li>Google Container Engine</li>
<li>Azure</li>
<li>vSphere</li>
<li>Rackspace</li>
<li>oVirt</li>
<li>Vagrant</li>
<li>CloudStack</li>
<li>Ubuntu</li>
<li>Tectonic (on top of CoreOS)</li>
</ul>
<p>Carlos Sanchez a cité pendant sa session plusieurs projets/plugins autour de Kubernetes et le support déjà assuré par de nombreux providers nous pousse à vouloir tester rapidement cet outil !</p>
<h1>*Data</h1>
<h2>InfluxDB : La base de données chronologique OpenSource autonome (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/nicolas_muller">Nicolas Muller</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/UVF-7272/InfluxDB_:_la_base_de_donnees_chronologique_OpenSource_autonome">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/NicolasMuller/devoxx-france-2015-influxdb">Full</a></li>
</ul>
<p>Un quickie de Nicolas Muller présentant la base de données <a rel="nofollow" target="_blank" href="http://influxdb.com/">InfluxDB</a>, opensource par ErrPlane (MIT License) écrit en Go, taillée pour le stockage de <strong>séries temporelles</strong>. Une <strong>time serie </strong>est un regroupement d&rsquo;événements qui se sont passés dans le temps :</p>
<ul>
<li>fichier log</li>
<li>timeline twitter</li>
<li>git commits</li>
<li>pages vues</li>
<li>&#8230;</li>
</ul>
<p>En 2015, on attend d&rsquo;un outil de collecte, stockage et visualisation d&rsquo;événements qu&rsquo;il soit simple à installer et administrer, adapté au BigData, qu&rsquo;il supporte HTTP et JSON et qu&rsquo;il soit bâti sur des API. Ce n&rsquo;est pas encore vraiment le cas des outils existants :</p>
<ul>
<li>Graphite : PB d&rsquo;installation, pas de scaling aisé</li>
<li>OpenTSDB</li>
<li>Collectd</li>
<li>Sensu</li>
<li>DropWizard</li>
<li>&#8230;</li>
</ul>
<p>InfluxDB répond à ces contraintes. Il est simple à installer et manager, n&rsquo;a pas de dépendances externes, propose une interface HTTP et est scalable horizontalement. Il propose également l&rsquo;échantillonnage de données par période de temps ce qui est une fonctionnalité souvent attendue.</p>
<p>InfluxDB est assez simple à appréhender. Il est basé sur le concept de <strong>Database</strong> équivalent à celui qu&rsquo;on connait avec les SGBD classiques. Le concept de <strong>Time Series</strong> est une sorte de table pour le temps avec un <em>sequence number</em> et des colonnes. Une série temporelle est composée de points (ou événements) correspondant en quelque sorte aux lignes d&rsquo;une base de données SQL. Enfin InfluxDB propose une langage SQL Like pour requêter des séries.</p>
<p>Nicolas Muller a évoqué un certain nombre de bonnes pratiques connues à ce jour.</p>
<p>InfluxDB est très adapté à des nombreuses séries avec peu de colonnes. Requêter sur des colonnes autre que le temps est possible mais entrainera de mauvaises perfs. Dans ces conditions, on crée autant de tables qu&rsquo;il y a de valeur métier.</p>
<p>En terme de nommage, la règle à suivre est la suivante :</p>
<pre> <i>&lt;tagName&gt;.&lt;tagValue&gt;.serieName</i></pre>
<p><span style="text-decoration:underline;">Exemples  v0.8 :</span></p>
<blockquote>
<ul>
<li>arduino.uno.shield.ethernet.sensor.dht11.temperature</li>
<li>arduino.uno.shield.ethernet.sensor.dht12.temperature</li>
<li>arduino.uno.shield.wifi.sensor.dht22.humidity</li>
<li>&#8230;</li>
</ul>
</blockquote>
<p><span style="text-decoration:underline;">En V0.9, les tags seront gérés directement par Influx :</span></p>

<div class="wp_codebox"><table><tr id="p541747"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p54174code7"><pre class="javascript" style="font-family:monospace;"><span style="color:#009900;">&#123;</span>
    <span style="color:#000066;">name</span><span style="color:#339933;">:</span> <span style="color:#339933;">&lt;</span>b<span style="color:#339933;">&gt;</span><span style="color:#3366CC;">&quot;temperature&quot;</span><span style="color:#339933;">&lt;/</span>b<span style="color:#339933;">&gt;</span>
    tags<span style="color:#339933;">:</span> <span style="color:#009900;">&#123;</span>
        arduino<span style="color:#339933;">:</span> <span style="color:#339933;">&lt;</span>b<span style="color:#339933;">&gt;</span><span style="color:#3366CC;">&quot;uno&quot;</span><span style="color:#339933;">&lt;/</span>b<span style="color:#339933;">&gt;</span>
        shield<span style="color:#339933;">:</span> <span style="color:#3366CC;">&quot;ethernet&quot;</span>
        sensor<span style="color:#339933;">:</span> <span style="color:#3366CC;">&quot;dht11&quot;</span>
    <span style="color:#009900;">&#125;</span>
<span style="color:#009900;">&#125;</span></pre></td></tr></table></div>

<p>A noter qu&rsquo;une migration automatique en V0.9 d&rsquo;InfluxDB sera possible si on a respecté la convention de nommage ci-dessus en V0.8 et inférieur. De plus, la nouvelle version de Grafana va supporter directement la V0.9.</p>
<p>InfluxDB semble être une techno prometteuse dans le domaine des séries temporelles omniprésentes de nos jours (IoT, monitoring, etc.). Le produit évolue rapidement et Grafana, l&rsquo;un des incontournables de la DataViz, est associé à InfluxDB et OpenTSB qui permet des montées de versions synchronisées de ces outils.</p>
<h2>Avro : la souplesse du JSON, les performances du binaire (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/alexandre_victoor">Alexandre Victoor</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/MPO-1830/Avro:_la_souplesse_du_JSON,_les_performances_du_binaire">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/alexvictoor/avro-devoxx080415">Full</a></li>
</ul>
<p>Un quickie par Alexandre Victoor (SCGIB) présentant Apache Avro, un système de stockage initialement utilisé pour le stockage distribué dans Hadoop qui est maintenant un projet à part entière chez Apache.</p>
<p>Avro permet d’échanger du JSON (ou binaire ou autre) pour lequel on va pouvoir définir un schéma de référence pour ses données. Ainsi, à l’initialisation, client et serveur réalisent un HandCheck pour vérifier qu’ils sont en accord sur un schéma et commencer à échanger. Dans le cas contraire, la connexion est coupée.</p>
<p>Aux données échangées est associé un hash correspondant au schéma de données utilisé. Ceci permet de facilement faire évoluer un schéma d’échange de données dans Avro et de le diffuser petit à petit vers ses clients. Le schéma complet et donc stocké côté serveur et l’overhead à chaque échange est donc limité à quelques bits pour connaître l’identifiant du schéma.</p>
<h2>Applications Concurrentes Polyglottes avec Vert.x (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/julien_viet">Julien Viet</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/SDO-9958/Applications_Concurrentes_Polyglottes_avec_Vert.x">CFP Devoxx</a></li>
</ul>
<p>Julien Viet, ingénieur sur le projet <a rel="nofollow" target="_blank" href="http://vertx.io">Vert.x</a>, nous a fait une présentation de ce framework polyglotte dont on entend beaucoup parler depuis un certain temps. Vert.x est un projet sous la fondation Eclipse financé par RedHat, actuellement en version 2.1.x de production, la version 3 milestone 4 est en cours de développement. Java 8 obligatoire depuis la version 3 qui utilise beaucoup les expressions lambda.</p>
<p>Vert.x est une stack pour développer des applications pour la JVM inspiré par Erlang/OTP et Node.js pour les paradigmes asynchrones non bloquants. Il est polyglotte (Java, JS, Groovy, JRuby, Jython, Scala, &#8230;), léger et embarquable adapté aux hautes performances (support du cluster / failover).</p>
<p>Le framework suit le modèle réactif (il implémente <a rel="nofollow" target="_blank" href="http://www.reactive-streams.org/">reactive-streams</a> en version 3) éliminant ainsi les problèmes de concurrence (l&rsquo;utilisation du même thread au cours de l&rsquo;exécution est garantie). Vert.x est composé d&rsquo;un core léger avec peu de dépendances et expose une API asynchrone.</p>
<p>Vert.x est fondé sur deux principaux composants :</p>
<blockquote>
<ul>
<li><strong>Verticle</strong> qui est déployé dans Vert.x quel que soit le langage et exécuté sur un thread unique. La communication avec lui se fait par messages. De manière générale on va, pour une application donnée, tenter de séparer les différentes briques en autant de Verticles.</li>
<li>Le <strong>Bus d&rsquo;événements</strong> est le système nerveux de Vert.x. Il force l&rsquo;isolation des Verticles qui échangent des messages grâce à lui. L&rsquo;échange est essentiellement Point à Point de données immuables dans le format souhaité (généralement JSON ou byte).</li>
</ul>
</blockquote>
<p>Enfin, basé sur Nashorn et SockJS, Vert.x est également utilisable dans le navigateur qui fourni la même API que pour le serveur. En conclusion Vert.x favorise l&rsquo;écriture d&rsquo;architectures en microservices par son modèle asynchrone et sa communication par event bus. Sa compatibilité multilangages (automatisée à partir de la version 3) en facilitera d&rsquo;autant plus son adoption.</p>
<h2>Algorithmes distribués pour le Big Data (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/duyhai_doan">DuyHai DOAN</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/HLV-3716/Algorithmes_distribues_pour_le_Big_Data">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/doanduyhai/algorithmes-distribues-pour-le-big-data">Full</a></li>
</ul>
<p><a rel="nofollow" target="_blank" href="https://en.wikipedia.org/wiki/HyperLogLog">HyperLogLog</a> est un algorithme qui consomme peu de mémoire pour gérer des compteurs sur un très grand nombre de données, moyennant une perte de précision de quelques pourcents. Pour cela, il faut calculer des probabilités basées sur les données rencontrés (hash a forte variabilité) en analysant le nombre de bits consécutifs à zéro. Il faut également faire des moyennes pondérées pour éviter que certaines valeurs occasionnelles faussent les résultats.</p>
<p><a rel="nofollow" target="_blank" href="https://fr.wikipedia.org/wiki/Paxos_%28informatique%29">Paxos</a> est un algorithme de consensus distribué. Dans les faits, un maître gère les conciliations et en cas de problème, un nouveau maître prend la main. Il est capable de terminer les travaux du premier. En cas de collision, un délai aléatoire est ajouté avant la reprise.</p>
<p>DuyHai DOAN a eu l’ambition de nous expliquer les algorithmes <a rel="nofollow" target="_blank" href="https://en.wikipedia.org/wiki/HyperLogLog">HyperLogLog</a> et <a rel="nofollow" target="_blank" href="https://fr.wikipedia.org/wiki/Paxos_%28informatique%29">Paxos</a>. Il s&rsquo;est plutôt concentré sur les justifications sous-jacentes aux algorithmes que sur l&rsquo;implémentation réelle ou l&rsquo;utilisation. Mission accomplie !</p>
<h2>Jeu de rôle massivement multijouer avec Firebase (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/thomas_guerin">Thomas Guerin</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/alexis_moussine-pouchkine">Alexis Moussine-Pouchkine</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/YEM-2762/Jeu_de_role_en_ligne_massivement_multijoueur_avec_Firebase">CFP Devoxx</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://play.google.com/store/apps/details?id=fr.devoxx.egress">Play Store</a></li>
</ul>
<p>Pour finir la journée du jeudi, une présentation de la base de données Firebase en action dans un jeu vidéo aux allures d’Ingress ! L&rsquo;objectif de ce tools-in-action était de faire un jeu android pour capturer les gares avant que les autres ne le fasse.</p>
<p>Firebase est une BDD NoSQL orientée document qui offre un mécanisme de synchronisation de la donnée en temps réel. Elle se charge pour nous de l&rsquo;abstraction de la couche transport (WebSocket, SEE, &#8230;), des problématiques de coupures réseaux et des fallbacks pour support les anciennes plateformes.</p>
<p>En plus de se charger du problème de synchronisation, Firebase propose de nombreux SDK qui permet de profiter de ce service pour toutes ses applications (Android, Java, Angular, iOS, Ember, React, Node, etc.).</p>
<p>Pour <a rel="nofollow" target="_blank" href="https://play.google.com/store/apps/details?id=fr.devoxx.egress">Egress</a>, <a rel="nofollow" target="_blank" href="https://github.com/firebase/geoFire">GeoFire</a> a été utilisé pour apporter le support de la localisation. De manière concrète, on va créer un objet Firebase mappé sur l&rsquo;url de la base de données. L&rsquo;authentification sera gérée par Firebase (ex : ref.authWithOAuthPopup), puis on définit des callbacks côté client :</p>
<ul>
<li><em>geoQuery_stations.on(&laquo;&nbsp;key_entered&nbsp;&raquo;)</em> : on sélectionne une zone sur la carte, geoQuery va chercher les gares correspondantes</li>
<li><em>geoQuery_stations.on(&laquo;&nbsp;key_exited&nbsp;&raquo;)</em> : on se déplace dans une autre zone, geoQuery va masquer les gares correspondantes</li>
</ul>
<p>En conclusion, avec cette petite démo fun, on voit rapidement que Firebase va plus loin qu&rsquo;une base de données classique. Non seulement elle propose un mécanisme de synchronisation des différentes applications par événements mais aussi elle offre des fonctions pratiques comme l&rsquo;authentification, où la localisation via la librairie GeoFire.</p>
<h1>Performance</h1>
<h2>Programmation Lock-Free : les techniques des pros (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/jean-philippe_bempel">Jean-Philippe Bempel</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/MFY-0069/Programmation_Lock-Free_:_les_techniques_des_pros">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/JeanPhilippeBEMPEL/programmation-lock-free-les-techniques-des-pros-1ere-partie?related=1">Partie 1</a>, <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/JeanPhilippeBEMPEL/programmation-lock-free-les-techniques-des-pros-2eme-partie">Partie 2</a></li>
</ul>
<p>Jean-Philippe Bempel de ULLINK a partagé ses connaissances sur les différentes approches pour proposer des algorithmes sans verrou. Il a évoqué les implémentations proposées depuis Java 7 et les améliorations dans Java 8. Il a évoqué les algorithmes immuables <a rel="nofollow" target="_blank" href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CopyOnWriteArrayList.html">CopyOnWriteArrayList&lt;E&gt;</a> pour insister sur les impacts au niveau du GC.</p>
<p>La stratégie lock striping utilisée par l&rsquo;implémentation Java 7 de <a rel="nofollow" target="_blank" href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html">ConcurrentHashMap&lt;K,V&gt;</a> consistait à <em>sharder</em> les données en bloc pour y associer des locks. Cette approche n’est plus utilisée en Java 8.</p>
<p>Il a par ailleurs expliqué les différents type de barrières, gérées par le compilateur et/ou le processeur. Il a évoqué les différents types de verrous processeurs, en lecture et écriture. A noter qu&rsquo;un processeur x86 n’a besoin que d’un lock en écriture, via des instructions assembleurs proposées par la classe Unsafe. Il a également rappelé que le passage en Kernel n’implique pas forcément un Context Switch. Cela dépend du traitement demandé. Il y a traversée en Ring 0 du processeur.</p>
<p>Finalement, il nous conseille de suivre le blog de Martin Thomson (<a rel="nofollow" target="_blank" href="http://mechanical-sympathy.blogspot.fr/">Mechanical Sympathy</a>) qui prône le rapprochement du code au plus près de la machine et du processeurs. Une conférence de très haut niveau, riche en information, simple dans les explications et technique comme on aime !</p>
<h2>HAProxy level 2 : des bases aux problématiques de scaling (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/nicolas_helleringer">Nicolas Helleringer</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/UUB-9766/HAProxy_level_2_:_des_bases_aux_problematiques_de_scaling">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/NHelleringer/devoxx-fr-2015-haproxy">Full</a></li>
</ul>
<p>Ce tools-in-action proposait un retour d’expérience sur l&rsquo;utilisation de HAProxy dans un test géant effectué pour Critéo.</p>
<p>En résumé, HAProxy tient très bien la charge tant qu’il n’est pas saturé en CPU. Une petite combinaison d’outils permet d’avoir de la haute disponibilité entre plusieurs instances HAProxy.</p>
<h2>Un monde où 1ms vaut 100 M€ (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/thierry_abalea">Thierry Abaléa</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/alexandre_victoor">Alexandre Victoor</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/KIN-3738/http%2F2:_A_deux_c'est_mieux!">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/ThierryAbalea/un-monde-o-1-ms-vaut-100-m-devoxx-france-2015">Full</a></li>
</ul>
<p>Dans le domaine de la finance de marché, les performances sont de l&rsquo;ordre de la micro seconde. En effet, il faut profiter d&rsquo;opportunités financières qui sont disputées par des dizaines de milliers de concurrents. Aux Etats Unis, les stock options représentent 1,1M de transactions par seconde.</p>
<p><span style="text-decoration:underline;">Objectifs :</span></p>
<blockquote><p>La conférence se construisait autour d&rsquo;une application de finance de marché dont il fallait optimiser les performances.  L&rsquo;architecture initiale de l’application était la suivante :</p>
<ul>
<li>un thread unique qui va jouer le rôle d&rsquo;event loop</li>
<li>des threads qui interceptent les IO en amont et en aval</li>
<li>la communication entre les deux est réalisée par une BlockingQueue</li>
</ul>
</blockquote>
<p>Pour se mettre en jambe, le talk a commencé par un petit quizz :</p>
<ol>
<li>Pour une matrice donnée, quel est le parcours le plus rapide entre :
<ol>
<li>celui en <strong>ligne</strong> : car il est compatible avec les caches processeurs</li>
<li><del>celui en <strong>colonne</strong></del> : celui-ci invalidera constamment le cache le rendant inefficace</li>
</ol>
</li>
<li>Pour calculer une valeur absolue, il est plus efficace :
<ol>
<li>d&rsquo;utiliser <strong>Math.abs</strong> : on fait simplement une opération sur les bits</li>
<li><del>de faire un <strong>if</strong> sur le signe</del> : les données étant aléatoire sur le signe, le mécanisme de prédiction du processeur va être inefficace et on va perdre beaucoup de cycle d&rsquo;horloge à changer de branche de prédiction.</li>
</ol>
</li>
</ol>
<blockquote><p>En matière de performance, l&rsquo;une des obsessions est de constamment mesurer. Faire constamment du microbenchmarking avec JMH par exemple car une intuition d’optimisation peut se révéler fausse ou pire contre productive.</p></blockquote>
<p>L’outil statistique est primordial dans les mesures de performance. Attention, utiliser la moyenne pour la latence d&rsquo;un système n&rsquo;est pas forcément une bonne solution car on n&rsquo;a pas une distribution aléatoire de valeurs et la moyenne risque simplement d&rsquo;être noyée dans la variation des valeurs. On utilise l&rsquo;outil statistique <em>percentile</em> qui permet d&rsquo;avoir la distribution de toutes les valeurs et de produire un histogramme (cf. <a rel="nofollow" target="_blank" href="http://giltene.github.io/HdrHistogram/">HDRHistogram</a> by Gil Tene pour réaliser des histogrammes avec impact minimal sur les performances).</p>
<blockquote><p>Martin Thompson parle de &laquo;&nbsp;Mechanical Sympathy&nbsp;&raquo; pour réconcilier le code avec le matériel. En effet pour obtenir les meilleures performances il ne faut pas négliger la machine sur laquelle les instructions de notre programme vont être exécutées.</p></blockquote>
<p>Pour avoir des performances optimales, on cherche à développer des algorithmes non bloquants, on veut ainsi au moins un thread en progression tout le temps. Plusieurs choix se posent sur le type de file à implémenter <strong>ConcurrentLinkedQueue</strong>, <strong>Queue SPSC</strong> ou encore <strong>Lamport Queue</strong>. Cette dernière utilise une file circulaire qui consiste en un tableau, un index d&rsquo;écriture et un modulo. Ainsi on a un <b>gain de débit de x4 entre BlockingQueue et Lamport Queue</b>.</p>
<p><span style="text-decoration:underline;">Notes sur volatile :</span></p>
<blockquote><p>Le buffer (tableau) d&rsquo;index sont stockés en &laquo;&nbsp;volatile&nbsp;&raquo;. En <strong>Java 1.4</strong> on a pas le comportement attendu car c&rsquo;est le buffer qui est volatile pas la valeur à l&rsquo;intérieur ! En <strong>Java 1.5</strong>, le volatile a plus d&rsquo;utilité car il se base sur le principe d&rsquo;<em>happens before</em>.</p>
<p><span style="text-decoration:underline;">Exemple :</span> si mon tableau a été écrit dans le buffer à un index <em>2</em>, et qu&rsquo;au moment de la lecture de l&rsquo;index par mon consumer il vaut <em>3</em>, celui-ci va quand même aller chercher la dernière valeur avec laquelle le thread en question à écrit dans le buffer, en l&rsquo;occurrence <em>2</em>.</p>
<p>D&rsquo;autre part, le coeur d&rsquo;un processeur a un Store Buffer qui permet au registre de limiter un peu les accès au cache L1. Le volatile a un coût lié au fait qu&rsquo;à chaque accès, il va commiter le Store Buffer dans le cache L1 et vider ce buffer. On perd donc cette optimisation.</p></blockquote>
<p>Il a été également évoqué l&rsquo;utilisation d&rsquo;un <strong>Chronicle Logback Appender</strong> basé sur un Memory Map File pour des raisons de performance, ou encore de surparallélisation et de context switching lié au changement de processeur d&rsquo;exécution pour un thread.</p>
<p>En conclusion, un talk très abordable et très intéressant par deux ingénieurs de la SCGIB (Thierry Abaléa et Alexandre Victoor) concernant les enjeux d’une application haute performance en finance et les solutions qu’on peut avoir en Java. Des solutions rapides à mettre en oeuvre et efficaces et toujours la même obsession : <strong>mesurer !</strong></p>
<h1>Langage</h1>
<h2>Practical RxJava (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/simon_basle">Simon Baslé</a>, <a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/laurent_doguin">Laurent Doguin</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/XXI-4599/RxJava,_les_mains_dans_le_code">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="https://speakerdeck.com/simonbasle/practical-rxjava-workshop">Full</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://github.com/simonbasle/practicalRx">HOL</a>, <a rel="nofollow" target="_blank" href="http://reactivex.io/">ReactiveX</a></li>
</ul>
<p>Menée par Simon Baslé et Laurent Doguin, cette session était un Hands On Lab sur RxJava que j’ai trouvé très bien construit et où j’ai vraiment découvert et compris l’intérêt que peut avoir Rx dans son projet.</p>
<p>Le GitHub du HOL est fourni (et associé à un projet externe qui sert d’API défaillante <a rel="nofollow" target="_blank" href="https://github.com/simonbasle/practicalRxExternal">https://github.com/simonbasle/practicalRxExternal</a>) et chaque étape a une branche solution associée ce qui permet de comparer avec ce qu’on a fait.</p>
<p><span style="text-decoration:underline;">Objectifs du HOL :</span></p>
<blockquote>
<ol>
<li>Migrer une application Web composée de divers services, dont certains externes et utilisant des mécanismes de l’API <i>java.util.concurrent</i> vers une application RxJava</li>
<li>Après la migration des premiers services, on commencera par faire compiler le code naïvement en faisant des appels bloquant dans les contrôleurs appelant ces services jusqu’à arriver à du RxJava full stack et un retour asynchrone avec le DeferredResult Spring.</li>
<li>On se concentrera ensuite sur la réalisation du <i>ExchangeRateService. </i>Appel de deux API externes :
<ul>
<li>Change Doge vers Dollar</li>
<li>Change Monnaie A vers Monnaie B</li>
</ul>
</li>
</ol>
<p>L&rsquo;API gratuite n&rsquo;est pas fiable. Une API payante est plus fiable il faudrait l&rsquo;utiliser seulement lorsque l&rsquo;API gratuite ne marche pas. Etant donné l&rsquo;API payante, il faudrait tracer les coûts.</p>
<p><span style="text-decoration:underline;">Solution :</span></p>
<ol>
<li>Pour compter les coûts, compteur dans l&rsquo;AdminService</li>
<li>On wrappe dans un onErrorResumeNext</li>
<li>On ajoutera un doOnNext pour le logging</li>
</ol>
</blockquote>
<p><strong>ReactiveX</strong> est inspiré de Microsoft .NET (linq, rx) porté en Java par Netflix OSS. Il peut être intéressant d&rsquo;utiliser RxJava dès lors que l&rsquo;une des problématiques suivantes se présente : Asynchrone, Event Based, IO. Rx vient combler les limites de certains langages et offre des fonctions de <strong>composition</strong>, <strong>transformation</strong>, <strong>filtrage</strong>, <strong>gestion d&rsquo;erreurs avancé</strong>, <strong>temporalité</strong> :</p>
<ul>
<li>Java Future =&gt; rapidement bloquant (appel à get)</li>
<li>Callback hell</li>
<li>Pas de composition</li>
<li>Limite gestion d&rsquo;erreurs, d&rsquo;exceptions, annulations, synchronisation, etc&#8230;</li>
</ul>
<p>Ceci mène souvent à un code plutôt illisible, en tout cas peu autoportant.</p>
<p>Le principe est simple, généralement en Java on manipule les collections en <b>pull</b> (pattern Iterable / Iterator). En RxJava, on va plutôt faire du <b>push</b> de données (pattern Observable / Observer). La donnée devient un flux, poussé vers le consommateur.</p>
<ul>
<li><strong>Observable</strong> est un flux connectable à un Observer</li>
<li><strong>Observer</strong> propose les actions :
<ul>
<li>onNext : déclenchée pour chaque arrivée d&rsquo;élément</li>
<li>onError : déclenchée lors d&rsquo;une erreur</li>
<li>onCompleted : déclenchée lorsque le flux est terminé</li>
</ul>
</li>
</ul>
<p>Le framework offre un grand nombre d&rsquo;opérateurs utiles en tout genre. En voici les principaux :</p>
<ul>
<li>Création
<ul>
<li><span style="text-decoration:underline;">from :</span> créé à partir d&rsquo;une collection de données</li>
<li><span style="text-decoration:underline;">just :</span> créé à partir d&rsquo;un objet</li>
<li><span style="text-decoration:underline;">create :</span> créé from scratch</li>
</ul>
</li>
<li>Sélection
<ul>
<li><span style="text-decoration:underline;">take :</span> sélectionne <em>n</em> élément à conserver</li>
<li><span style="text-decoration:underline;">single[OrDefault] :</span> retourne l&rsquo;unique élément attendu, jette une exception sinon</li>
<li><span style="text-decoration:underline;">first[OrDefault] :</span> retourne le premier élément et arrête le flux où jette une exception en cas d&rsquo;absence</li>
<li><span style="text-decoration:underline;">last[OrDefault] :</span> retourne le dernier élément et arrête le flux où jette une exception en cas d&rsquo;absence</li>
<li><span style="text-decoration:underline;">filter :</span> sélectionne uniquement les éléments répondants au prédicat fourni</li>
</ul>
</li>
<li>Collecte
<ul>
<li><span style="text-decoration:underline;">toList :</span> agrège tous les éléments émis dans une liste jusqu&rsquo;à ce qu&rsquo;à complétion de l&rsquo;émetteur</li>
<li><span style="text-decoration:underline;">toBlocking :</span> permet de retomber dans un comportement synchrone bloquant</li>
</ul>
</li>
<li>Transformation
<ul>
<li><span style="text-decoration:underline;">flatMap :</span> chaque élément obtenu est transformé via un &laquo;&nbsp;flatMap&nbsp;&raquo; en une liste d&rsquo;autres éléments et mis dans une liste commune qui sera rendu lorsque la méthode &laquo;&nbsp;onComplete&nbsp;&raquo; est invoquée</li>
<li><span style="text-decoration:underline;">reduce :</span> à partir d&rsquo;un flux d&rsquo;événements on va appliquer une méthode qui va nous donner un résultat en sortie onComplete</li>
</ul>
</li>
<li>Trigger
<ul>
<li><span style="text-decoration:underline;">doOnXXX :</span> permet d&rsquo;ajouter un intercepteur sur chaque événement d&rsquo;un Observable</li>
</ul>
</li>
<li>Combinaison
<ul>
<li><span style="text-decoration:underline;">concat :</span> fusion de deux flux l&rsquo;un après l&rsquo;autre (bout à bout)</li>
<li><span style="text-decoration:underline;">merge :</span> entrelacement des deux flux selon l&rsquo;ordre d&rsquo;arrivée des éléments dans les flux</li>
</ul>
</li>
<li>Résilience
<ul>
<li><span style="text-decoration:underline;">retry :</span> on retente un certain nombre de fois l&rsquo;opération tant qu&rsquo;une erreur est remontée</li>
<li><span style="text-decoration:underline;">onErrorResumeNext :</span> on wrappe le flux dans cette méthode, s&rsquo;il plante, on peut effectuer un autre appel</li>
</ul>
</li>
</ul>
<p>L&rsquo;intérêt du paradigme réactif ne se fait sentir que s&rsquo;il est déployé sur toute la stack de l&rsquo;application. Il est pour cela nécessaire que notre framework REST permette de retourner des &laquo;&nbsp;promesses de réponse&nbsp;&raquo;. <strong>DeferredResult</strong> est un object de Spring qui permet de retourner des réponses REST asynchrone.</p>

<div class="wp_codebox"><table><tr id="p541748"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code" id="p54174code8"><pre class="java" style="font-family:monospace;">Observable<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>Map<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>String, Object<span style="color:#339933;">&amp;</span>gt<span style="color:#339933;">;&amp;</span>gt<span style="color:#339933;">;</span> costObservable <span style="color:#339933;">=</span> adminService.<span style="color:#006633;">costForMonth</span><span style="color:#009900;">&#40;</span>year, month<span style="color:#009900;">&#41;</span>
 .<span style="color:#006633;">map</span><span style="color:#009900;">&#40;</span>cost <span style="color:#339933;">-&amp;</span>gt<span style="color:#339933;">;</span> <span style="color:#009900;">&#123;</span>
 Map<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>String, Object<span style="color:#339933;">&amp;</span>gt<span style="color:#339933;">;</span> json <span style="color:#339933;">=</span> <span style="color:#000000;font-weight:bold;">new</span> HashMap<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;&amp;</span>gt<span style="color:#339933;">;</span><span style="color:#009900;">&#40;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
 json.<span style="color:#006633;">put</span><span style="color:#009900;">&#40;</span><span style="color:#0000ff;">&quot;month&quot;</span>, month <span style="color:#339933;">+</span> <span style="color:#0000ff;">&quot; &quot;</span> <span style="color:#339933;">+</span> year<span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
 json.<span style="color:#006633;">put</span><span style="color:#009900;">&#40;</span><span style="color:#0000ff;">&quot;cost&quot;</span>, cost<span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
 json.<span style="color:#006633;">put</span><span style="color:#009900;">&#40;</span><span style="color:#0000ff;">&quot;currency&quot;</span>, <span style="color:#0000ff;">&quot;USD&quot;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
 json.<span style="color:#006633;">put</span><span style="color:#009900;">&#40;</span><span style="color:#0000ff;">&quot;currencySign&quot;</span>, <span style="color:#0000ff;">&quot;$&quot;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
 <span style="color:#000000;font-weight:bold;">return</span> json<span style="color:#339933;">;</span>
 <span style="color:#009900;">&#125;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
DeferredResult<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>Map<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>String, Object<span style="color:#339933;">&amp;</span>gt<span style="color:#339933;">;&amp;</span>gt<span style="color:#339933;">;</span> deferredResult <span style="color:#339933;">=</span> <span style="color:#000000;font-weight:bold;">new</span> DeferredResult<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;&amp;</span>gt<span style="color:#339933;">;</span><span style="color:#009900;">&#40;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
<span style="color:#666666;font-style:italic;">// Souscription du DeferredResult à l'Observable</span>
 costObservable.<span style="color:#006633;">subscribe</span><span style="color:#009900;">&#40;</span>
 deferredResult<span style="color:#339933;">::</span>setResult,
 deferredResult<span style="color:#339933;">::</span>setErrorResult
 <span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
<span style="color:#000000;font-weight:bold;">return</span> deferredResult<span style="color:#339933;">;</span></pre></td></tr></table></div>

<p>Avec l’utilisation de DeferredResult, on est enfin complètement asynchrone puisqu&rsquo;on n’attend pas le résultat de manière active. On ne fait pas de timeout, si le résultat n&rsquo;arrive pas, on ne fait pas d&rsquo;attente active, Spring pourra faire autre chose. A noter que DeferredResult est bien un objet Spring et n’a rien à voir avec RxJava. RxJava ne propose pas d’outil pour réaliser des retours asynchrones d’appel HTTP, c’est à la charge du framework utilisé (en l’occurrence Spring). A noter RatPack, une alternative à Spring pour les WebServices <a rel="nofollow" target="_blank" href="http://ratpack.io">http://ratpack.io</a>.</p>
<p>Un hands-on bien mené qui nous a bien montré les intérêts directs que l&rsquo;on peut avoir à utiliser Rx (polyglotte, performance, fallbacks, etc.).</p>
<h2> Ceylon Idioms (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/gavin_king">Gavin King</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/NHV-0469/Ceylon_Idioms">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/UnFroMage/gavin-idioms">Full</a></li>
</ul>
<p>Ceylon est un langage de programmation sur la JVM à l’instar de Scala ou Groovy qui a passé le stade de la 1.0 il y a quelques mois maintenant. Cette présentation proposait de passer en revue une dizaine d’idiomes intéressants du langage et il est vrai que son système de typage est assez bluffant.</p>
<p>Ceylon dispose déjà de nombreux outils dans son écosystème et est compatible avec de nombreux contextes d&rsquo;exécutions (Java SE, OSGi, Vert.x, Node.js, Browser, etc.).</p>
<p><span style="text-decoration:underline;">Parmi les fonctionnalités caractéristiques :</span></p>
<ul>
<li>Langage multiplateforme grâce à la JVM</li>
<li>Réification des types génériques (accès au typage générique au runtime)</li>
<li>Union et intersection de types</li>
<li>De nouveaux types <strong>Nothing</strong> ou <strong>Anything</strong> qui ne sont que la combinaison de types déjà existants</li>
<li>De nouvelles représentation telles que <strong>Tuple</strong> ou <strong>Function</strong></li>
</ul>
<p>Tout d&rsquo;abord, la combinaison des types permet d&rsquo;avoir des fonctions à plusieurs types de retour potentiel sans avoir besoin de passé par un super type.</p>

<div class="wp_codebox"><table><tr id="p541749"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p54174code9"><pre class="java" style="font-family:monospace;"><span style="color:#003399;">File</span><span style="color:#339933;">|</span>Path<span style="color:#339933;">|</span>SyntaxError parsePath<span style="color:#009900;">&#40;</span><span style="color:#003399;">String</span> path<span style="color:#009900;">&#41;</span> <span style="color:#339933;">=&amp;</span>gt<span style="color:#339933;">;</span> ...
&nbsp;
 <span style="color:#000000;font-weight:bold;">switch</span><span style="color:#009900;">&#40;</span>result<span style="color:#009900;">&#41;</span>
 <span style="color:#000000;font-weight:bold;">case</span><span style="color:#009900;">&#40;</span>is <span style="color:#003399;">File</span><span style="color:#339933;">|</span>Url<span style="color:#009900;">&#41;</span>
 ...</pre></td></tr></table></div>

<p>Il est possible d&rsquo;avoir des collections d&rsquo;objets hétérogènes fortement typés où l&rsquo;on pourra jouer avec le <strong>switch</strong> de Ceylon pour effectuer le traitement adéquat.</p>

<div class="wp_codebox"><table><tr id="p5417410"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p54174code10"><pre class="java" style="font-family:monospace;">List<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>Integer<span style="color:#339933;">|</span>Float<span style="color:#339933;">&amp;</span>gt<span style="color:#339933;">;</span> list <span style="color:#339933;">=</span> <span style="color:#003399;">ArrayList</span> <span style="color:#009900;">&#123;</span> <span style="color:#cc66cc;">1</span>, <span style="color:#cc66cc;">1.0</span>, <span style="color:#cc66cc;">1</span> <span style="color:#009900;">&#125;</span><span style="color:#339933;">;</span>
<span style="color:#000066;font-weight:bold;">Null</span><span style="color:#339933;">|</span>Integer<span style="color:#339933;">|</span>Float elt <span style="color:#339933;">=</span> list<span style="color:#009900;">&#91;</span><span style="color:#cc66cc;">3</span><span style="color:#009900;">&#93;</span><span style="color:#339933;">;</span></pre></td></tr></table></div>

<p>Le type <b>Tuple</b> est géré avec une LinkedList qui ne lui donne aucune limite et est utilisé pour définir dynamiquement une liste de paramètres à passer à une fonction.</p>

<div class="wp_codebox"><table><tr id="p5417411"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p54174code11"><pre class="java" style="font-family:monospace;"><span style="color:#009900;">&#91;</span>Protocol,Path<span style="color:#009900;">&#93;</span> protocolAndPath <span style="color:#339933;">=</span> parseUrl<span style="color:#009900;">&#40;</span><span style="color:#0000ff;">&quot;...&quot;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
<span style="color:#666666;font-style:italic;">// équivalent à</span>
Tuple<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>Protocol, Path<span style="color:#339933;">&amp;</span>gt<span style="color:#339933;">;</span> protocolAndPath <span style="color:#339933;">=</span> parseUrl<span style="color:#009900;">&#40;</span><span style="color:#0000ff;">&quot;...&quot;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
<span style="color:#009900;">&#91;</span><span style="color:#003399;">Integer</span>, <span style="color:#003399;">Integer</span>, <span style="color:#003399;">String</span><span style="color:#009900;">&#93;</span> tuple <span style="color:#339933;">=</span> ...
&nbsp;
<span style="color:#006633;">function</span> f<span style="color:#009900;">&#40;</span><span style="color:#003399;">Integer</span> x, <span style="color:#003399;">Integer</span> y, <span style="color:#003399;">String</span> string<span style="color:#009900;">&#41;</span> <span style="color:#339933;">=&amp;</span>gt<span style="color:#339933;">;</span> x<span style="color:#339933;">+</span>y
Callable<span style="color:#339933;">&amp;</span>lt<span style="color:#339933;">;</span>Integer, <span style="color:#009900;">&#91;</span><span style="color:#003399;">Integer</span>, <span style="color:#003399;">Integer</span>, <span style="color:#003399;">String</span><span style="color:#009900;">&#93;</span><span style="color:#339933;">&amp;</span>gt<span style="color:#339933;">;</span> callable <span style="color:#339933;">=</span> f<span style="color:#339933;">;</span>
<span style="color:#003399;">Integer</span> integer <span style="color:#339933;">=</span> f<span style="color:#009900;">&#40;</span><span style="color:#339933;">*</span>tuple<span style="color:#009900;">&#41;</span></pre></td></tr></table></div>

<p>Gavin King présentait en tout 9 idiomes. La souplesse du système de typage est ce qui m&rsquo;a le plus marqué dans ce langage et donne envie d&rsquo;aller plus loin avec et de voir un peu plus ce qu&rsquo;il permet dans le domaine fonctionnel.</p>
<h2>Modular Java Platform (Jigsaw JDK 9) (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/brian_goetz">Brian Goetz</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/MXY-8408/Modular_Java_Platform">CFP Devoxx</a></li>
</ul>
<p>Brian Goetz est venu nous présenter <a rel="nofollow" target="_blank" href="http://openjdk.java.net/projects/jigsaw/">Jigsaw</a>, le projet de modularisation du JDK dont on commence à désespérer la sortie reportée depuis le JDK 6 ! Jigsaw c&rsquo;est la volonté de rendre la plateforme Java SE modulaire et de se débarasser du <strong>classpath</strong> et du <strong>rt.jar</strong>.</p>
<p>Motivations :</p>
<blockquote>
<ul>
<li>Java a commencé comme une petite plateforme de ~2500 classes</li>
<li>Désormais java a grandi mais il est toujours nécessaire d&rsquo;avoir toute la plateforme même si on ne se sert que d&rsquo;une partie (JRE = 55Mb)</li>
<li>Les classes <em>sun.*</em> et <em>*.internal.*</em> sont des classes internes au JDK dont on ne devrait jamais a avoir utiliser directement. Dans les faits, il faut utiliser <em>SecurityManager::checkPackageAccess</em> dans chaque classe pour assurer l&rsquo;isolation&#8230;</li>
<li><strong>Jar Hell</strong> : le problème apparaît du fait que le classpath n&rsquo;a aucune information sur les choix a effectuer lors d&rsquo;un possible conflit (lié à l&rsquo;import de versions différentes du même jar par exemple)</li>
</ul>
</blockquote>
<p>La solution à ce problème de classpath, de sécurité est d&rsquo;apporter un système de module (une cinquantaine) au JDK utilisable par le Java SE lui même mais aussi par les autres projets. Pour le problème de taille du JDK, la version 8 a commencé par apporter les profils compact :</p>
<ul>
<li>compact1 : 11MB</li>
<li>compact2 : 17MB</li>
<li>compact3 : 30MB</li>
</ul>
<p>Le projet Jigsaw a connu du tumulte. Le premier gros travail a été d&rsquo;identifier les dépendances existantes entre les différents potentiels module du JDK. Désormais, le projet est séparé en 4 JEP :</p>
<ul>
<li>JEP 200 : The Modular JDK</li>
<li>JEP 201 : Modular Source Code</li>
<li>JEP 220 : Modular Run-Time Images</li>
<li>JEP TBD / JSR 376 : Java Platform Module System</li>
</ul>
<p>La <strong>JEP 200</strong> a proposé l&rsquo;ajout d&rsquo;une nouvelle méthode <strong>getModule()</strong> à <strong>Class </strong>permettant de connaître le module qui a chargé la classe.</p>

<div class="wp_codebox"><table><tr id="p5417412"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p54174code12"><pre class="bash" style="font-family:monospace;">$ java <span style="color:#660033;">-XListModule</span> =<span style="color:#000000;font-weight:bold;">&amp;</span>gt; liste les modules chargés
jar:<span style="color:#c20cb9;font-weight:bold;">file</span>:<span style="color:#000000;font-weight:bold;">/</span>path<span style="color:#000000;font-weight:bold;">/</span>to<span style="color:#000000;font-weight:bold;">/</span>jdk<span style="color:#000000;font-weight:bold;">/</span>jdk8<span style="color:#000000;font-weight:bold;">/</span>jre<span style="color:#000000;font-weight:bold;">/</span>lib<span style="color:#000000;font-weight:bold;">/</span>rt.jar<span style="color:#000000;font-weight:bold;">|/</span>java<span style="color:#000000;font-weight:bold;">/</span>lang<span style="color:#000000;font-weight:bold;">/</span>Class.class <span style="color:#000000;font-weight:bold;">//</span> Java <span style="color:#000000;">8</span>-
jrt:<span style="color:#000000;font-weight:bold;">/</span>java.base<span style="color:#000000;font-weight:bold;">/</span>java<span style="color:#000000;font-weight:bold;">/</span>lang<span style="color:#000000;font-weight:bold;">/</span>Class.class <span style="color:#000000;font-weight:bold;">//</span> Java <span style="color:#000000;">9</span></pre></td></tr></table></div>

<p>Les modules peuvent dépendre les uns des autres mais il existe deux types de dépendances :</p>
<ul>
<li>Implementation Dependency : utilisé par le module mais non exposée pour les autres modules qui vont l&rsquo;importer</li>
<li>API Dependency : une dépendance qui va être nécessaire pour les modules qui vont utiliser le module en question.</li>
</ul>
<p>Ceci règle le problème d&rsquo;exposition des packages internes <em>sun.*</em>  et <em>*.internal.*.</em></p>
<p><i>La <strong>JSR 376</strong> p</i>ropose un moyen pour les développeurs de définir leurs propres modules. Elle prévoie :</p>
<ul>
<li>une API Reflection pour les information du module</li>
<li>l&rsquo;intégration avec les outils (Maven, Gradle, IDE, etc)</li>
<li>l&rsquo;intégration avec les package managers (RPM, etc.)</li>
<li>la configuration dynamique des graphs de module (EE Containers)</li>
</ul>
<p>Finalement j’ai trouvé la présentation très intéressante et le projet à l’air d’avancer correctement !</p>
<h2>Java; the next 20 years (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/brian_goetz">Brian Goetz</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/GGJ-3318/Java;_the_next_20_years">CFP Devoxx</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="http://openjdk.java.net/jeps/169">JEP</a></li>
</ul>
<p>Après avoir rappelé les évolutions du langage pour proposer les classes génériques, Brian Goetz nous parle des <a rel="nofollow" target="_blank" href="http://cr.openjdk.java.net/~jrose/values/values-0.html">Value Object</a> pour regrouper les attributs des classes en mémoire et dans les conteneurs, afin de réduire le travail du Garbage Collector et les <em>cache-miss</em> du processeur lors de la navigation dans les objets. Cela permettra d’avoir les mêmes performances que le C++ ou C#. C’est une bonne évolution pour les algorithmes à haute fréquence.</p>
<h1>Outils</h1>
<h2>Le taré du terminal : Outil pour développeur de l&rsquo;extrême (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/emmanuel_bernard">Emmanuel Bernard</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/UUB-9766/HAProxy_level_2_:_des_bases_aux_problematiques_de_scaling">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="https://github.com/emmanuelbernard/command-line-nut">Full Asciidoc</a></li>
</ul>
<p>Présentation d’Emmanuel Bernard (Red Hat, Cast Codeurs) sur sa manière d’utiliser son outil de travail en automatisant au maximum son workflow, pour éviter le context switching durant son travail.</p>
<p>Il nous a notamment parlé de son environnement de commande <a rel="nofollow" target="_blank" href="http://tmux.sourceforge.net">TMux</a> qui offre la possibilité de préparer plusieurs &laquo;&nbsp;univers&nbsp;&raquo; qui vont permettre de conserver différents contextes de travail. Il est également un grand friand de Vim qui offre un système de commandes efficace basé sur le pattern suivant :</p>
<pre>[action][repetition multiplier]movement</pre>
<blockquote>
<ul>
<li>d2f. : supprimer 2 lignes et avancer jusqu&rsquo;au prochain &laquo;&nbsp;.&nbsp;&raquo;</li>
<li>shift + v : mode visuel vim</li>
<li>set col &laquo;&nbsp;n&nbsp;&raquo; : largeur du document</li>
<li>gq : mettre la sélection trop large à la bonne largeur de document</li>
<li>J : mettre la sélection trop courte à la bonne largeur de document</li>
<li>0 : début de la ligne</li>
<li>W : mot suivant</li>
<li>dW : supprimer le mot suivant</li>
</ul>
</blockquote>
<p>Il existe également des plugins <a rel="nofollow" target="_blank" href="http://ideavim.sourceforge.net/">IdeaVim</a> (IntelliJ) ou <a rel="nofollow" target="_blank" href="http://vrapper.sourceforge.net/home/">Vrapper</a> (Eclipse) qui permettent d&rsquo;avoir un environnement Vim dans son IDE préféré.</p>
<p>Plusieurs automatismes quotidiennement utilisés par Emmanuel :</p>
<blockquote><p>Lorsque je me connecte pour la première fois à un serveur, on me demande mon mot de passe et j&rsquo;envoie automatiquement ma clé ssh en autorized_keys.</p>
<p>Lancer une pull request qui faire le merge et l&rsquo;ouverture du navigateur à la bonne page automatiquement.</p>
<p>Utiliser remote pour lancer compilation et tests en background et lancer une notification desktop à la fin permettant de faire du context switching efficace sur ses réseaux sociaux !</p></blockquote>
<p>Le leitmotiv de ce talk fût finalement de ne pas hésiter à automatiser un maximum de tâche que l&rsquo;on répète ne serait-ce que quelques fois par semaine. Pour s&rsquo;inspirer, une communauté existe autour des <i>dotfiles</i> qui permet de trouver plein d’exemples (cf. <a rel="nofollow" target="_blank" href="https://dotfiles.github.io">https://dotfiles.github.io</a>) qui donne vraiment envie de s&rsquo;y mettre ! De même pour Git ou l&rsquo;utilisation d&rsquo;alias peut-être un premier gain de temps mais l&rsquo;écriture d&rsquo;un plugin relativement simple peut rendre de grands services aussi.</p>
<h2>Un Jenkins amélioré avec Docker, Mesos et Marathon (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/jean-louis_rigau">Jean-Louis Rigau</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/UWP-3010/Un_Jenkins_ameliore_avec_Docker,_Mesos_et_Marathon">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="https://speakerdeck.com/jlrigau/un-jenkins-ameliore-avec-docker-mesos-et-marathon-at-devoxx-france-2015">Full</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://github.com/jlrigau/ci-mesos">TIA</a> <a rel="nofollow" target="_blank" href="https://github.com/WeScale/mesosphere-walking-tutorial">Mesos</a></li>
</ul>
<p>Inspiré de Delivering Ebay&rsquo;s, ce Tools in Action par Jean-Louis Rigau consistait à présenter rapidement un use case d’utilisation d’<a rel="nofollow" target="_blank" href="http://mesos.apache.org">Apache Mesos</a> et un de ses framework, <a rel="nofollow" target="_blank" href="https://mesosphere.github.io/marathon">Marathon</a>, pour rendre son Jenkins fortement scalable !</p>
<p><span style="text-decoration:underline;">Objectifs du Tools in Action (TIA) :</span></p>
<blockquote>
<ol>
<li>Simplifier la gestion de Jenkins en le conteneurisant avec Docker et le déployer dans Mesos via Marathon</li>
<li>Utiliser les ressources de Mesos pour créer des slaves Jenkins à la demande</li>
</ol>
</blockquote>
<p>Jenkins est un serveur d&rsquo;intégration continue, maintenu par Cloudbees, écrit en Java. Ceux qui l&rsquo;utilisent savent qu&rsquo;il est généralement difficile à maintenir et à mettre à jour !</p>
<p>Docker est un gestionnaire de conteneurs opensource, écrit en Go, créé et maintenu par Docker Inc. Il sert à la construction d&rsquo;applications et au déploiement sur tout type d&rsquo;environnement.</p>
<p>Mesos est un gestionnaire de cluster opensource par Apache, écrit en C++. Il permet de gérer les ressources de son Datacenter et de se créer son propre cloud en allouant intelligemment ses ressources selon les besoins de ses applications.</p>
<p>Enfin Marathon est un framework Mesos opensource par Mesosphere qui est écrit en Scala. Il se charge du déploiement et management de conteneurs basés sur Mesos et joue en quelque sorte le rôle de sur couche simplificatrice.</p>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2015/04/JenkinsMesos-Architecture.png"><img class="aligncenter wp-image-54210" src="http://blog.octo.com/wp-content/uploads/2015/04/JenkinsMesos-Architecture.png" alt="JenkinsMesos-Architecture" width="640" height="336"/></a></p>
<p>&nbsp;</p>
<p>En bref, le schéma d&rsquo;architecture qui nous a été présenté lors du tools-in-action. J&rsquo;achète si cela peut permettre de retrouver confiance en son Jenkins !</p>
<h2>Le Continuous Merge chez LesFurets.com (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/pflieger_arnaud">Pflieger Arnaud</a>)</h2>
<ul>
<li><a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/talk/FRL-6180/Le_Continuous_Merge_chez_LesFurets.com">CFP Devoxx</a></li>
<li>Présentation : <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/beastiefurets/devoxx-france-2015-git-octopus">Full</a></li>
<li>Ressources : <a rel="nofollow" target="_blank" href="https://github.com/lesfurets/git-octopus">Github</a></li>
</ul>
<p>L’équipe des furets ont fait le choix d’utiliser Git en mode feature branch. Malgré toutes les alertes sur cette approche, ils ont persisté et proposé des plugins à Git pour faciliter le merge multiple. L’idée est de sélectionner avant la mise en production, l’ensemble des branches à lier. Le résultat est placé dans un branche tampon sans historique. Les problèmes peuvent alors être résolus suivant plusieurs approches :</p>
<ul>
<li>faire un rebase d’une branche sur une autre pour aider au merge global</li>
<li>ajouter des features flags</li>
<li>etc.</li>
</ul>
<p>Avec cette approche, ils publient plusieurs fois par jours.</p>
<h1>Mais aussi&#8230;</h1>
<p>Devoxx c&rsquo;est 200 conférences en 3 jours et des choix à chaque session difficiles à faire ! Ci-après vous trouverez quelques conférences en vrac, non moins intéressantes !</p>
<ul>
<li><span style="text-decoration:underline;">Le futur de la robotique personnelle (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/rodolphe_gelin">Rodolphe Gelin</a>) :</span> Cette conférence a été un grand moment. Des démonstrations en vidéo ont montrée où se focalise les recherches en ce domaine. Les robots doivent prélever les informations, deviner les sentiments du locuteur et analyser les signaux sonores pour savoir qu’on leur parle. C’est bien plus complexe qu’utiliser Google Now ou Siri.</li>
<li><span style="text-decoration:underline;">La problématique du contrôle des technologies de l&rsquo;information (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/eric_filiol">Eric Filiol</a>) :</span> Eric Filiol, grand prêtre de la sécurité nous a expliqué que nos dirigeants proposent des lois inapplicables car ils ne comprennent rien et sont faibles. Cela donne l’illusion de la sécurité, en offrant toute les dérives possibles sur un plateau. Il nous rappelle que les bugs que nous laissons sont les portes ouvertes à notre propre vie privée. Pensons-y !</li>
<li><span style="text-decoration:underline;">I don&rsquo;t always write Reactive applications, but when I do, it runs on Raspberry Pi (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/alexandre_delegue">Alexandre Delegue</a>) :</span> Une <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/adelegue/i-dont-always-write-reactive-application-but-when-i-do-it">conférence</a> très amusante où une pile de Raspberry Pi organisés en Cloud mobile est utilisée pour un <a rel="nofollow" target="_blank" href="https://github.com/mathieuancelin/reactive-raspberry-pi-cluster">site de commerce codé avec les stacks réactives Scala, Play et Akka</a>.</li>
<li><span style="text-decoration:underline;">La phygitalisation, le super pouvoir du développeur pour créer des objets connectés! (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/cyril_lakech">Cyril Lakech</a>) :</span> Avec quelques centaines d’euro, un RaspberryPI, un Arduino, du cable et des LED, ils nous expliquent <a rel="nofollow" target="_blank" href="http://cyrillakech.blogspot.fr/">comment ils ont monté un rayon augmenté</a>. Des leds s&rsquo;allument et s&rsquo;éteignent au fur et à mesure de l’ajout des critères de recherche. Cela permet de retrouver plus facilement un produit en rayon. Le code est ridiculement simple et l’expérience est top !</li>
<li><span style="text-decoration:underline;">Un robot peut-il apprendre comme un enfant ? (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/pierre-yves_oudeyer">Pierre-Yves Oudeyer</a>) :</span> Pierre-Yves Oudeyer, directeur de recherche à l&rsquo;Inria, nous a fait une <a rel="nofollow" target="_blank" href="https://www.youtube.com/watch?v=uAoNzHjzzys">démonstration d’un robot</a> qui analyse son environnement au hasard, puis privilégie certaines pistes pour améliorer efficacement sa connaissance. Voir un robot sur un tapis pour bébé, jouer avec des mobiles ou communiquant avec un autre robot c’était vraiment sympathique et incroyable d&rsquo;autant plus quand on sait qu’ils ne connaissaient rien avant de commencer.</li>
<li><span style="text-decoration:underline;">The upcoming decentralisation singularity. (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/stephan_tual">Stephan Tual</a>) :</span> Stephan Tual nous propose de découvrir <a rel="nofollow" target="_blank" href="https://www.ethereum.org/">Ethereum</a> une machine de Turing complètement décentralisée, dérivé des <a rel="nofollow" target="_blank" href="https://github.com/ethereum/wiki/wiki/White-Paper">travaux</a> sur les Bitcoins. Ce projet permet de mettre à disposition des développeurs une plateforme résistante aux fraudes.</li>
<li><span style="text-decoration:underline;">Recettes CQRS, pour bien cuisiner son architecture (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/thomas_jaskula">Thomas JASKULA</a>) :</span> <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/tjaskula/cqr-sv2">Thomas JASKULA nous parle de son expérience</a> sur des architectures <a rel="nofollow">CQRS</a> (Command Query Responsibility Seggregation). Il sépare la notion de commande synchrone et d’événement asynchrone. Il propose d’isoler les sous-systèmes en mode DDD (Domain Driven Design) et de les relier via un bus de message. Il propose également la méthode agile “<a rel="nofollow" target="_blank" href="http://ziobrando.blogspot.fr/2013/11/introducing-event-storming.html">Event Storming</a>” proposée par Alberto Brandolini.</li>
<li><span style="text-decoration:underline;">http/2: A deux c&rsquo;est mieux ! (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/jean-francois_arcand">Jean-François Arcand</a>) :</span> Jean-François Arcand nous présente les nouveautés de HTTP/2. Il explique en quoi cela représente une évolution importante. Il a la crainte que cela prennent des années avant de pouvoir l’utiliser partout, comme pour l’IP v6 qui date de 1996 ! La norme étant toute récente, il y a encore peu de retours d’expérience. Les évolutions de J2EE pour intégrer cela ne sont pas de son goût. Il préférerait une remise à plat des API pour exploiter au mieux HTTP/2 plutôt que d’étendre les API actuelles des servlets.</li>
<li><span style="text-decoration:underline;">Infinite Infinispan (<a rel="nofollow" target="_blank" href="http://cfp.devoxx.fr/2015/speaker/ray_tsang">Ray Tsang</a>) :</span> Une équipe de Google nous explique comment <a rel="nofollow" target="_blank" href="http://infinispan.org/">Infinispan</a> permet d’ajouter et surtout d’enlever dynamiquement des machines. Il y a des <a rel="nofollow">scénarios</a> plus complexes que d’autres mais il faut retenir que c’est une problématique à intégrer dès le début de la réflexion des architectures élastiques. A noter qu&rsquo;Infinispan est régulièrement utilisé comme un cache distribué.</li>
</ul>
<div class='yarpp-related-rss'>
<p>Articles suggested :</p><ol>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/qcon-london-2011-un-peu-de-process-beaucoup-darchitecture-et-de-la-performance-pour-passer-a-lechelle/" title="QCon London 2011: un peu de process, beaucoup d&rsquo;architecture et de la performance pour passer &#xe0; l&rsquo;&#xe9;chelle">QCon London 2011: un peu de process, beaucoup d&rsquo;architecture et de la performance pour passer à l&rsquo;échelle </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/vers-des-api-haut-niveau-pour-java-et-nosql-avec-spring-data/" title="Vers des API haut niveau pour Java et NoSQL avec Spring Data">Vers des API haut niveau pour Java et NoSQL avec Spring Data </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/a-quoi-sert-azul-zing/" title="A quoi sert Azul Zing ?">A quoi sert Azul Zing ? </a></li>
</ol>
</div>]]></content:encoded>
      </item>
      <item>
         <title>XebiaLabs sera au DevOps Day les 14 et 15 avril prochains</title>
         <link>http://blog.xebia.fr/2015/03/31/xebialabs-sera-au-devops-day-les-14-et-15-avril-prochains/</link>
         <description>Le DevOps Day, c&amp;#8217;est les 14 et 15 avril à Paris. XebiaLabs y sera en tant que sponsor Gold ! Le DevOps Day, c&amp;#8217;est 2 jours de conférence intensifs où vous pourrez assister à de nombreuses présentations telles que : Containers, Germs, and Microservices parJohn Willis (Docker Inc.) What Happens Without Traction par Steve Pereira [...]</description>
         <guid isPermaLink="false">http://blog.xebia.fr/?p=22728</guid>
         <pubDate>Tue, 31 Mar 2015 12:45:03 +0000</pubDate>
         <content:encoded><![CDATA[<p><img src="http://blog.xebia.fr/wp-content/uploads/2015/03/DevOpsDays_sticker-253x219.jpg" style="float:left;margin:0 10px 10px 0;" width="80"/>Le DevOps Day, c&rsquo;est les 14 et 15 avril à Paris. <a rel="nofollow" target="_blank" href="http://xebialabs.com/">XebiaLabs</a> y sera en tant que sponsor Gold !</p>
<p>Le DevOps Day, c&rsquo;est 2 jours de conférence intensifs où vous pourrez assister à de nombreuses présentations telles que :</p>
<ul>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/Containers,%20Germs,%20and%20Microservices/">Containers, Germs, and Microservices </a>parJohn Willis (Docker Inc.)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/What%20Happens%20Without%20Traction/">What Happens Without Traction </a>par Steve Pereira </p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/The%20importance%20of%20Why%20in%20DevOps/">The importance of Why in DevOps</a> par Boris Feld (Tinyclues)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/Bizdevops%20%E2%80%93%20from%20development%20to%20the%20customer%20%E2%80%93%20how%20to%20bring%20all%20links%20together%20to%20an%20amazing%20chain%21/">Bizdevops – from development to the customer</a> par Sabine Bernecker-Bendixen (sof-ITby Personal Best!)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/DevOps%20Culture%20at%20BlaBlaCar%20-%20Keep%20CAMS%20and%20grow/">DevOps Culture at BlaBlaCar &#8211; Keep CAMS and grow </a>par Regis Allegre &amp; Nicolas Blanc (Blablacar)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/Cognitive%20biases%20and%20our%20poor%20intuitions%20around%20probability/">Cognitive biases and our poor intuitions around probability</a> par Nigel Kersten (PuppetLabs)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/Designing%20the%20Enterprise%20for%20Manufacturing/">Designing the Enterprise for Manufacturing</a> par Scott Russell (Chef)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/Change%20management%20at%20scale:%20responsible%20agile%20delivery/">Change management at scale: responsible agile delivery</a> par Pierre-Yves Ritschard (Exoscale)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/Making%20the%20Elephant%20dance%20%E2%80%93%20Daily%20deliveries%20at%20SAP/">Making the Elephant dance – Daily deliveries at SAP</a> par Dirk Lehmann (SAP SE)</p>
</li>
<li style="margin-left:15.0px;">
<p><a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/proposals/Screwing%20up%20for%20fun%20and%20profit/">Screwing up for fun and profit</a> par Oliver Hankeln (HankelnConsulting)</p>
</li>
</ul>
<p>Retrouvez tout le programme de la conférence <a rel="nofollow" target="_blank" href="http://www.devopsdays.org/events/2015-paris/program/">ici</a>.</p>
<p>En tant que sponsor, XebiaLabs vous fait bénéficier de 20% de réduction sur les billets avec le code de réduction &quot;THANKS-XEBIALABS&quot;. Profitez-en.</p>
<p>Et évidemment, pour bien se préparer à la conférence, n&rsquo;oubliez pas de relire le <a rel="nofollow" target="_blank" href="http://techtrends.xebia.fr/">Techtrends DevOps</a>.</p>
<p>Rendez-vous dans quelques jours.</p>]]></content:encoded>
      </item>
      <item>
         <title>BOOSTEZ vos compétences  chez OCTO Academy</title>
         <link>http://blog.octo.com/boostez-vos-competences-chez-octo-academy/</link>
         <description>Nous vous proposons une véritable EXPÉRIENCE D&amp;#8217;APPRENTISSAGE et pas seulement du « prêt à penser » ! Nous croyons profondément que : le CONTENANT a autant de valeur et d’impact que le contenu l’APPRENTISSAGE des systèmes humains et sa compréhension sont les CLÉS du FUTUR au-delà même de l’entreprise NOS FORMATIONS PREMIUM : AVRIL &amp;#8211; MAI INÉDITES &amp;#8211; Donner [&amp;#8230;]&lt;div class='yarpp-related-rss'&gt;

Articles suggested :&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/vivez-lexperience-formation-avec-octo/&quot; title=&quot;&amp;#8211; Vivez l&amp;rsquo;exp&amp;#xe9;rience formation avec OCTO&quot;&gt;&amp;#8211; Vivez l&amp;rsquo;expérience formation avec OCTO &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/octo-academy-lance-son-offre-de-seminaires-interentreprises/&quot; title=&quot;OCTO Academy lance son offre de s&amp;#xe9;minaires interentreprises&quot;&gt;OCTO Academy lance son offre de séminaires interentreprises &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/reinventez-la-formation-interentreprises-avec-octo-academy-2/&quot; title=&quot;R&amp;#xe9;inventez la formation interentreprises avec OCTO Academy&quot;&gt;Réinventez la formation interentreprises avec OCTO Academy &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://blog.octo.com/?p=53680</guid>
         <pubDate>Tue, 10 Mar 2015 10:06:07 +0000</pubDate>
         <content:encoded><![CDATA[<p><img class="alignright wp-image-53682 size-thumbnail" src="http://blog.octo.com/wp-content/uploads/2015/03/Chapeau-Jaune-e1425981062972-150x150.png" alt="Chapeau Jaune" width="150" height="150"/>Nous vous proposons une véritable EXPÉRIENCE D&rsquo;APPRENTISSAGE et pas seulement du « prêt à penser » !</p>
<div>Nous croyons profondément que :</div>
<div>
<ul>
<li>le CONTENANT a autant de valeur et d’impact que le contenu</li>
<li>l’APPRENTISSAGE des systèmes humains et sa compréhension sont les CLÉS du FUTUR au-delà même de l’entreprise</li>
</ul>
<hr />
<p><strong>NOS FORMATIONS PREMIUM : AVRIL &#8211; MAI</strong></p>
<hr />
<p><strong>INÉDITES</strong></p>
<p><strong>&#8211; </strong>Donner &amp; recevoir des feedbacks efficaces &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/50-donner-recevoir-des-feedbacks-efficaces">3 avril</a></p>
<p>&#8211; Big Data &amp; Data Science &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/f/42-big-data-data-science-mythe-ou-realite">9 &#8211; 10 avril</a></p>
<p>&#8211; Responsive Web Design &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/40-responsive-web-design">26 &#8211; 27 mai</a></p>
<p>&#8211; Puppet : Avancée &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/55-puppet-avancee">26 &#8211; 28 mai</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.octo.academy"><img class="mcnImage aligncenter" src="https://gallery.mailchimp.com/3708573f392397a68d6f50697/images/82fd9065-793a-41b1-aa81-f3dc9c82fa42.png" alt="" width="181" align="center"/></a></p>
<p style="text-align:center;"><a rel="nofollow" target="_blank" href="http://www.octo.academy">www.octo.academy</a></p>
<p style="text-align:left;"><span id="more-53680"></span></p>
<hr />
<p style="text-align:left;"> <strong>SÉMINAIRES</strong></p>
<p><strong>&#8211;</strong> DevOps par la pratique &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/f/43-devops-par-la-pratique">1er avril</a></p>
<p><strong>&#8211;</strong> API : Application Programming Interface &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/f/39-api-ouvrir-son-si-developper-son-modele-d-affaire">6 &#8211; 7 mai</a></p>
<p><strong>&#8211;</strong> La révolution réactive &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/f/44-la-revolution-reactive">18 &#8211; 19 mai</a></p>
<p><strong>&#8211; </strong>Les objets connectés : usages &amp; architectures &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/f/35-les-objets-connectes">20 mai</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/d/3-seminaires"><img class="mcnImage aligncenter" src="https://gallery.mailchimp.com/3708573f392397a68d6f50697/images/82fd9065-793a-41b1-aa81-f3dc9c82fa42.png" alt="" width="181" align="center"/></a></p>
<hr />
<p>&nbsp;</p>
<p><strong>STAGES PRATIQUES</strong></p>
<p><strong>&#8211;</strong> Fondamentaux de la Data Science &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/13-fondamentaux-de-la-data-science">1er &#8211; 3 avril</a></p>
<p><strong>&#8211;</strong> Test Driven Development &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/37-test-driven-development">11 &#8211; 13 mai</a></p>
<p><strong>&#8211;</strong> UX Basics &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/46-ux-basics">18 &#8211; 19 mai</a></p>
<p><strong>&#8211;</strong> Concevoir un PaaS Open Source avec Docker &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/48-concevoir-un-paas-open-source-avec-docker">20 &#8211; 21 mai</a></p>
<p><strong>&#8211;</strong> Maitriser son flux grâce au kanban &#8211; <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/6-maitriser-son-flux-grace-au-kanban-it">26 &#8211; 27 mai</a></p>
<p style="text-align:center;"><a rel="nofollow" target="_blank" href="https://extranet.octo.com/oft/viewfile.php?fileid=ad2e803b4bff3c611c66911a8a47c231&amp;dl="><img class="mcnImage aligncenter" src="https://gallery.mailchimp.com/3708573f392397a68d6f50697/images/bfd53082-0899-4415-9812-2ccc88c838df.png" alt="" width="200" align="center"/></a><a rel="nofollow" target="_blank" href="http://www.octo.academy">www.octo.academy</a></p>
</div>
<div class='yarpp-related-rss'>
<p>Articles suggested :</p><ol>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/vivez-lexperience-formation-avec-octo/" title="&#8211; Vivez l&rsquo;exp&#xe9;rience formation avec OCTO">&#8211; Vivez l&rsquo;expérience formation avec OCTO </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/octo-academy-lance-son-offre-de-seminaires-interentreprises/" title="OCTO Academy lance son offre de s&#xe9;minaires interentreprises">OCTO Academy lance son offre de séminaires interentreprises </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/reinventez-la-formation-interentreprises-avec-octo-academy-2/" title="R&#xe9;inventez la formation interentreprises avec OCTO Academy">Réinventez la formation interentreprises avec OCTO Academy </a></li>
</ol>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Réinventez la formation interentreprises avec OCTO Academy</title>
         <link>http://blog.octo.com/reinventez-la-formation-interentreprises-avec-octo-academy-2/</link>
         <description>Chez OCTO Academy, vous ne trouverez pas de formations sur étagères sans saveur. Notre crédo : garantir l&amp;#8217;excellence, la variété et l&amp;#8217;adaptabilité de nos prestations. &amp;#160; NOS FORMATIONS PREMIUM : MARS &amp;#8211; AVRIL OFFICIELLES EN BIG DATA &amp;#8211; Formation officielle administrateur &amp;#171;&amp;#160;Déployer &amp;#38; gérer un cluster Couchbase&amp;#160;&amp;#187; : 9 &amp;#8211; 12 mars &amp;#8211; Administrer la plateforme Hadoop 2.X Hortonworks [&amp;#8230;]&lt;div class='yarpp-related-rss'&gt;

Articles suggested :&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/vivez-lexperience-formation-avec-octo/&quot; title=&quot;&amp;#8211; Vivez l&amp;rsquo;exp&amp;#xe9;rience formation avec OCTO&quot;&gt;&amp;#8211; Vivez l&amp;rsquo;expérience formation avec OCTO &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/formations-octo-juin-juillet-2015/&quot; title=&quot;Formations OCTO : juin-juillet 2015&quot;&gt;Formations OCTO : juin-juillet 2015 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/octo-academy-lance-son-offre-de-seminaires-interentreprises/&quot; title=&quot;OCTO Academy lance son offre de s&amp;#xe9;minaires interentreprises&quot;&gt;OCTO Academy lance son offre de séminaires interentreprises &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://blog.octo.com/?p=53362</guid>
         <pubDate>Thu, 05 Feb 2015 13:51:32 +0000</pubDate>
         <content:encoded><![CDATA[<p>Chez OCTO Academy, vous ne trouverez pas de formations sur étagères sans saveur.</p>
<p>Notre crédo : garantir <strong>l&rsquo;excellence</strong>, la <strong>variété</strong> et <strong>l&rsquo;adaptabilité</strong> de nos prestations.</p>
<p>&nbsp;</p>
<hr />
<h1><span style="color:#ff9900;"><strong>NOS FORMATIONS PREMIUM : MARS &#8211; AVRIL</strong></span></h1>
<hr />
<p><strong>OFFICIELLES EN BIG DATA</strong></p>
<div><strong>&#8211;</strong> Formation officielle <strong>administrateur</strong> &laquo;&nbsp;Déployer &amp; gérer un cluster <strong>Couchbase</strong>&nbsp;&raquo; : <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/3-deployer-gerer-un-cluster-couchbase">9 &#8211; 12 mars </a></div>
<div></div>
<div><strong>&#8211; </strong><strong>Administrer</strong> la plateforme Hadoop 2.X <strong>Hortonworks</strong> : <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/8-administrer-la-plateforme-hadoop-2-x-hortonworks">9 &#8211; 12 mars</a></div>
<p><strong>&#8211;</strong> Analyse de données pour Hadoop 2.X <strong>Hortonworks</strong> avec <strong>Pig &amp; Hive</strong> : <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/1-analyse-de-donnees-pour-hadoop-2-x-hortonworks-avec-pig-hive">16 &#8211; 19 mars </a></p>
<p><strong>&#8211;</strong> Développer des applications pour Hadoop 2.X <strong>Hortonworks</strong> avec <strong>Java</strong> : <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/2-developper-des-applications-pour-hadoop-2-x-hortonworks-avec-java">23 &#8211; 26 mars </a></p>
<p><strong>&#8211;</strong> Développer des applications pour Hadoop 2.X <strong>Hortonworks</strong> sous <strong>Windows</strong> : <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/14-developper-des-applications-pour-hadoop-2-x-hortonworks-sous-windows">7 &#8211; 10 avril </a></p>
<p><a rel="nofollow" class="" title="D&#xe9;couvrir" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/d/13-big-data"><img class="mcnImage aligncenter" src="https://gallery.mailchimp.com/3708573f392397a68d6f50697/images/82fd9065-793a-41b1-aa81-f3dc9c82fa42.png" alt="" width="181" align="center"/></a></p>
<p style="text-align:center;"><a rel="nofollow" target="_blank" href="http://www.octo.academy">www.octo.academy</a> &#8211; <a rel="nofollow" target="_blank" href="mailto:academy@octo.com">academy@octo.com</a> &#8211; <a rel="nofollow" target="_blank" href="https://twitter.com/OCTOAcademy">@OCTOAcademy</a><br />
<span id="more-53362"></span></p>
<hr />
<p><strong>AGILE &amp; LEAN</strong></p>
<p><strong>&#8211;</strong> Découvrir les <strong>démarches agiles</strong> &amp; la culture agile <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/5-decouvrir-les-demarches-agiles-la-culture-agile">16 &#8211; 17 mars </a></p>
<p><strong>&#8211; </strong>Le rôle de <strong>Product Owner</strong> en pratique <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/12-le-role-de-product-owner-en-pratique">18 &#8211; 19 mars </a></p>
<p><strong>&#8211; </strong><strong>Conception logicielle</strong> : écrire des cas d’utilisation efficaces <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/51-conception-logicielle-ecrire-des-cas-d-utilisation-efficaces">20 mars </a></p>
<p><strong>&#8211;</strong> <strong>Lean IT</strong> : optimiser ses flux plutôt que ses ressources <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/7-lean-it-optimiser-ses-flux-plutot-que-ses-ressources">13 &#8211; 15 avril </a></p>
<p><a rel="nofollow" class="" title="D&#xe9;couvrir" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/d/4-agile-lean"><img class="mcnImage aligncenter" src="https://gallery.mailchimp.com/3708573f392397a68d6f50697/images/82fd9065-793a-41b1-aa81-f3dc9c82fa42.png" alt="" width="181" align="center"/></a></p>
<hr />
<p><strong>EN EXCLUSIVITÉ</strong></p>
<p><strong>&#8211;</strong> Créer un <strong>SI hybride avec le Cloud </strong><a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/f/36-creer-un-si-hybride-avec-le-cloud">30 &#8211; 31 mars </a></p>
<p><strong>&#8211;</strong> <strong>Design Thinking</strong> : adapter ses pratiques pour une innovation participative <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/f/38-design-thinking">30 &#8211; 31 mars </a></p>
<p><strong>&#8211;</strong> Fondamentaux de la <strong>Data Science </strong><a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/stages-pratiques/d/15-data-science">1er &#8211; 3 avril </a></p>
<p><strong>&#8211;</strong> <strong>DevOps</strong> par la pratique <a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/f/43-devops-par-la-pratique">1er avril </a></p>
<p><a rel="nofollow" class="" title="D&#xe9;couvrir" target="_blank" href="https://extranet.octo.com/oft/viewfile.php?fileid=6039ebe5c9f52247a69eea53a954ad79&amp;dl="><img class="mcnImage aligncenter" src="https://gallery.mailchimp.com/3708573f392397a68d6f50697/images/bfd53082-0899-4415-9812-2ccc88c838df.png" alt="" width="200" align="center"/></a></p>
<p>&nbsp;</p>
<p style="text-align:center;"><a rel="nofollow" target="_blank" href="http://www.octo.academy">www.octo.academy</a> &#8211; <a rel="nofollow" target="_blank" href="mailto:academy@octo.com">academy@octo.com</a> &#8211; <a rel="nofollow" target="_blank" href="https://twitter.com/OCTOAcademy">@OCTOAcademy</a></p>
<div class='yarpp-related-rss'>
<p>Articles suggested :</p><ol>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/vivez-lexperience-formation-avec-octo/" title="&#8211; Vivez l&rsquo;exp&#xe9;rience formation avec OCTO">&#8211; Vivez l&rsquo;expérience formation avec OCTO </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/formations-octo-juin-juillet-2015/" title="Formations OCTO : juin-juillet 2015">Formations OCTO : juin-juillet 2015 </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/octo-academy-lance-son-offre-de-seminaires-interentreprises/" title="OCTO Academy lance son offre de s&#xe9;minaires interentreprises">OCTO Academy lance son offre de séminaires interentreprises </a></li>
</ol>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Au secours, il me faut 2 mois pour mettre en production !</title>
         <link>http://blog.xebia.fr/2015/01/28/au-secours-il-me-faut-2-mois-pour-mettre-en-production/</link>
         <description>Ces dix dernières années ont vu le développement incroyable des projets Agiles qui se sont généralisés à travers les DSI du monde entier. Que cela soit votre premier projet Agile ou que cela fasse des années que toute votre entreprise a terminé sa migration, le résultat est bien souvent le même, les projets Agile livrent [...]</description>
         <guid isPermaLink="false">http://blog.xebia.fr/?p=21683</guid>
         <pubDate>Wed, 28 Jan 2015 08:11:20 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://blog.xebia.fr/wp-content/uploads/2015/01/DevOpsDays.png"><img class="alignleft" src="http://blog.xebia.fr/wp-content/uploads/2015/01/DevOpsDays-300x212.png" alt="" width="363" height="256"/></a></p>
<p>Ces dix dernières années ont vu le développement incroyable des projets Agiles qui se sont généralisés à travers les DSI du monde entier. Que cela soit votre premier projet Agile ou que cela fasse des années que toute votre entreprise a terminé sa migration, le résultat est bien souvent le même, les projets Agile livrent très régulièrement de nouvelles versions applicatives.</p>
<p>Malheureusement une version livrée par l&rsquo;équipe de développement n&rsquo;est d&rsquo;aucune utilité tant qu&rsquo;elle n&rsquo;est pas en production. Et c&rsquo;est bien souvent là que les choses commencent à coincer&#8230;</p>
<p>Dans cet article en deux parties nous verrons tout d&rsquo;abord les indices montrant qu&rsquo;il y a un problème puis dans une seconde partie comment améliorer la situation.</p>
<p><span id="more-21683"></span></p>
<h2>Un problème ?</h2>
<div>L&rsquo;un de vos projets est passé en mode Agile et vous livrez toutes les 2 semaines ?<br />
Félicitations !</div>
<div>Les utilisateurs ne voient rien arriver plus vite ?</div>
<div>Félicitations vous avez un nouveau problème !</div>
<div>Tout comme pendant des tests de performances la suppression d&rsquo;une contention en révèle une autre, la même situation se produit à l&rsquo;échelle d&rsquo;un projet.</div>
<div>Voici quelques indices indiquant qu&rsquo;il faut maintenant travailler sur les étapes en aval d&rsquo;un projet :</div>
<ul>
<li>Vous avez beau livrer plus fréquemment, les versions n&rsquo;arrivent pas plus vite en production</li>
<li>MEP rime plus avec Mise en Problème que Mise en Production</li>
<li>L&rsquo;infrastructure est très peu Agile: les projets attendent longtemps leur environnement ou des modifications sur celui-ci</li>
<li>Aucune communication entre les équipes projets et les équipes opérationnelles</li>
</ul>
<div>Se rendre compte du problème est déjà un premier pas vers sa résolution. Regardons maintenant comment améliorer la situation.</div>
<h2>Des solutions !</h2>
<div>La première étape et la plus importante est de faire en sorte que les équipes de développement et les équipes opérationnelles communiquent régulièrement. Si le projet est d&rsquo;importance, il est bon de détacher un exploitant à temps complet sur le projet. Dans le cas contraire des points de synchronisation hebdomadaires feront l&rsquo;affaire et cela dès le début du projet.<br />
L&rsquo;idée principale est de réunir ces deux équipes sous le même but: faire en sorte de sortir rapidement et sûrement de nouvelles versions du produit.</div>
<div>Ensuite et suivant un principe bien connu, on ne peut améliorer que ce que l&rsquo;on peut mesurer. La première étape sur la voie de la guérison est donc de recenser sur un tableau de post-its toutes les étapes suivant la livraison jusqu&rsquo;à la mise en production et de faire estimer par le projet (équipe opérationnelle incluse!) la valeur de ces étapes par rapport à leurs coûts.<br />
Cette technique, nommée <a rel="nofollow" target="_blank" href="http://blog.xebia.com/2014/10/06/how-to-create-a-value-stream-map/">Value Stream Map</a> (VSM), fait apparaître très clairement les étapes coûteuses mais ne présentant que peu de bénéfices. C&rsquo;est ces étapes ci qu&rsquo;il faut optimiser en priorité.</div>
<div>Il arrive bien souvent que la VSM mette en exergue le fait que la mise en production ou l&rsquo;installation de la plateforme sont les étapes les plus coûteuses du processus tout en étant de faible valeur. La meilleure façon pour améliorer ce point est d&rsquo;automatiser. Cela permettra des déploiements plus rapides et avec moins d&rsquo;erreurs.<br />
Fort heureusement de nombreux outils remplissant cette fonctionnalité existent aujourd&rsquo;hui et sont utilisés dans toutes les grandes entreprises. Citons par exemple <a rel="nofollow" target="_blank" href="http://puppetlabs.com/">Puppet</a>, <a rel="nofollow" target="_blank" href="http://www.ansible.com/home">Ansible</a> ou <a rel="nofollow" target="_blank" href="http://xebialabs.com/products/xl-release/">XL Release</a>.</div>
<div>Une autre technique fonctionnant efficacement est d&rsquo;appliquer la maxime &laquo;&nbsp;si c&rsquo;est douloureux, faites le souvent&nbsp;&raquo;.<br />
Si installer une nouvelle version tous les mois est problématique  alors imposer une  livraison toutes les deux semaines obligera à fluidifier le processus. Et il n&rsquo;y a pas de limites supérieures, des entreprises telles que Facebook ou GitHub livrent des dizaines de fois par jour en production !</div>
<div>Ces solutions et bonnes pratiques (parmi bien d&rsquo;autres) forment un mouvement qui se nomme &laquo;&nbsp;DevOps&nbsp;&raquo; et qui a pour but de faciliter les échanges entre les équipes de Développement (Dev) et les équipes Opérationnelles (Ops). De la même façon que les méthodes Agile aident au passage de l&rsquo;idée au code, DevOps aide au passage entre le code et sa mise en place en production afin de délivrer la valeur attendue par le client.</div>
<div><img src="http://blog.xebia.fr/wp-content/uploads/2015/01/devops11.jpg" alt=""/></div>
<div>De très nombreuses entreprises utilisent ces principes afin de fluidifier le passage de l&rsquo;application venant des équipes Agile vers la production. Pourquoi pas vous ?</div>
<p>Si vous souhaitez en savoir plus, n&rsquo;hésitez pas à consulter le <a rel="nofollow" target="_blank" href="http://techtrends.xebia.fr/techtrends-xebia-devops.pdf">Techtrends DevOps</a> entièrement dédié à ce sujet:</p>
<p><a rel="nofollow" target="_blank" href="http://techtrends.xebia.fr/techtrends-xebia-devops.pdf"><img src="http://blog.xebia.fr/wp-content/uploads/2013/11/couv-devops-techtrends2.png" alt=""/></a></p>]]></content:encoded>
      </item>
      <item>
         <title>OCTO Academy lance son offre de séminaires interentreprises</title>
         <link>http://blog.octo.com/octo-academy-lance-son-offre-de-seminaires-interentreprises/</link>
         <description>La digitalisation transforme l’écosystème d’une entreprise, l’amenant à repenser son modèle d’organisation, ses métiers et sa culture. OCTO Academy propose un programme complet de séminaires inspirants permettant de préparer les entreprises aux impératifs et profonds changements du &amp;#171;&amp;#160;tout digital&amp;#160;&amp;#187;. NOS SÉMINAIRES PREMIUM 2015 EN STRATÉGIE DIGITALE &amp;#160; &amp;#8211; Les Géants du Web : culture &amp;#8211; pratiques [&amp;#8230;]&lt;div class='yarpp-related-rss'&gt;

Articles suggested :&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/%ef%bf%bc%ef%bf%bc%ef%bf%bcles-geants-du-web/&quot; title=&quot;&amp;#x00fffc;&amp;#x00fffc;&amp;#x00fffc;Les G&amp;#xe9;ants du Web&quot;&gt;￼￼￼Les Géants du Web &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/formations-octo-novembre-decembre/&quot; title=&quot;Formations OCTO : Novembre &amp;#8211; D&amp;#xe9;cembre&quot;&gt;Formations OCTO : Novembre &amp;#8211; Décembre &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/boostez-vos-competences-chez-octo-academy/&quot; title=&quot;BOOSTEZ vos comp&amp;#xe9;tences  chez OCTO Academy&quot;&gt;BOOSTEZ vos compétences  chez OCTO Academy &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://blog.octo.com/?p=53193</guid>
         <pubDate>Thu, 15 Jan 2015 15:27:33 +0000</pubDate>
         <content:encoded><![CDATA[<div><a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/d/3-seminaires"><img class="  alignright wp-image-53195" src="http://blog.octo.com/wp-content/uploads/2015/01/S&#xe9;minaire.png" alt="S&#xe9;minaire" width="146" height="139"/></a>La <strong>digitalisation transforme</strong> l’écosystème d’une entreprise, l’amenant à repenser son modèle d’organisation, ses métiers et sa culture.</div>
<div></div>
<div>OCTO Academy propose un <strong>programme complet de séminaires </strong>inspirants permettant de préparer les entreprises aux impératifs et profonds <strong>changements</strong> du &laquo;&nbsp;tout digital&nbsp;&raquo;.</div>
<div></div>
<div>
<hr />
</div>
<div><strong>NOS SÉMINAIRES PREMIUM 2015</strong></div>
<div>
<hr />
</div>
<div>
<p><strong>EN STRATÉGIE DIGITALE</strong></p>
<p>&nbsp;</p>
<p><strong>&#8211; Les Géants du Web :</strong> culture &#8211; pratiques &#8211; architecture</p>
<p><strong>&#8211;</strong> <strong>Transformation digitale</strong> : les opportunités de remodeler la chaine de valeur</p>
<p><strong>&#8211;</strong> <strong>Big Data &amp; Data Science</strong> : mythe ou réalité ?</p>
</div>
<p><span id="more-53193"></span></p>
<div></div>
<div><a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/d/24-strategie-digitale"><img class=" wp-image-53194 aligncenter" src="http://blog.octo.com/wp-content/uploads/2015/01/D&#xe9;couvrir-300x73.png" alt="D&#xe9;couvrir" width="222" height="54"/></a></div>
<div>
<hr />
</div>
<div>
<p><strong>EN ARCHITECTURES DU SI</strong></p>
<p>&nbsp;</p>
<p><strong>&#8211; Les objets connectés</strong> : usages &amp; architectures</p>
<p><strong>&#8211;</strong> Créer un <strong>SI hybride avec le Cloud</strong></p>
<p><strong>&#8211; DevOps</strong> par la pratique</p>
<p><strong>&#8211; API </strong>: ouvrir son SI &amp; développer son modèle d’affaire</p>
<p><strong>&#8211;</strong> <strong>Performance &amp; scalabilité</strong> : maitriser la montée en charge de vos applications</p>
<p><strong>&#8211;</strong> <strong>NoSQL </strong>: découverte des solutions &amp; architecture de la donnée</p>
<p><strong>&#8211;</strong> <strong>La révolution réactive</strong> : appréhender les concepts des nouvelles architectures</p>
</div>
<div></div>
<div><a rel="nofollow" target="_blank" href="http://www.octo.academy/fr/seminaires/d/35-architectures-du-si"><img class=" wp-image-53194 aligncenter" src="http://blog.octo.com/wp-content/uploads/2015/01/D&#xe9;couvrir-300x73.png" alt="D&#xe9;couvrir" width="222" height="54"/></a></div>
<div style="text-align:center;"> <a rel="nofollow" target="_blank" href="http://www.octo.academy">www.octo.academy</a></div>
<div></div>
<p></p>
<div class='yarpp-related-rss'>
<p>Articles suggested :</p><ol>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/%ef%bf%bc%ef%bf%bc%ef%bf%bcles-geants-du-web/" title="&#x00fffc;&#x00fffc;&#x00fffc;Les G&#xe9;ants du Web">￼￼￼Les Géants du Web </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/formations-octo-novembre-decembre/" title="Formations OCTO : Novembre &#8211; D&#xe9;cembre">Formations OCTO : Novembre &#8211; Décembre </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/boostez-vos-competences-chez-octo-academy/" title="BOOSTEZ vos comp&#xe9;tences  chez OCTO Academy">BOOSTEZ vos compétences  chez OCTO Academy </a></li>
</ol>
</div>]]></content:encoded>
      </item>
      <item>
         <title>A recap of the devops track at Open World Forum 2014</title>
         <link>http://www.normation.com/en/blog/2014/11/04/a-recap-of-the-devops-track-at-open-world-forum-2014/</link>
         <description>&lt;p&gt;Last week in Paris, the Open World Forum took place over two days and I was asked to organise the devops track of this event. The event itself was beautifully organised in a lovely space right in the centre of Paris (just off the Champs Elysées with several metro lines nearby). Many local companies were [&amp;#8230;]&lt;a rel=&quot;nofollow&quot; class=&quot;&quot; title=&quot;Read more on A recap of the devops track at Open World Forum 2014&quot; target=&quot;_blank&quot; href=&quot;http://www.normation.com/en/blog/2014/11/04/a-recap-of-the-devops-track-at-open-world-forum-2014/&quot;&gt; Read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.normation.com/en/blog/2014/11/04/a-recap-of-the-devops-track-at-open-world-forum-2014/&quot;&gt;A recap of the devops track at Open World Forum 2014&lt;/a&gt; appeared first on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.normation.com/en&quot;&gt;Rudder by Normation&lt;/a&gt;.&lt;/p&gt;</description>
         <guid isPermaLink="false">https://www.normation.com/blog/2014/11/04/a-recap-of-the-devops-track-at-open-world-forum-2014/</guid>
         <pubDate>Tue, 04 Nov 2014 10:04:25 +0000</pubDate>
         <content:encoded><![CDATA[<p style="text-align:justify;">Last week in Paris, the Open World Forum took place over two days and I was asked to organise the devops track of this event.</p>
<p style="text-align:justify;">The event itself was beautifully organised in a lovely space right in the centre of Paris (just off the Champs Elysées with several metro lines nearby). Many local companies were around as sponsors, including Normation (see <a rel="nofollow" title="Normation est &#xe0; l&#x002019;Open World Forum 2014 !" target="_blank" href="http://www.normation.com/2014/10/30/normation-sera-a-lopen-world-forum-2014/">why we were in a village dedicated to <em>real</em> free software</a> &#8211; in French). Coffee, croissants, lunch and evening drinks were provided, and even some regional specialties from south west France (Bordeaux wine, Bayonne ham and Basque cheese &#8211; yum!).</p>
<p style="text-align:justify;"><span id="more-3340"></span></p>
<p style="text-align:justify;">The devops track took place on Friday morning, and I must say (as humbly as it possible to do so in a blog post about something I organised myself) that I&#8217;m very pleased with how it turned out. We were lucky enough to have one of the larger rooms in the venue, with a solid 60-ish attendees throughout the morning, and a video capture of all the talks.</p>
<p style="text-align:justify;">The morning started out very tool-oriented, with two talks in French about Ansible and how to contribute to it, and Docker and how to manage it:</p>
<ul style="text-align:justify;">
<li><a rel="nofollow" title="Slides" target="_blank" href="http://slides.com/kosssi/ansible-et-son-ecosysteme#/">How to participate and improve the ecosystem of Ansible</a> by <a rel="nofollow" target="_blank" href="https://twitter.com/kos_si">Simon Constans (@kos_si)</a></li>
<li><a rel="nofollow" title="Slides" target="_blank" href="https://speakerdeck.com/julienvey/docker-and-its-ecosystem">Docker, l&#8217;étoile montante DevOps</a> by <a rel="nofollow" target="_blank" href="https://twitter.com/undefd">Pierre Padrixe (@undefd)</a> and <a rel="nofollow" target="_blank" href="https://twitter.com/julienvey">Julien Vey (@julienvey)</a></li>
</ul>
<p style="text-align:justify;"><a rel="nofollow" style="float:right;margin-left:12px;margin-bottom:2px;" target="_blank" href="http://www.normation.com/wp-content/uploads/2014/11/2014-10-31-11.04.46-300x222.jpg"><img class="alignright  wp-image-1960" alt="Fabrice Bernhard" src="http://www.normation.com/wp-content/uploads/2014/11/2014-10-31-11.04.46-300x222.jpg" width="300" height="222"/></a>After a short break (where I was happy to see several of the folk from the devops room come to our booth and chat :D), the morning moved on from tools to a much more culture-centric topic, with a talk in English from <a rel="nofollow" target="_blank" href="https://twitter.com/theodo">Fabrice Bernhard (@theodo)</a> titled <strong>Digital transformation in large organisations &#8211; A real-life journey to devops in a French bank</strong>. This talk got a lot of attention, opening the eyes of many in the audience. The real-world talk about changing habits, questioning rules and introducing quick, iterative, development pushed to production servers in real time, within a large organisation got a lot of people thinking. I was particularly impressed that this French bank had taken the idea to heart and actually managed to get the CISO on board with the effort, helping them circumvent his own security policy when it made sense for the team and the business.</p>
<p>&nbsp;</p>
<dl class="wp-caption alignleft" id="attachment_2015" style="float:left;margin-right:12px;margin-bottom:2px;">
<dt class="wp-caption-dt"><a rel="nofollow" target="_blank" href="http://www.normation.com/2014/11/04/a-recap-of-the-devops-track-at-open-world-forum-2014/2014-10-31-12-03-32/"><img class="alignleft size-medium wp-image-2015" alt="devops panel at Open Worl d Forum" src="http://www.normation.com/wp-content/uploads/2014/11/2014-10-31-12.03.32-300x222.jpg" width="300" height="222"/></a></dt>
<dd class="wp-caption-dd">devops panel at Open World Forum</dd>
</dl>
<p style="margin-top:0px;text-align:justify;">Last but not least, I closed the track by animating a panel discussion with some of the previous speakers and a &#8220;guest star&#8221;, <a rel="nofollow" target="_blank" href="https://twitter.com/phrawzty">Daniel Maher (@phrawzty)</a>. After covering the panelists background stories, we opened with a few questions I had prepared, on trying to show the way to &#8220;get started with devops&#8221; via some concrete actions. This got the speakers warmed up and sparked some questions from the audience. Across a varied selection of topics, I was very pleased to see a theme emerging: our panel was now talking more about culture, sharing and aligning to the business than technicalities and tools.</p>
<p style="text-align:justify;">I feel this was a real success &#8211; after fighting to get some non tool-based talks into the devops track (which is in the &#8220;Code&#8221; theme at Open World Forum&#8230;), we managed to talk culture and empathy and everyone there loved it. I even had some students come up to me later in the day to say the devops panel was &#8220;amazing, the best part of the whole event&#8221;!</p>
<p style="text-align:justify;">The videos from the track should be online shortly. I&#8217;ll post back here when they are &#8211; and in the mean time, book your tickets for next year&#8217;s event!</p>
<p>The post <a rel="nofollow" target="_blank" href="http://www.normation.com/en/blog/2014/11/04/a-recap-of-the-devops-track-at-open-world-forum-2014/">A recap of the devops track at Open World Forum 2014</a> appeared first on <a rel="nofollow" target="_blank" href="http://www.normation.com/en">Rudder by Normation</a>.</p>]]></content:encoded>
      </item>
      <item>
         <title>Revue de Presse Xebia</title>
         <link>http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/</link>
         <description>La revue de presse hebdomadaire des technologies Big Data, Cloud et Web, architectures Java et mobilité dans des environnements agiles, proposée par Xebia. Agilité 8 pratiques critiques DevOps (Par Ludovic Perot) Mobilité Android &amp;#8211; Implémentez les nouveaux composants de Material Design dans vos applications facilement (Par Gautier Mechling) Google Inbox utilise J2ObjC (Par Simone Civetta) [...]</description>
         <guid isPermaLink="false">http://blog.xebia.fr/?p=20262</guid>
         <pubDate>Thu, 30 Oct 2014 08:58:46 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://blog.xebia.fr/wp-content/uploads/2014/09/logo-revue-presse220.png"><img src="http://blog.xebia.fr/wp-content/uploads/2014/09/logo-revue-presse220.png" alt="logo-revue-presse220" width="220" height="151" class="alignright size-full wp-image-19992"/></a><br />
  <em>La revue de presse hebdomadaire des technologies Big Data, Cloud et Web, architectures Java et mobilité dans des environnements agiles, proposée par Xebia.</em>
</p>

<div class="c2w-toc">
<ul>
<li class="c2w-toc-item c2w-toc-level3">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level3" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Agilit%C3%A9">Agilité</a></div>
<ul>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-8pratiquescritiquesDevOps">8 pratiques critiques DevOps</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/lperot">Ludovic Perot</a>)</span></div>
</li>
</ul>
</li>
<li class="c2w-toc-item c2w-toc-level3">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level3" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Mobilit%C3%A9">Mobilité</a></div>
<ul>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Android-Impl%C3%A9mentezlesnouveauxcomposantsdeMaterialDesigndansvosapplicationsfacilement">Android &#8211; Implémentez les nouveaux composants de Material Design dans vos applications facilement</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/gmechling">Gautier Mechling</a>)</span></div>
</li>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-GoogleInboxutiliseJ2ObjC">Google Inbox utilise J2ObjC</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/scivetta">Simone Civetta</a>)</span></div>
</li>
</ul>
</li>
<li class="c2w-toc-item c2w-toc-level3">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level3" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Craftsmanship">Craftsmanship</a></div>
<ul>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-GlobalDayofCoderetreat">Global Day of Coderetreat</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/dlemos">Diego Lemos</a>)</span></div>
</li>
</ul>
</li>
<li class="c2w-toc-item c2w-toc-level3">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level3" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Front">Front</a></div>
<ul>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-RoadmapdeTypeScript">Roadmap de TypeScript</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/blemoine">Benoit Lemoine</a>)</span></div>
</li>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-AnnoncedeJquery3.0.0">Annonce de Jquery 3.0.0</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/blemoine">Benoit Lemoine</a>)</span></div>
</li>
</ul>
</li>
<li class="c2w-toc-item c2w-toc-level3">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level3" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Back">Back</a></div>
<ul>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Redisoumemcached%3FCommentchoisir">Redis ou memcached ? Comment choisir</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/romain-niveau/">Romain Niveau</a>)</span></div>
</li>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-SpringAMQP1.4RC1">Spring AMQP 1.4 RC1</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://twitter.com/@njozwiak">Nicolas Jozwiak</a>)</span></div>
</li>
</ul>
</li>
<li class="c2w-toc-item c2w-toc-level3">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level3" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-Lecoindelatechnique">Le coin de la technique</a></div>
<ul>
<li class="c2w-toc-item c2w-toc-level4">
<div><a rel="nofollow" class="c2w-toc-label c2w-toc-level4" target="_blank" href="http://blog.xebia.fr/2014/10/30/revue-de-presse-xebia-2014-44/#RevuedePresseXebia-DevFestNantes">DevFest Nantes</a> <span class="c2w-toc-author">(Par <a rel="nofollow" target="_blank" href="http://blog.xebia.fr/author/tguerin">Thomas Guerin</a>)</span></div>
</li>
</ul>
</li>
</ul>
</div>
<p><span id="more-20262"></span></p>
<h2 id="RevuedePresseXebia-Agilit&#xe9;">Agilité</h2>
<h3 id="RevuedePresseXebia-8pratiquescritiquesDevOps">8 pratiques critiques DevOps</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/f23d9dee080a22a6bb65caad9997aced'><img title='http://www.gravatar.com/f23d9dee080a22a6bb65caad9997aced' src='https://secure.gravatar.com/avatar/f23d9dee080a22a6bb65caad9997aced.jpg?s=24' alt='http://www.gravatar.com/f23d9dee080a22a6bb65caad9997aced' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/lperot'><img title='http://blog.xebia.fr/author/lperot' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/lperot' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/LudovicPEROT'><img title='http://twitter.com/LudovicPEROT' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/LudovicPEROT' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/lperot'>Ludovic Perot</a></span></div>
<p>La convergence Agile / DevOps constitue le passage d&rsquo;un cap dans la maturité d&rsquo;une structure agile. Dans cet article, l&rsquo;auteur liste 8 pratiques incontournables.</p>
<p>Pour des agilistes, les équipes dédiées, raisonner en MVP, délivrer en petits lots et la transparence devraient trouver un écho tout particulier.</p>
<p><a rel="nofollow" target="_blank" href="http://devops.com/features/eight-critical-devops-practices-innovate-deliver-repeat/">http://devops.com/features/eight-critical-devops-practices-innovate-deliver-repeat/</a></p>
<h2 id="RevuedePresseXebia-Mobilit&#xe9;">Mobilité</h2>
<h3 id="RevuedePresseXebia-Android-Impl&#xe9;mentezlesnouveauxcomposantsdeMaterialDesigndansvosapplicationsfacilement">Android &#8211; Implémentez les nouveaux composants de Material Design dans vos applications facilement</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/1a0b01fc47a191e0fa989649c7c18cb0'><img title='http://www.gravatar.com/1a0b01fc47a191e0fa989649c7c18cb0' src='https://secure.gravatar.com/avatar/1a0b01fc47a191e0fa989649c7c18cb0.jpg?s=24' alt='http://www.gravatar.com/1a0b01fc47a191e0fa989649c7c18cb0' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/gmechling'><img title='http://blog.xebia.fr/author/gmechling' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/gmechling' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/Nilhcem'><img title='http://twitter.com/Nilhcem' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/Nilhcem' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/gmechling'>Gautier Mechling</a></span></div>
<p>Google (par l&rsquo;intermédiaire de Chris Banes et Nick Butcher) vient de publier un excellent guide pour les développeurs répertoriant de manière très claire tout ce qu&rsquo;il faut savoir pour mettre en place les nouveaux composants de Material Design dans ses applications.</p>
<p>Des explications et exemples de code sont fournis pour implémenter tous ces nouveaux composants : toolbars, ombres, nouvelles vues sous forme de carte, API palette permettant de récupérer les couleurs principales d&rsquo;une image, et nouvelles animations (transitions activités/fragments via éléments partagés, reveal effect, stateListAnimator).</p>
<p>L&rsquo;article est disponible <a rel="nofollow" target="_blank" href="http://android-developers.blogspot.fr/2014/10/implementing-material-design-in-your.html">sur ce lien</a>, et est un <em>must-read</em> pour tous les développeurs Android.</p>
<h3 id="RevuedePresseXebia-GoogleInboxutiliseJ2ObjC">Google Inbox utilise J2ObjC</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/3f309c992e2b1a5c3c014e63810a2f68'><img title='http://www.gravatar.com/3f309c992e2b1a5c3c014e63810a2f68' src='https://secure.gravatar.com/avatar/3f309c992e2b1a5c3c014e63810a2f68.jpg?s=24' alt='http://www.gravatar.com/3f309c992e2b1a5c3c014e63810a2f68' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/scivetta'><img title='http://blog.xebia.fr/author/scivetta' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/scivetta' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/viteinfinite'><img title='http://twitter.com/viteinfinite' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/viteinfinite' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://github.com/viteinfinite'><img title='http://github.com/viteinfinite' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-github.png' alt='http://github.com/viteinfinite' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/scivetta'>Simone Civetta</a></span></div>
<p><a rel="nofollow" target="_blank" href="http://j2objc.org/">J2ObjC</a> a été publié depuis déjà quelques temps et ceci n&rsquo;est pas une nouveauté. Ce qui est relativement moins connu, par contre, c&rsquo;est que cet outil est toujours maintenu et utilisé par Google. En effet, grâce à <a rel="nofollow" target="_blank" href="https://groups.google.com/forum/#!topic/j2objc-discuss/5lMZNzl5Si0">ce post sur le Google Group du projet</a> les développeurs de la nouvelle application <a rel="nofollow" target="_blank" href="http://googleblog.blogspot.fr/2014/10/an-inbox-that-works-for-you.html">Google Inbox</a> (tout comme Google Sheets et Drive) ont confirmé que J2ObjC a été utilisé pour développer le nouveau client mail de Mountain View. Cela va sans dire, comme J2ObjC ne gère pas les librairies UIKit, la partie IHM a été développée directement en Objective-C et seulement le code métier est le résultat d&rsquo;une conversion. Il reste tout de même intéressant de voir que ce projet est activement maintenu et utilisé par les ingénieurs Google.<span style="font-size:10.0pt;line-height:13.0pt;color:rgb(0,0,0);background-color:transparent;"> </span></p>
<h2 id="RevuedePresseXebia-Craftsmanship">Craftsmanship</h2>
<h3 id="RevuedePresseXebia-GlobalDayofCoderetreat">Global Day of Coderetreat</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd'><img title='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd' src='https://secure.gravatar.com/avatar/37a6259cc0c1dae299a7866489dff0bd.jpg?s=24' alt='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/dlemos'><img title='http://blog.xebia.fr/author/dlemos' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/dlemos' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/dlresende'><img title='http://twitter.com/dlresende' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/dlresende' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://diegolemos.net'><img title='http://diegolemos.net' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-generic.png' alt='http://diegolemos.net' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/dlemos'>Diego Lemos</a></span></div>
<p>Le 15 novembre prochain (samedi) il y aura lieu partout dans le monde le <a rel="nofollow" target="_blank" href="http://globalday.coderetreat.org/">Global Day of Coderetreat</a>. Cet événement se déroule sur une journée et les participants travaillent ensemble sur un exercice (kata), afin d&rsquo;améliorer leurs techniques de développement et design. Pendant toute la journée, les développeurs auront l&rsquo;occasion d&rsquo;échanger et d&rsquo;essayer des nouvelles techniques sans la pression du travail de tous les jours. Dans <a rel="nofollow" target="_blank" href="http://vimeo.com/18955165">cette vidéo</a>, Corey Haines, l&rsquo;un des créateurs du Coderetreat, explique le concept plus en détail.</p>
<p>A Paris, les inscriptions pour le Global Day of Coderetreat sont ouverts <a rel="nofollow" target="_blank" href="http://www.meetup.com/paris-software-craftsmanship/events/215381682/?a=ea1_grp&amp;rv=ea1&amp;_af_eid=215381682&amp;_af=event">ici</a> et <a rel="nofollow" target="_blank" href="http://www.meetup.com/paris-software-craftsmanship/events/215151732/?a=ea1_grp&amp;rv=ea1&amp;_af_eid=215151732&amp;_af=event">ici</a>. Si vous n&rsquo;êtes pas à Paris, vous pouvez chercher <a rel="nofollow" target="_blank" href="http://coderetreat.org/events/event/search?q=france">ici</a> l&rsquo;événement le plus proche de votre région.</p>
<h2 id="RevuedePresseXebia-Front">Front</h2>
<h3 id="RevuedePresseXebia-RoadmapdeTypeScript">Roadmap de TypeScript</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/8847b14eee72162957c0f4c0d462b8ee'><img title='http://www.gravatar.com/8847b14eee72162957c0f4c0d462b8ee' src='https://secure.gravatar.com/avatar/8847b14eee72162957c0f4c0d462b8ee.jpg?s=24' alt='http://www.gravatar.com/8847b14eee72162957c0f4c0d462b8ee' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/blemoine'><img title='http://blog.xebia.fr/author/blemoine' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/blemoine' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/benoit_lemoine'><img title='http://twitter.com/benoit_lemoine' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/benoit_lemoine' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://github.com/mbreton'><img title='http://github.com/mbreton' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-github.png' alt='http://github.com/mbreton' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/blemoine'>Benoit Lemoine</a></span></div>
<p>L&rsquo;équipe TypeScript annonce <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/typescript/archive/2014/10/22/typescript-and-the-road-to-2-0.aspx">aujourd&rsquo;hui sa roadmap</a> pour les versions à venir.</p>
<ul>
<li>la version 1.2 se voulait une version corrective de la 1.1 . N&rsquo;ayant pas de bugs majeurs, elle n&rsquo;existera pas !</li>
<li>la version 1.3 va se focaliser sur la standardisation de l&rsquo;outillage ligne de commande, et ajoutera les types Tuples ainsi que la visibilité protected ;</li>
<li>la version 1.4 ajoute le type union ;</li>
<li>la version 1.5 et supérieur (2.0) veulent ajouter des fonctionnalités compatibles ES6.</li>
</ul>
<p>Cette annonce est par ailleurs intéressante car elle met en lumière le fait que les équipes Microsoft travaillant sur TypeScript travaillent activement avec Facebook et Google car ces 2 entreprises sont chacunes en train de créer un langage super-ensemble de JavaScript typé statiquement (Flow pour Facebook et AtScript pour Google). On voit ici que la vieille réputation de Microsoft n&rsquo;est plus d&rsquo;actualité et qu&rsquo;ils ont compris que le partage était la meilleure façon de s&rsquo;enrichir !</p>
<h3 id="RevuedePresseXebia-AnnoncedeJquery3.0.0">Annonce de Jquery 3.0.0</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/8847b14eee72162957c0f4c0d462b8ee'><img title='http://www.gravatar.com/8847b14eee72162957c0f4c0d462b8ee' src='https://secure.gravatar.com/avatar/8847b14eee72162957c0f4c0d462b8ee.jpg?s=24' alt='http://www.gravatar.com/8847b14eee72162957c0f4c0d462b8ee' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/blemoine'><img title='http://blog.xebia.fr/author/blemoine' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/blemoine' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/benoit_lemoine'><img title='http://twitter.com/benoit_lemoine' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/benoit_lemoine' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://github.com/mbreton'><img title='http://github.com/mbreton' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-github.png' alt='http://github.com/mbreton' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/blemoine'>Benoit Lemoine</a></span></div>
<p>JQuery annonce cette semaine <a rel="nofollow" target="_blank" href="http://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/">l&rsquo;arrivée prochaine de sa version 3.0.0</a>. Cette version remplacera et la branche 1.x.x et la branche 2.x.x. Cependant pas de panique, il y aura 2 builds différents :</p>
<ul>
<li>Jquery 3.0.0 supportera les 2 dernières versions des browsers principaux du marché</li>
<li>Jquery 3.0.0 compat supportera les vieux Internet Explorer.</li>
</ul>
<p>La majorité des API restant rétro compatible, ce saut de version marque surtout la fin du double versionning. Et prouve que l&rsquo;on peut être une librairie mainstream, et respecter correctement le <a rel="nofollow" target="_blank" href="http://semver.org/">versionning semantique</a>. N&rsquo;est ce pas <a rel="nofollow" target="_blank" href="https://github.com/jashkenas/underscore/issues/1805">underscore.js</a>.</p>
<h2 id="RevuedePresseXebia-Back">Back</h2>
<h3 id="RevuedePresseXebia-Redisoumemcached?Commentchoisir">Redis ou memcached ? Comment choisir</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd'><img title='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd' src='https://secure.gravatar.com/avatar/37a6259cc0c1dae299a7866489dff0bd.jpg?s=24' alt='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/romain-niveau%2F'><img title='http://blog.xebia.fr/author/romain-niveau%2F' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/romain-niveau%2F' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/RomainNV'><img title='http://twitter.com/RomainNV' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/RomainNV' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://github.com/RNiveau'><img title='http://github.com/RNiveau' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-github.png' alt='http://github.com/RNiveau' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/romain-niveau%2F'>Romain Niveau</a></span></div>
<p>Redis et memcached sont deux outils open source utilisés pour faire du cache distribué. Les deux existent depuis quelques années et ont fait leurs preuves en production.</p>
<p>Comment choisir entre les deux ? </p>
<p><a rel="nofollow" target="_blank" href="http://www.javaworld.com/article/2836878/developer-tools-ide/why-redis-beats-memcached-for-caching.html#tk.rss_enterprisejava">Cet article</a> nous propose de revoir les similarités entre les deux outils ainsi que leurs principales différences afin de nous aider à choisir.</p>
<p> </p>
<h3 id="RevuedePresseXebia-SpringAMQP1.4RC1">Spring AMQP 1.4 RC1</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd'><img title='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd' src='https://secure.gravatar.com/avatar/37a6259cc0c1dae299a7866489dff0bd.jpg?s=24' alt='http://www.gravatar.com/37a6259cc0c1dae299a7866489dff0bd' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/null'><img title='http://blog.xebia.fr/author/null' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/null' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/%40njozwiak'><img title='http://twitter.com/%40njozwiak' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/%40njozwiak' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://github.com/njozwiak'><img title='http://github.com/njozwiak' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-github.png' alt='http://github.com/njozwiak' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/null'>Nicolas Jozwiak</a></span></div>
<p>Spring publie la version <a rel="nofollow" target="_blank" href="http://projects.spring.io/spring-amqp/">Release Candidate de AMQP</a>. Voici les nouveautés et améliorations :</p>
<ul>
<li>Annotation @SendTo pour envoyer le résultat d&rsquo;une méthode </li>
<li>Ajout du RabbitMessagingTemplate</li>
<li>Ajout du Logback appender AmqpAppender</li>
<li>Ajout du support pour RabbitMQ 3.4.0</li>
</ul>
<p>Vous trouverez plus de précisions à <a rel="nofollow" target="_blank" href="https://jira.spring.io/secure/ReleaseNote.jspa?version=14724&amp;projectId=10450">cette adresse</a>.</p>
<h2 id="RevuedePresseXebia-Lecoindelatechnique">Le coin de la technique</h2>
<h3 id="RevuedePresseXebia-DevFestNantes">DevFest Nantes</h3>
<div class="c2w-author"><div class="c2w-author-icons"><a rel="nofollow" class='c2w-author-icon c2w-author-gravatar' target="_blank" href='http://www.gravatar.com/742c61e904b91c905521a640c2dc0427'><img title='http://www.gravatar.com/742c61e904b91c905521a640c2dc0427' src='https://secure.gravatar.com/avatar/742c61e904b91c905521a640c2dc0427.jpg?s=24' alt='http://www.gravatar.com/742c61e904b91c905521a640c2dc0427' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://blog.xebia.fr/author/tguerin'><img title='http://blog.xebia.fr/author/tguerin' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-xebia.png' alt='http://blog.xebia.fr/author/tguerin' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://twitter.com/Tom404_'><img title='http://twitter.com/Tom404_' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-twitter.png' alt='http://twitter.com/Tom404_' width='24' height='24'/></a><a rel="nofollow" class='c2w-author-icon' target="_blank" href='http://github.com/tguerin'><img title='http://github.com/tguerin' src='http://blog.xebia.fr/wp-content/plugins/confluence2wordpress/img/rkc-social-set/24x24/24x24-github.png' alt='http://github.com/tguerin' width='24' height='24'/></a></div><span class='c2w-author-name'>Par <a rel="nofollow" target="_blank" href='http://blog.xebia.fr/author/tguerin'>Thomas Guerin</a></span></div>
<p>Le vendredi 7 Novembre de 8h20 à 18h se tiendra la 3ème édition du DevFest Nantesà la Cité des Congrès. Cette année 24 sessions réparties en 5 tracks (Mobile, Cloud, Web et Découverte) sont au programme. Au menu ManageVM, Android Wear, Docker, Firefox OS &#8230;Pour plus d&rsquo;informations le programme est disponible ici : <a rel="nofollow" target="_blank" href="http://devfest.gdgnantes.com/#nav-agenda">http://devfest.gdgnantes.com/#nav-agenda</a></p>]]></content:encoded>
      </item>
      <item>
         <title>DevOps, de l’intégration continue au déploiement continu</title>
         <link>http://blog.octo.com/devops-de-lintegration-continue-au-deploiement-continu/</link>
         <description>Les premiers pas vers une industrialisation des développements consistent généralement en la mise en place d’une intégration continue. Alors que celle-ci est souvent vue comme un aboutissement, elle n’est qu’une première étape pour parvenir à des réalisations efficaces et maîtrisées. Article paru dans le magazine ICT Journal du mois de Juillet-Août 2014. Intégration continue, un [&amp;#8230;]&lt;div class='yarpp-related-rss'&gt;

Articles suggested :&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/video-du-petit-dejeuner-decryptez-les-secrets-des-geants-du-web/&quot; title=&quot;Vid&amp;#xe9;o du Petit-d&amp;#xe9;jeuner &amp;laquo;&amp;nbsp;D&amp;#xe9;cryptez les secrets des G&amp;#xe9;ants du Web&amp;nbsp;&amp;raquo;&quot;&gt;Vidéo du Petit-déjeuner &amp;laquo;&amp;nbsp;Décryptez les secrets des Géants du Web&amp;nbsp;&amp;raquo; &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/livrez-plus-vite-que-votre-ombre/&quot; title=&quot;Livrez plus vite que votre ombre&quot;&gt;Livrez plus vite que votre ombre &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.octo.com/les-systemes-mutualises-enjeux-et-risques/&quot; title=&quot;Les syst&amp;#xe8;mes mutualis&amp;#xe9;s : enjeux et risques&quot;&gt;Les systèmes mutualisés : enjeux et risques &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
         <guid isPermaLink="false">http://blog.octo.com/?p=49427</guid>
         <pubDate>Mon, 01 Sep 2014 13:25:21 +0000</pubDate>
         <content:encoded><![CDATA[<p><i>Les premiers pas vers une industrialisation des développements consistent généralement en la mise en place d’une intégration continue.</i></p>
<p><i>Alors que celle-ci est souvent vue comme un aboutissement, elle n’est qu’une première étape pour parvenir à des réalisations efficaces et maîtrisées.</i></p>
<p><a rel="nofollow" target="_blank" href="http://blog.octo.com/wp-content/uploads/2014/09/Schema.png"><img class="alignnone size-full wp-image-49664" src="http://blog.octo.com/wp-content/uploads/2014/09/Schema.png" alt="Schema"/></a></p>
<p><span id="more-49427"></span></p>
<address><strong>Article paru dans le magazine <a rel="nofollow" title="ICT Journal" target="_blank" href="http://www.ictjournal.ch/">ICT Journal</a> du mois de Juillet-Août 2014.</strong></address>
<h2>Intégration continue, un socle indispensable</h2>
<p>Pièce maîtresse de l’usine de développement, le serveur d’intégration continue est essentiel à tout projet de développement logiciel. Que ce soit Jenkins, Bamboo ou autre, il assure la bonne compilation du code, le jeu des tests unitaires, le packaging, le déploiement et l’exécution des tests dans un environnement d’intégration. Il est en outre indépendant des configurations spécifiques aux postes de développeurs pour éviter tout contournement des règles de base de qualité (assurées par SonarQube, par exemple) et garantir la répétabilité des processus.</p>
<p>Le code packagé est archivé dans un référentiel central. Cette archive sera utilisée pour le déploiement sur l’ensemble des environnements, y compris la production.</p>
<p>L’intégration continue fiabilise les activités de développement. Une fois en place, elle autorise l&rsquo;organisation projet à pousser l&rsquo;industrialisation au-delà des frontières de l&rsquo;équipe de développement.</p>
<h2>Déploiement automatisé, une nécessité</h2>
<p>Il devient alors possible d’automatiser progressivement les actions de déploiements auparavant réalisées manuellement par l’équipe d’exploitation (mise à jour de bases de données, déploiement dans un serveur d&rsquo;applications, etc.).</p>
<p>En plus de supprimer des tâches fastidieuses, cette automatisation permet de fiabiliser le processus de déploiement tout en augmentant la fréquence des livraisons pour validation auprès des utilisateurs.</p>
<p>Ces déploiements automatisés peuvent aller de scripts de déploiement dans les cas les plus simples jusqu’à la recréation complète de l’environnement cible (via des outils comme Puppet, Chef ou Docker). Tout comme le code, ces scripts et paramétrages ont leur place dans un gestionnaire de sources.</p>
<p>Cette étape ne peut être franchie sans la collaboration entre les équipes de développement et d’exploitation.</p>
<p>A ce stade, le déploiement en intégration peut d’ores et déjà se faire  automatiquement et fréquemment, s’il n’a pas d’impact au delà de l’équipe de développement. Les développeurs peuvent alors rapidement tester leur code dans un environnement proche de la cible.</p>
<p>En revanche, les déploiements sont déclenchés manuellement pour les environnements de qualification et de production, ce qui permet de rassurer l’ensemble des acteurs (équipe projet, clients et décideurs) tout en offrant un gain de temps non négligeable.</p>
<h2>Tests d’acceptation automatisés, un idéal</h2>
<p>Pour améliorer encore le time-to-market, il est nécessaire de réduire le temps dédié aux tests d’acceptation en environnement de qualification. Les testeurs, autrefois employés à les jouer de façon répétée, doivent désormais consacrer leur temps à la rédaction de tests automatisés. La qualité de ces tests ainsi que la couverture de l’application s’améliorent, ce qui assure la conformité aux attentes des utilisateurs.</p>
<p>L&rsquo;exécution des tests est assujettie au déploiement automatisé de l’application, ce qui supprime encore des étapes manuelles et fluidifie le processus de livraison.</p>
<h2>Déploiement continu en production, le graal ?</h2>
<p>De nos jours, l’intégration continue est monnaie courante et son efficacité n’est plus à prouver. Elle constitue un prérequis pour quiconque souhaite moderniser ses pratiques de développements.</p>
<p>L’automatisation des déploiements en intégration est de plus en plus répandue, elle ajoute une visibilité aux développeurs quant à leurs réalisations.</p>
<p>L’automatisation des tests d’acceptation est moins fréquente. Elle correspond à une industrialisation poussée du processus de développement qui aboutit à une réduction du time-to-market.</p>
<p>Une fois la chaîne du développement jusqu’à la qualification maîtrisée, il ne reste plus qu&rsquo;un pas à franchir pour parvenir au déploiement continu en production. Seule une poignée d’acteurs ont franchi le pas, de par la nature de leur activité (Google, Twitter, Amazon, etc.).</p>
<p>C&rsquo;est ici que le changement est perçu comme le plus important, tant l&rsquo;impact humain est grand. Des freins organisationnels notables subsistent (respect des normes, frilosité, communication lors des mises en production), et le bénéfice n’est pas évident pour tout le monde.</p>
<p dir="ltr">
<div class='yarpp-related-rss'>
<p>Articles suggested :</p><ol>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/video-du-petit-dejeuner-decryptez-les-secrets-des-geants-du-web/" title="Vid&#xe9;o du Petit-d&#xe9;jeuner &laquo;&nbsp;D&#xe9;cryptez les secrets des G&#xe9;ants du Web&nbsp;&raquo;">Vidéo du Petit-déjeuner &laquo;&nbsp;Décryptez les secrets des Géants du Web&nbsp;&raquo; </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/livrez-plus-vite-que-votre-ombre/" title="Livrez plus vite que votre ombre">Livrez plus vite que votre ombre </a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.octo.com/les-systemes-mutualises-enjeux-et-risques/" title="Les syst&#xe8;mes mutualis&#xe9;s : enjeux et risques">Les systèmes mutualisés : enjeux et risques </a></li>
</ol>
</div>]]></content:encoded>
      </item>
      <item>
         <title>Vidéos de la matinée Journée DevOps</title>
         <link>http://blog.xebia.fr/2014/07/30/videos-de-la-matinee-journee-devops/</link>
         <description>Retour sur la Journée DevOps organisée dans nos locaux le 10 juin dernier. L&amp;#8217;objectif de cette matinée, dédiée au mouvement DevOps et au Continuous Delivery, était d&amp;#8217;échanger sur les synergies entre les équipes, les pratiques managériales et les outils afin de délivrer le meilleur logiciel aux clients de l&amp;#8217;entreprise.Nous avons le plaisir de partager avec [...]</description>
         <guid isPermaLink="false">http://blog.xebia.fr/?p=19623</guid>
         <pubDate>Wed, 30 Jul 2014 08:06:07 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://blog.xebia.fr/wp-content/uploads/2014/05/DEVOPS_FUSION_illustration_violet.jpg"><img class=" wp-image-18252 alignleft" src="http://blog.xebia.fr/wp-content/uploads/2014/05/DEVOPS_FUSION_illustration_violet-300x169.jpg" alt="DEVOPS_FUSION_illustration_violet.jpg" width="332" height="187"/><br />
</a></p>
<p>Retour sur la Journée DevOps organisée dans nos locaux le 10 juin dernier.</p>
<p>L&rsquo;objectif de cette matinée, dédiée au mouvement DevOps et au Continuous Delivery, était d&rsquo;échanger sur les synergies entre les équipes, les pratiques managériales et les outils afin de délivrer le meilleur logiciel aux clients de l&rsquo;entreprise.Nous avons le plaisir de partager avec vous les différentes sessions de la matinée sur <a rel="nofollow" target="_blank" href="https://vimeo.com/xebia">notre chaîne Viméo</a></p>
<p><span id="more-19623"></span></p>
<p>En cliquant sur les liens, retrouvez :</p>
<p><a rel="nofollow" target="_blank" href="https://vimeo.com/101517784">&#8211;  la Keynote d&rsquo;ouverture de Carlos Goncalves &#8211; Directeur des systèmes d&rsquo;information de la banque de Grande Clientèle &amp; Solutions aux Investisseurs, Société Générale</a></p>
<p><a rel="nofollow" target="_blank" href="https://vimeo.com/101382151">&#8211; Le retour d&rsquo;expérience d&rsquo;Antoine Raith, Responsable Développement socle eCommerce, SFR</a></p>
<p><a rel="nofollow" target="_blank" href="https://vimeo.com/101310993">&#8211; Le retour d&rsquo;expérience avec Gilles Philippart, Coach Agile, Banque de Grande Clientèle et Solutions aux Investisseurs, Société Générale</a></p>
<p>Bonne séance !</p>]]></content:encoded>
      </item>
      <item>
         <title>Du monitoring à la matière noire</title>
         <link>https://cfalguiere.wordpress.com/2014/05/31/du-monitoring-a-la-matiere-noire/</link>
         <description>La présentation sur le monitoring du Breizhcamp se trouve &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fr.slideshare.net/claude.falguiere/pres-monitoring-v2&quot;&gt;là&lt;/a&gt;. J'ai aussi apporté quelques précisions sur le rapprochement que j'ai fait avec la matière noire.&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=cfalguiere.wordpress.com&amp;#038;blog=7986623&amp;#038;post=1673&amp;#038;subd=cfalguiere&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <guid isPermaLink="false">http://cfalguiere.wordpress.com/?p=1673</guid>
         <pubDate>Sat, 31 May 2014 20:09:58 +0000</pubDate>
         <content:encoded><![CDATA[<p>J&rsquo;ai participé au Breizhcamp cette année avec une présentation sur le monitoring.</p>
<p>Au passage merci aux organisateurs pour cette édition 2014. Les conférences sont toujours l&rsquo;occasion de discussions passionnées sur les sujets les plus chaud du moment et puis c&rsquo;est cool finalement de pouvoir assister à des conférences sans rien avoir à faire. Bravo aussi à l&rsquo;initiative de faire un repas ouvert à tous le jeudi soir. On a ainsi pu partager les discussions passionnées des speaker diners avec d&rsquo;autres passionnés.</p>
<p></p>
<p>Le but ce cette présentation est de revoir un peu nos idées reçues sur le monitoring. Même si le sujet n&rsquo;est pas forcément très hype, Lean et Devops changent notre vision des mesures et les outils BigData viennent à notre secours.</p>
<p>La présentation se trouve <a rel="nofollow" target="_blank" href="http://fr.slideshare.net/claude.falguiere/pres-monitoring-v2">là</a>.</p>
<div align="center" style="margin-bottom:20px;">
 
</div>
<p><a rel="nofollow" target="_blank" href="https://twitter.com/seb_brousse">Sébastien Brousse</a> a twitté sur une partie de la présentation où je fais un détour par la <strong>matière noire</strong>. Je pense que le rapport avec le monitoring est peu évident sans les explications que j&rsquo;ai donné de vive voix et le <a rel="nofollow" target="_blank" href="http://www.slideshare.net/claude.falguiere/pres-monitoring-v2">slide</a> ne vous sera pas forcément d&rsquo;une grande aide.</p>
<p>Pour ceux qui n&rsquo;étaient là en attendant la vidéo voici les explications et même quelques infos supplémentaires.</p>
<h2>Mais pourquoi la matière noire ?</h2>
<p>Non, je n&rsquo;ai pas changé de métier, la présentation parlait bien de <strong>monitoring</strong>.</p>
<p>Tout d&rsquo;abord il y a peu de <strong>femmes dans l&rsquo;informatique</strong> et donc dans les conférences, et c&rsquo;était l&rsquo;occasion d&rsquo;avoir deux grandes dames avec nous, <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Margaret_Burbidge">Margaret Burbidge</a> et <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Vera_Rubin">Vera Rubin</a>, deux astrophysiciennes.</p>
<p>La première a imaginé <strong>le concept de matière noire</strong>, la seconde a poursuivi les travaux et mis au point <strong>une méthode pour prouver son existence</strong>.</p>
<p>Nous on est n&rsquo;est pas des astrophysiciens, je vais rester à un niveau assez général. Pour les détails, sur la <a rel="nofollow" target="_blank" href="http://fr.wikipedia.org/wiki/Mati%C3%A8re_noire">matière noire</a> je vous renvoie à <a rel="nofollow" target="_blank" href="http://fr.wikipedia.org/wiki/Mati%C3%A8re_noire">Wikipedia</a>.</p>
<h2>Des galaxies prises en excès de vitesse</h2>
<div style="float:left;margin-right:15px;margin-bottom:15px;margin-top:5px;">
<img src="https://cfalguiere.files.wordpress.com/2014/05/pia04224_ip_web_square.jpg?w=630" style="width:150px;height:150px;"/>
</div>
<p>Cette découverte a un rapport avec le monitoring  parce que tout ça découle de <strong>problèmes de mesure</strong>.</p>
<p>Les astronomes avait constaté depuis longtemps que les <strong>galaxies spirales tournaient trop vite</strong> par rapport à la <strong>masse</strong> qu&rsquo;elles sont supposées avoir d&rsquo;après les mesures.</p>
<p>Plusieurs hypothèses ont été avancées pour expliquer cette bizarrerie en particulier l&rsquo;imprécision des mesures.</p>
<p>Dans les années 1970, <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Margaret_Burbidge">Margaret Burbidge</a> a refait les mesures avec toute la précision des moyens de l&rsquo;époque. Et là, ça ne collait toujours pas.</p>
<p>Plutôt que de remettre en cause les mesures, <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Margaret_Burbidge">Margaret Burbidge</a>  a <strong>remis en cause le raisonnenment</strong>. Si la vitesse ne colle pas avec la masse, c&rsquo;est que <strong>la masse n&rsquo;est pas celle que l&rsquo;on pense</strong>.</p>
<p>A cette époque on <strong>évalue la masse</strong> à partir des objets que l&rsquo;on peut <strong>observer au téléscope</strong>, donc ceux qu&rsquo;on peut voir parce qu&rsquo;ils émettent de la <strong>lumière</strong>. Par conséquent, elle en a déduit qu&rsquo;il y a dans les galaxies quelque chose <strong>qui a une masse</strong> mais que l&rsquo;on ne voit pas parce que ça <strong>n&rsquo;émet pas de lumière</strong>. C&rsquo;est le concept de <strong>matière noire</strong>.</p>
<div style="float:right;margin-left:15px;margin-bottom:15px;">
<img src="https://cfalguiere.files.wordpress.com/2014/05/mwart_spitzer_c42_ap050825_web_square.jpg?w=630" style="width:150px;height:150px;"/>
</div>
<p><a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Vera_Rubin">Vera Rubin</a> qui travaillait avec Margaret Burbidge a apporté des éléments de preuve en mettant au point <strong>une méthode de calcul de la masse</strong> basée sur l&rsquo;<strong>influence gravitationnelle</strong> de la galaxie sur son environnement, ce qu&rsquo;on appelle la <strong>masse dynamique</strong>. A la différence de la masse lumineuse, la masse dynamique est <strong>compatible avec la vitesse de rotation</strong> des galaxie spirales. Et la masse dynamique basée directement sur l&rsquo;effet de la masse n&rsquo;a pas de raison d&rsquo;être fausse, ce qui justifie qu&rsquo;il y a un <strong>élément non visible ayant une masse</strong>.</p>
<h2>Bon, d&rsquo;accord mais moi je mesure des requêtes HTTP</h2>
<div style="float:left;margin-right:15px;margin-bottom:15px;margin-top:5px;">
<img src="https://cfalguiere.files.wordpress.com/2014/05/m81loop_miller_960_ap130416_web.jpg?w=630" style="height:150px;"/>
</div>
<p>Ok, nous on ne mesure pas des galaxies, mais même si on peut parfois regarder le serveur, enfin la boîte, finalement ce qu&rsquo;on mesure est tout aussi <strong>peu visualisable</strong>.</p>
<p>Cette histoire montre que c&rsquo;est important de <strong>mesurer de la bonne manière</strong>.</p>
<p>Si on mesure des <strong>effets indirects</strong>, on est dépendant d&rsquo;un <strong>modèle</strong>. Ce modèle c&rsquo;est l&rsquo;idée qu&rsquo;on se fait du fonctionnement du système et il peut être faux.</p>
<p>Dans un certain nombre de cas, cette mesure indirecte marche, par exemple la masse lumineuse convient pour les objets très lumineux comme les étoiles. Mais de temps en temps, ça ne marche pas.</p>
<p>Bien sûr, on n&rsquo;a pas toujours la possibilité de mesurer l&rsquo;effet direct, et de temps en temps on doit se baser sur une mesure indirecte parce que c&rsquo;est plus <strong>abordable</strong>. Dans ce cas il faut rester vigilant, et savoir remettre en cause le modèle qu&rsquo;on se fait du système.</p>
<h2>Notre matière noire</h2>
<div align="center">
<div style="margin-bottom:15px;margin-top:15px;margin-top:5px;">
<img src="https://cfalguiere.files.wordpress.com/2014/05/eso510_hst_960_web_bandeau.jpg?w=630" style="height:150px;"/>
</div>
</div>
<p>Qu&rsquo;est ce que c&rsquo;est <strong>notre matière noire</strong> à nous les informaticiens ?</p>
<p>Ce sont les <strong>caches</strong>, les <strong>buffers</strong>, les <strong>load balancers</strong>, les <strong>heuristiques</strong> sur les files d&rsquo;attente, les <strong>optimisations</strong> de JVM, tout un tas de <strong>mécanismes internes</strong> au système qui le rendent plus performant, mais qui font aussi que certaines de nos mesures ont un comportement erratique ou n&rsquo;ont plus de sens dans certaines situations.</p>
<p>Au final, mesurer correctement les performances d&rsquo;un système ou d&rsquo;une application informatiques est une activité qui réserve toujours des <strong>surprises</strong>. On ne peut pas se contenter de poser des sondes au petit bonheur la chance sans comprendre ce qu&rsquo;on fait. Il faut <strong>comprendre</strong> le système et comment il <strong>fonctionne</strong> pour le mesurer correctement.</p>
<p>On a un peu plus de chances, en cas de doute on peut souvent se reporter à la <strong>documentation</strong> (quoique à la réflexion pas toujours) ou demander au <strong>développeur</strong> (enfin des fois … ).</p>
<p>Mais par contre, un cache c&rsquo;est <strong>beaucoup moins beau</strong> sur les photos qu&rsquo;une <strong>galaxie spirale</strong>.</p>
<div align="center">
<img src="https://cfalguiere.files.wordpress.com/2014/05/ap030310_web_square.jpg?w=630" style="margin-left:auto;margin-right:auto;width:300px;height:300px;"/>
</div>
<div style="clear:both;">
<p>
<div style="margin-top:20px;">
Les images proviennent toutes de la <a rel="nofollow" target="_blank" href="http://www.nasa.gov/multimedia/imagegallery/">galerie d&rsquo;images de la Nasa</a>.
</div><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/cfalguiere.wordpress.com/1673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cfalguiere.wordpress.com/1673/"/></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=cfalguiere.wordpress.com&#038;blog=7986623&#038;post=1673&#038;subd=cfalguiere&#038;ref=&#038;feed=1" width="1" height="1"/></div>]]></content:encoded>
         <media:content medium="image" url="https://1.gravatar.com/avatar/7fecc53133b5620858e75dc10d1d1a6a?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">cfalguiere</media:title>
         </media:content>
         <media:content medium="image" url="https://cfalguiere.files.wordpress.com/2014/05/pia04224_ip_web_square.jpg"/>
         <media:content medium="image" url="https://cfalguiere.files.wordpress.com/2014/05/mwart_spitzer_c42_ap050825_web_square.jpg"/>
         <media:content medium="image" url="https://cfalguiere.files.wordpress.com/2014/05/m81loop_miller_960_ap130416_web.jpg"/>
         <media:content medium="image" url="https://cfalguiere.files.wordpress.com/2014/05/eso510_hst_960_web_bandeau.jpg"/>
         <media:content medium="image" url="https://cfalguiere.files.wordpress.com/2014/05/ap030310_web_square.jpg"/>
      </item>
      <item>
         <title>Journée DevOps – En pratique</title>
         <link>http://blog.xebia.fr/2014/05/23/journee-devops-en-pratique/</link>
         <guid isPermaLink="false">http://blog.xebia.fr/?p=18996</guid>
         <pubDate>Fri, 23 May 2014 12:31:26 +0000</pubDate>
         <content:encoded><![CDATA[<p><img src="http://blog.xebia.fr/wp-content/uploads/2014/05/NEW-header-300x144.png" alt="header-journee-devops-xebia" style="float:left;margin:0 30px 10px 10px;" class="aligncenter size-medium wp-image-19051"/><strong>Xebia</strong> organise le 10 juin prochain une  <a rel="nofollow" target="_blank" href="http://devops-day.xebia.fr/">Journée consacrée au mouvement <strong>DevOps</strong> et au <strong>Continuous Delivery</strong>.</a></p>
<p><span id="more-18996"></span></p>
<p>A cette occasion, Xebia ouvre ses portes afin d&rsquo;échanger durant une après midi sur les synergies entre les équipes d’exploitation et les équipes de développement. Le but étant de fluidifier les processus et d’atteindre un but commun : délivrer le meilleur logiciel aux clients de l’entreprise.</p>
<h2 id="Journ&#xe9;eDevOps-Enpratique-&#xa0;Programme">Programme</h2>
<ul>
<li><strong>14h-15h :</strong></li>
</ul>
<p>La boite à outils de l&rsquo;équipe DevOps<br />
Puppet, un outil pour les installer tous </p>
<ul>
<li><strong>15h05-16h05 :</strong></li>
</ul>
<p>De l&rsquo;Intégration Continue au Déploiement Continu avec Jenkins<br />Culture, automatisation, mesure et partage sont les piliers du déploiement applicatif avec XL Deploy de XebiaLabs </p>
<ul>
<li><strong>16h10-17h10</strong> :</li>
</ul>
<p>Graphite, un outil de monitoring applicatif<br />Atelier AppDynamics </p>
<ul>
<li><strong>17h15-18h15 :</strong></li>
</ul>
<p>Tests de performance en continu<br />Des dashboards pour tous avec ElasticSearch, Logstash et Kibana</p>
<h2 id="Journ&#xe9;eDevOps-Enpratique-Intervenants">Intervenants</h2>
<ul>
<li> Clément Rochas, consultant chez Xebia, </li>
<li> Matthieu Nantern, consultant chez Xebia,</li>
<li> Cyrille Leclerc, Architecte Solutions chez CloudBees,</li>
<li> Geoffroy Warin, consultant chez Xebia,</li>
<li> Benoit Moussaud, directeur technique de XebiaLabs France,</li>
<li> Charles Blonde, consultant chez Xebia,</li>
<li> William Montaz, consultant chez Xebia,</li>
<li> Guillaume Arnaud, consultant chez Xebia,</li>
<li> Vincent Spiewak, consultant chez Xebia.</li>
</ul>
<h2><strong>Intéressé(e) ? Plus d&rsquo;informations ? Comment s&rsquo;inscrire ? </strong><br /><strong>Rendez-vous sur notre page dédiée à l&rsquo;événement <a rel="nofollow" target="_blank" href="http://devops-day.xebia.fr/">Journée DevOps</a>. </strong></h2>]]></content:encoded>
      </item>
      <item>
         <title>Theodo is a bronze partner of dotScale 2014</title>
         <link>http://www.theodo.fr/blog/2014/04/theodo-is-a-bronze-partner-of-dotscale-2014/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=theodo-is-a-bronze-partner-of-dotscale-2014</link>
         <description>We&amp;#8217;re happy to announce that Theodo has been confirmed as a bronze partner of dotScale 2014 ! dotScale is a unique tech conference on Scalability, DevOps and Distributed Systems. The best hackers worldwide are invited to share their insights on stage! This year&amp;#8217;s edition will count the likes of Paul Mockapetris (inventor of the DNS), [...] &lt;a rel=&quot;nofollow&quot; class=&quot;more-link&quot; target=&quot;_blank&quot; href=&quot;http://www.theodo.fr/blog/2014/04/theodo-is-a-bronze-partner-of-dotscale-2014/&quot;&gt;Read more...&lt;/a&gt;</description>
         <guid isPermaLink="false">http://www.theodo.fr/blog/?p=1578</guid>
         <pubDate>Thu, 10 Apr 2014 10:14:51 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://www.dotscale.eu/"><img src="http://www.theodo.fr/uploads/blog//2014/04/dotscale-300x144.jpg" alt="dotscale" width="300" height="144" class="aligncenter size-medium wp-image-1579"/></a></p>
<p>We&#8217;re happy to announce that Theodo has been confirmed as a <a rel="nofollow" target="_blank" href="http://www.dotscale.eu/partner/theodo" title="bronze partner dotscale 2014 Theodo">bronze partner of dotScale 2014</a> !</p>
<p>dotScale is a unique tech conference on Scalability, DevOps and Distributed Systems. The best hackers worldwide are invited to share their insights on stage! This year&#8217;s edition will count the likes of Paul Mockapetris (inventor of the DNS), Jeremy Edberg (former Reddit Chief Architect and Site Reliability lead at Netflix), Mitchell Hashimoto (creator of Vagrant) or Fabien Potencier (creator of Symfony). Many others have been announced for a promising line-up !</p>
<p>The <a rel="nofollow" target="_blank" href="http://www.dotscale.eu/" title="dotscale 2014">series of conferences</a> will take place on May 19th in Paris. See you there !</p>]]></content:encoded>
      </item>
   </channel>
</rss>
<!-- fe5.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 23:14:12 UTC 2015 -->
