tag:linuxfr.org,2005:/tags/hipster/publicLinuxFr.org : les contenus étiquetés avec « hipster »2016-09-27T19:59:17+02:00/favicon.pngtag:linuxfr.org,2005:News/375542016-09-20T17:10:36+02:002016-09-30T15:34:36+02:00CouchDB passe la seconde vitesseLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>CouchDB est une base de données de la famille NoSQL. C’est même l’une des plus anciennes, sortie en 2005. Elle est ensuite devenue un projet Apache en 2008. Elle a pris du retard sur ses concurrents sur de nombreux aspects, mais sa grande force, la réplication entre instances primaires, reste inégalée. <a href="https://pouchdb.com/">Pouchdb</a>, un portage de CouchDB en JavaScript capable de tourner dans les navigateurs, est compatible avec le <a href="http://docs.couchdb.org/en/master/replication/protocol.html">protocole de réplication de CouchDB</a> et la combinaison des deux est très intéressante pour développer des applications Web dites « progressives » (PWA), capables de travailler sans connexion Internet. Il existe d’autres implémentations compatibles avec ce protocole de réplication, dont <a href="http://www.couchbase.com/nosql-databases/couchbase-mobile">Couchbase <em>lite</em></a> pour mobile.</p>
<p>La version 2.0 de CouchDB est attendue depuis plusieurs années et a pris beaucoup de retard. Elle vient enfin de sortir avec de grandes nouveautés, dont la prise en charge du <em>clustering</em>, un nouveau moteur de « requêtage » et une interface d’administration plus moderne.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f636f75636864622e6170616368652e6f72672f696d6167652f6c6f676f4032782e706e67/logo@2x.png" alt="Logo de CouchDB" title="Source : https://couchdb.apache.org/image/logo@2x.png"></p></div><ul><li>lien nᵒ 1 : <a title="https://blog.couchdb.org/2016/09/20/2-0/" hreflang="en" href="https://linuxfr.org/redirect/98178">Annonce de la sortie de CouchDB 2.0</a></li><li>lien nᵒ 2 : <a title="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces99" hreflang="en" href="https://linuxfr.org/redirect/98179">Communiqué de la fondation Apache sur la sortie de CouchDB 2.0</a></li><li>lien nᵒ 3 : <a title="https://couchdb.apache.org/" hreflang="en" href="https://linuxfr.org/redirect/98180">Site officiel de CouchDB</a></li><li>lien nᵒ 4 : <a title="http://www.pocketjavascript.com/blog/2015/11/23/introducing-pokedex-org" hreflang="en" href="https://linuxfr.org/redirect/98181">Pokedex, un exemple de Progressive Web App, utilisant CouchDB</a></li><li>lien nᵒ 5 : <a title="https://linuxfr.org/news/donnez-votre-avis-sur-la-nouvelle-architecture-de-cozy" hreflang="fr" href="https://linuxfr.org/redirect/98182">DLFP : la nouvelle architecture de Cozy Cloud s’appuie sur CouchDB</a></li></ul><div><h3 id="clustering">Clustering</h3>
<p>C’est la grande nouveauté de cette version 2. Il est maintenant possible d’avoir une grappe de serveurs CouchDB et communiquer avec celle‐ci sans avoir à se soucier de quelle instance possède quel document. CouchDB écoute maintenant sur deux ports : sur 5984, c’est toujours ce que l’on avait avec CouchDB 1 et les requêtes envoyées dessus ne concernent que l’instance locale, et sur 5986 pour parler à tout le <em>cluster</em>.</p>
<p>Cette implémentation repose sur <a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html">Dynamo, le papier écrit par Amazon</a> et répond à trois problématiques :</p>
<ol>
<li>la tolérance aux pannes : si un serveur n’est plus disponible, les bases de données sur cette grappe restent accessibles ;</li>
<li>les performances : comme chaque serveur ne possède qu’une partie des données, il n’a pas besoin d’indexer l’intégralité des données et cela réduit donc sa charge ;</li>
<li>la capacité : il est maintenant possible de stocker des volumes de données qui ne tiennent pas sur un seul serveur.</li>
</ol><h3 id="fauxton-pour-administrer-couchdb">Fauxton pour administrer CouchDB</h3>
<p>L’API de CouchDB pour manipuler les bases de données et les documents à l’intérieur de celles‐ci est en HTTP. L’interface d’administration peut ainsi se résumer à une simple page HTML avec du JavaScript. Anciennement, cette page s’appelait Futon. Une nouvelle version, Fauxton, totalement réécrite est arrivée dans CouchDB 2.0. Elle a un look plus moderne, le code est plus facile à maintenir et elle offre une interface plus simple à utiliser.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f646c2e64726f70626f7875736572636f6e74656e742e636f6d2f732f73726c7a706f30736f6764303273712f53637265656e73686f74253230323031362d30372d323725323031342e33312e32332e706e67/Screenshot%202016-07-27%2014.31.23.png" alt="Capture d'écran de Fauxton" title="Source : https://dl.dropboxusercontent.com/s/srlzpo0sogd02sq/Screenshot%202016-07-27%2014.31.23.png"></p>
<h3 id="mango-pour-des-requêtes-plus-simples">Mango pour des requêtes plus simples</h3>
<p>Le système d’indexation et « requêtage » de CouchDB 1.0, qui passe par la construction de vues en <em>map/reduce</em> est compliqué à prendre en main pour les nouveaux venus. Il est toujours utilisable dans CouchDB 2.0, mais une nouvelle interface est maintenant disponible pour cela. Elle s’inspire du <code>find()</code> de MongoDB et se nomme Mango.</p>
<h3 id="améliorations-générales-des-performances">Améliorations générales des performances</h3>
<p>Un travail plus général d’amélioration des performances a été mené. Par exemple, les discussions avec l’équipe de PouchDB ont permis d’ajouter une nouvelle méthode à l’API HTTP de CouchDB pour accélérer les réplications. Les processus de <em>compaction</em> ont également été revus : ils sont plus efficaces et les bases de données après <em>compaction</em> sont maintenant réécrites pour optimiser les requêtes suivantes en regroupant certaines données.</p></div><div><a href="https://linuxfr.org/news/couchdb-passe-la-seconde-vitesse.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/110075/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/couchdb-passe-la-seconde-vitesse#comments">ouvrir dans le navigateur</a>
</p>
Bruno MichelDavy DefaudXavier TeyssierBenoît Sibaudhttps://linuxfr.org/nodes/110075/comments.atomtag:linuxfr.org,2005:Diary/366572016-06-13T16:16:41+02:002016-06-13T16:16:41+02:00Du neuf, enfin !Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Si vous avez comme moi fait le constat, un tantinet désabusé, que les vraies innovations high-tech, les nouveautés informatiques excitantes, se font désespérément rares depuis bien longtemps, ce soir est l'occasion ou jamais de <em>"cheer up"</em> un bon coup, si je puis dire !</p>
<p>Eh oui, à 19h, Tim Cook va monter une nouvelle fois sur l'estrade pour lancer la keynote "WWDC", événement retentissant s'il en est, dont on s'est habitué (au point que c'en est presque devenu une évidence) à ce qu'il donne le ton et l'orientation globale aux prochaines avancées de l'industrie informatique/télécom mondiale.</p>
<p>Quelles surprises la <em>core team</em> Apple nous réserve donc pour cette édition 2016 ? Malgré la culture du secret chère à la pomme, quelques infos fuitent toujours ici et là et vont alimenter les sites spécialisés avides de rumeurs. Sans prendre trop de risque, voici entre autres à quoi l'on peut s'attendre : </p>
<ul>
<li><p>Les nouveaux systèmes d'exploitation, iOS en version 10 et OS X qui serait à l'occasion renommé… MacOS ! Un nom dans lequel on peut voir, outre l'aspect "retour aux sources" (qui renoue avec la glorieuse époque de l'invention du premier système à interface graphique pilotée à la souris), une volonté affichée de se rapprocher encore plus de la convivialité attendue d'un OS grand-public, par la suppression du "X" marquant l'héritage un peu trop lourd et <em>nerdy</em> d'Unix… Lister la pléthore d'évolutions pressenties qui seraient embarquées dans ces nouveaux OS serait par trop fastidieux, mais notons tout de même le choix audacieux de refonte d'Apple Music avec une interface entièrement en noir et blanc ! Autre gros pavé dans la mare, l'annonce d'une ouverture de compatibilité avec Android - de quoi faire taire le choeur des <em>hateboys</em> prompts à pointer du doigt une soi-disant "fermeture" de l'écosystème Apple…</p></li>
<li><p>Une entrée de plain-pied dans l'ère de l'IoT, des objets intelligents, de la maison connectée, avec une application intégrée au design et à la qualité signés Apple, tirant parti d'un puissant "HomeKit", et couplée à un accroissement spectaculaire des capacités de Siri,</p></li>
<li><p>Après une entrée prudente sur le marché des montres connectées (où Apple a tout de même finalement raflé la part du lion malgré son arrivée bien longtemps après la concurrence), le passage à la vitesse supérieure : l'Apple Watch monte en puissance et a l'ambition de passer du statut de gadget à celui d'objet indispensable du quotidien.</p></li>
<li><p>Côté matériel, si l'annonce de la Watch2 est probablement encore prématuré, il se murmure que des nouveaux MacBook et MacPro aux caractéristiques inégalées pourraient faire une apparition à la keynote… pour le fameux <em>"One More Thing"</em> peut-être ?</p></li>
</ul><p>Comme on le voit, un programme plus qu'alléchant, qu'on pourra <a href="http://www.apple.com/apple-events/june-2016/">suivre en direct ici</a> ou via les nombreux médias couvrant l'événement ! A dans quelques heures donc !!</p><div><a href="https://linuxfr.org/users/chrisix/journaux/du-neuf-enfin.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/109246/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/chrisix/journaux/du-neuf-enfin#comments">ouvrir dans le navigateur</a>
</p>
Sten Spårvagnhöghttps://linuxfr.org/nodes/109246/comments.atomtag:linuxfr.org,2005:News/372882016-05-12T10:20:13+02:002016-05-12T16:10:54+02:00Node.js passe la sixième vitesseLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Node.js est la principale implémentation du langage JavaScript côté serveur. Elle utilise V8, le moteur JavaScript de Google Chrome, et vient d’atteindre la version 6.0.0 le 26 avril 2016.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f6e6f6465626c6f672e66696c65732e776f726470726573732e636f6d2f323031312f30372f6e6f64656a732e706e67/nodejs.png" alt="Logo Node.js" title="Source : https://nodeblog.files.wordpress.com/2011/07/nodejs.png"></p>
<p>La montée de version de V8 vers la version 5.0 a d'ailleurs permis une meilleure prise en charge d'ES6, avec 93 % des fonctionnalités couvertes. Parmi les autres nouveautés, on trouve des performances accrues (notamment pour le chargement des modules), une meilleure stabilité et utilisabilité des API JavaScript (notamment <em>Buffer</em> et <em>File System</em>).</p>
<p>Peu de temps après la sortie de la version 6.0.0, des failles OpenSSL ont été annoncées, ce qui a conduit à la sortie d'une version 6.1.0.</p></div><ul><li>lien nᵒ 1 : <a title="https://nodejs.org/en/blog/release/v6.0.0/" hreflang="en" href="https://linuxfr.org/redirect/97135">Annonce de la sortie de node.js 6.0.0</a></li><li>lien nᵒ 2 : <a title="https://nodejs.org/en/" hreflang="en" href="https://linuxfr.org/redirect/97136">Le site officiel de node.js</a></li><li>lien nᵒ 3 : <a title="https://nodejs.org/en/blog/vulnerability/openssl-may-2016/" hreflang="en" href="https://linuxfr.org/redirect/97137">Mise à jour de sécurité suite aux failles OpenSSL</a></li><li>lien nᵒ 4 : <a title="http://node.green/" hreflang="en" href="https://linuxfr.org/redirect/97138">Prise en charge d'ES6 par les différentes versions de node.js</a></li><li>lien nᵒ 5 : <a title="https://www.twilio.com/blog/2015/10/asyncawait-the-hero-javascript-deserved.html" hreflang="en" href="https://linuxfr.org/redirect/97139">Une présentation d'async/await</a></li><li>lien nᵒ 6 : <a title="http://geekforbrains.com/post/after-a-year-of-nodejs-in-production" hreflang="en" href="https://linuxfr.org/redirect/97140">Retour d'expérience sur un an d'utilisation de node.js</a></li></ul><div><h3 id="les-différentes-versions">Les différentes versions</h3>
<p>Ce n'est pas facile de suivre les différentes branches de node.js suite au fork io.js, qui a ensuite refusionné avec node.js. Toutefois, la situation n'est que temporaire et on devrait y voir plus clair d'ici la fin de l'année. En attendant, voici un petit résumé :</p>
<ul>
<li>node.js 0.10 : une vieille version, qui est toujours celle <a href="https://packages.debian.org/search?keywords=nodejs">packagée par Debian</a> notamment, est en phase de maintenance jusqu'à octobre 2016 (ensuite, ce sera les oubliettes)</li>
<li>node.js 0.12 : pareil, mais la phase de maintenance durera jusque décembre 2016</li>
<li>node.js 4 : c'est la version LTS actuelle. Elle sera en <em>LTS Active</em> jusqu'avril 2017, puis passera en phase de maintenance pour une année supplémentaire</li>
<li>node.js 5 : c'est juste une version de développement et elle s'arrêtera dans 2 mois</li>
<li>node.js 6 : c'est également une version de développement (<em>current</em>) et deviendra une version LTS en octobre 2016. D'ici là, il pourra encore y avoir des changements assez conséquents (montée de version de V8 notamment).</li>
</ul><p>Donc, pour le moment, il est recommandé d'utiliser node.js 4 en production et de commencer à faire tourner des tests avec node.js 6 dans les environnements d'intégration continue pour détecter les régressions. À noter que pas mal de modules npm compilés sont en train d'être corrigés pour node.js 6.</p>
<h3 id="npm3">Npm3</h3>
<p>Node.js 5 et 6 viennent avec npm3 et non plus npm2. Ce changement est majeur.</p>
<p>Avec npm2, les dépendances d'une dépendance s'installaient dans le répertoire <code>node_modules</code> de la dépendance. Et donc, on pouvait avoir un même module avec deux versions différentes au sein d'un même projet, si deux dépendances incluaient ce module dans des versions différentes. Avec npm3, ce n'est plus le cas. Toutes les dépendances (directes et indirectes) sont installées dans le <code>node_modules</code> du projet.</p>
<p>Ce changement a permis de régler pas mal de problèmes sous Windows, où les dépendances de dépendances de dépendances de… (vous voyez l'idée) avaient des chemins très longs, trop longs pour Windows. Il permet également de s'assurer qu'un module n'est installé qu'une seule fois par projet, ce qui est très utile pour les projets front-end qui utilisent npm.</p>
<p>Par contre, le passage à npm3 n'a pas que des bons côtés. Ce changement a introduit pas mal de régressions et la situation commence juste à se stabiliser. Npm3 est également de façon notoire bien plus lent que npm2.</p>
<h3 id="es6-es7-et-la-suite">ES6, ES7 et la suite</h3>
<p>ES6, ou ES2015, la version actuelle du standard qui décrit le langage JavaScript est le fruit d'un long travail et les implémentations des moteurs JavaScript supportent la plupart des fonctionnalités. Que ce soit chez Google, Mozilla, Microsoft ou Apple, on est proche des 100 %, avec jusque quelques bugs sur des cas très particuliers ou la volonté de ne pas implémenter les <em>Tail Calls Optimisation</em> (car ils posent des problèmes).</p>
<p>Pour autant, tout n'est pas rose. Les nouvelles fonctionnalités ne sont pas aussi optimisées que le reste. Les benchmarks montrent qu'il est fréquent que du code ES6 soit entre un et trois ordres de grandeur plus lent que son équivalent en ES5. Les moteurs vont combler ces différences mais cela risque de prendre encore quelques mois ou années.</p>
<p>Autre point noir : les modules d'ES6. L'équipe derrière node.js a fait <a href="https://github.com/nodejs/node-eps/blob/master/002-es6-modules.md">une proposition pour prendre en charge les modules d'ES6</a> (en disant que s'ils vont faire les modules d'ES6, ce sera de cette façon, mais il se peut aussi qu'ils ne fassent rien car ils considèrent que les modules d'ES6 sont une mauvaise chose et que le standard devrait étudier à nouveau cette question). Cette proposition n'a pas plu à une partie de la communauté car elle introduit l'extension <code>.mjs</code>, ce qui va poser problème pour les modules qui seront utilisables à la fois par node.js et les navigateurs. On a donc eu le droit à <a href="https://github.com/dherman/defense-of-dot-js/blob/master/proposal.md">une contre-proposition</a> et les noms d'oiseau ont volé une nouvelle fois sur Twitter. La situation semble enlisée pour le moment.</p>
<p>ES7, ou ES2016, est beaucoup plus léger. C'est principalement l'arrivée de l'opérateur <code>**</code> pour calculer des puissances et de <code>Array.prototype.includes</code> pour savoir si un élément fait partie d'un tableau.</p>
<p>Par contre, on attend toujours <code>async/await</code>. Cette solution devrait permettre d'écrire du code asynchrone de manière beaucoup plus propre et est même décrite comme la solution miracle depuis plusieurs années. Seul problème, aucun moteur JS ne l'a implémentée pour le moment.</p></div><div><a href="https://linuxfr.org/news/node-js-passe-la-sixieme-vitesse.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/108933/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/node-js-passe-la-sixieme-vitesse#comments">ouvrir dans le navigateur</a>
</p>
Bruno MichelM5oulFlorent Zarapalm123Benoît Sibaudhttps://linuxfr.org/nodes/108933/comments.atomtag:linuxfr.org,2005:News/362652015-03-24T21:32:54+01:002015-03-27T08:57:44+01:00Les devopsdays Paris 2015, c’est les 14 et 15 avril prochains !Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Avant de commencer cet article et même si nombre d’entre vous doivent déjà connaître, rappelons nous brièvement ce qu’est le mouvement <strong>devops</strong> : l’origine du terme vient du rapprochement de <em>development</em> et <em>operations</em>, et encourage les développeurs et administrateurs système à travailler de plus près ensemble afin de créer plus de valeur pour l’entreprise (sociale, morale, et/ou économique). Ce mouvement est souvent expliqué avec l’acronyme CAMS, pour <strong>Culture, Automation, Measurement, Sharing</strong>.</p>
<p>Des conférences y sont associées, nommées <strong>devopsdays</strong>, et sont organisées régulièrement depuis 2009 à travers les cinq continents. Les <strong>14 et 15 avril</strong> prochains, les devopsdays Paris auront lieu au <strong>MAS</strong> (13<sup>e</sup> arrondissement, métro Olympiades).</p>
<p>Le programme se trouve dans la suite de la dépêche. </p>
<p><abbr title="Note des modérateurs">NdM</abbr> : l'entrée est à 100 € actuellement, et 120 € à partir du 31 mars.</p></div><ul><li>lien nᵒ 1 : <a title="http://www.devopsdays.org/events/2015-paris/" hreflang="en" href="https://linuxfr.org/redirect/93488">Site officiel de Devops Days Paris 2015</a></li><li>lien nᵒ 2 : <a title="http://www.devopsdays.org/events/2015-paris/registration/" hreflang="en" href="https://linuxfr.org/redirect/93489">Inscription en ligne</a></li><li>lien nᵒ 3 : <a title="http://www.devopsdays.org/events/2015-paris/location/" hreflang="en" href="https://linuxfr.org/redirect/93490">Informations pratiques</a></li></ul><div><p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6e6f726d6174696f6e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031352f30332f31383034323031332d4453435f343230322d31303234783535392e6a7067/18042013-DSC_4202-1024x559.jpg" alt="Photo de l'événement" title="Source : http://blog.normation.com/wp-content/uploads/2015/03/18042013-DSC_4202-1024x559.jpg"></p>
<p>Pour information, les différentes interventions au <a href="http://www.devopsdays.org/events/2015-paris/program/">programme de la conférence</a> sont :</p>
<ul>
<li>
<a href="http://www.devopsdays.org/events/2015-paris/proposals/Containers,%20Germs,%20and%20Microservices/">Containers, Germs, and Microservices</a> par John Willis (Docker Inc.)</li>
<li>
<a href="http://www.devopsdays.org/events/2015-paris/proposals/What%20Happens%20Without%20Traction/">What Happens Without Traction</a> par Steve Pereira </li>
<li>
<a 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)</li>
<li>
<a 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!/">Bizdevops – from development to the customer</a> par Sabine Bernecker-Bendixen (sof-IT by Personal Best!)</li>
<li>
<a href="http://www.devopsdays.org/events/2015-paris/proposals/DevOps%20Culture%20at%20BlaBlaCar%20-%20Keep%20CAMS%20and%20grow/">DevOps Culture at BlaBlaCar</a> - Keep CAMS and grow par Regis Allegre & Nicolas Blanc (Blablacar)</li>
<li>
<a 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)</li>
<li>
<a href="http://www.devopsdays.org/events/2015-paris/proposals/Designing%20the%20Enterprise%20for%20Manufacturing/">Designing the Enterprise for Manufacturing</a> par Scott Russell (Chef)</li>
<li>
<a 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)</li>
<li>
<a 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)</li>
<li>
<a 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 (Hankeln Consulting)</li>
</ul><p>Chaque matinée donnera lieu à des présentations de conférenciers français et internationaux (en anglais) orientées sur les retours d’expérience sur la mise en place de méthodologies devops au sein de l’entreprise, et l’état de l’art du mouvement. </p>
<p>Chaque après‐midi sera organisé en mini-sessions d’échange qu’on appelle des “open spaces” (celles-ci peuvent être en anglais ou en français en fonction des participants).</p>
<p>Bien que la conférence soit à Paris, nous privilégions l’anglais lors des présentations afin de faciliter l’intégration des speakers et des participants étrangers. Cependant, l’expérience a montré que le français pouvait aussi être largement utilisé pendant les pauses ou bien les open spaces si aucun anglophone ne rejoint la session. </p>
<p>Un apéritif et une soirée sont prévus le premier soir pour ceux qui veulent rester fêter en toute convivialité cette édition 2015 !</p>
<p><a href="http://www.devopsdays.org/events/2015-paris/registration/">Les inscriptions</a> à l’événement sont ouvertes, et le prix du billet est réduit jusqu’au <strong>31 mars</strong>. Notez que le tarif proposé inclut <strong>l’accès à la conférence, les petits déjeuners, déjeuners, et la soirée du 14 avril</strong>.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f626c6f672e6e6f726d6174696f6e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031352f30332f31383034323031332d4453435f343239332d31303234783534352e6a7067/18042013-DSC_4293-1024x545.jpg" alt="Événement sur la Seine" title="Source : http://blog.normation.com/wp-content/uploads/2015/03/18042013-DSC_4293-1024x545.jpg"></p></div><div><a href="https://linuxfr.org/news/les-devopsdays-paris-2015-c-est-les-14-et-15-avril-prochains.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/105198/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/les-devopsdays-paris-2015-c-est-les-14-et-15-avril-prochains#comments">ouvrir dans le navigateur</a>
</p>
Fiona GilletBenoît Sibaudhttps://linuxfr.org/nodes/105198/comments.atomtag:linuxfr.org,2005:Diary/354232014-11-22T14:09:34+01:002014-11-22T14:09:34+01:00Docker, tour de FranceLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Docker, la startup qui développe le <a href="//linuxfr.org/tags/docker/public">système de virtualisation et d'automatisation</a>, est en tournée française cet automne (du 8 au 22/12).<br>
Des conférences de présentation de Docker, de retour d'expérience de devs français à San Francisco seront organisées dans certaines universités et écoles d'ingénieurs.</p>
<ul>
<li><a href="https://blog.docker.com/2014/11/docker-tour-de-france/">L'annonce</a></li>
<li><a href="http://www.meetup.com/Docker-Paris/">Réservations pour Paris</a></li>
</ul><div><a href="https://linuxfr.org/users/nicolive/journaux/docker-tour-de-france.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/104040/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/nicolive/journaux/docker-tour-de-france#comments">ouvrir dans le navigateur</a>
</p>
Adminrezohttps://linuxfr.org/nodes/104040/comments.atomtag:linuxfr.org,2005:News/358382014-10-31T09:01:36+01:002014-10-31T11:50:16+01:00Meteor 1.0Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Meteor est une plate‐forme <em>open source</em> facilitant le développement d’applications modernes Internet et mobiles en JavaScript. Il offre des fonctions de mise à jour automatique des interfaces permettant le travail collaboratif temps réel et des interfaces intuitives assurant la même expérience utilisateur qu’une application de bureau. Ces applications peuvent s’exécuter dans un navigateur Web, ainsi que sur tous les appareils mobiles (applications natives avec Cordova/PhoneGap).</p>
<p>Meteor 1.0 est sorti hier soir, annoncé par Matt DeBergalis du MDG (<em>Meteor Developpement Group</em>). Cette version assure la stabilité de l’API, qui jusqu’alors évoluait fortement entre chaque version.</p>
<p>Voyez sa description en seconde partie de l’article…</p></div><ul><li>lien nᵒ 1 : <a title="https://www.meteor.com/blog/2014/10/28/meteor-1-0" hreflang="en" href="https://linuxfr.org/redirect/92090">La dépêche sur le blog de Meteor</a></li><li>lien nᵒ 2 : <a title="http://france.meteor.com" hreflang="fr" href="https://linuxfr.org/redirect/92091">Meteor France</a></li><li>lien nᵒ 3 : <a title="http://www.meteor.com" hreflang="en" href="https://linuxfr.org/redirect/92092">Le site officiel de Meteor</a></li><li>lien nᵒ 4 : <a title="http://docs.meteor.com" hreflang="en" href="https://linuxfr.org/redirect/92093">La documentation officielle</a></li><li>lien nᵒ 5 : <a title="https://www.meteor.com/install" hreflang="en" href="https://linuxfr.org/redirect/92094">Le tutoriel officiel</a></li><li>lien nᵒ 6 : <a title="https://www.meteor.com/projects" hreflang="en" href="https://linuxfr.org/redirect/92095">L’architecture Meteor</a></li><li>lien nᵒ 7 : <a title="https://atmospherejs.com/" hreflang="en" href="https://linuxfr.org/redirect/92096">Les greffons de la communauté</a></li><li>lien nᵒ 8 : <a title="http://www.meetup.com/Meteor-Paris/" hreflang="fr" href="https://linuxfr.org/redirect/92097">Meetup Meteor-Paris</a></li><li>lien nᵒ 9 : <a title="https://meteorhacks.com/profiling-a-meteor-app-telescope.html" hreflang="en" href="https://linuxfr.org/redirect/92098">Une analyse des performances de Meteor côté serveur (NodeJS)</a></li></ul><div><p>Meteor est composé d’une poignée de greffons noyau (<em>core packages</em>) développés par le MDG et de plus de 2 400 greffons développés par la communauté, dont des membres de <a href="http://france.meteor.com/">Meteor France</a>. Afin de comprendre comment est constituée l’architecture logicielle de Meteor, nous vous invitons à consulter <a href="https://www.meteor.com/projects">l’explication sur le site de Meteor</a>.</p>
<p>Nouveau avec Meteor ? Les trois pistes suivantes devraient vous aider :</p>
<ul>
<li><p>tout d’abord, un nouveau tutoriel décrivant le développement pas à pas d’un outil collaboratif et introduisant chaque élément composant Meteor ;</p></li>
<li><p>ensuite, de nouveaux exemples d’applications ont aussi fait leur apparition, afin que vous puissiez consulter leur architecture. La première est une application de « À faire » (<em>TODO</em>) avec des tâches privées et partagées. La deuxième est une application de marché local avec partage de photos, utilisées par des commerces de proximité afin de créer une véritable communauté autour de leur activité. Agrémentée d’une authentification Twitter et de la prise en charge des appareils photo sur mobile, cette application totalise moins de 1 000 lignes de pur JavaScript ;</p></li>
<li><p>enfin, pour célébrer la sortie de la version 1.0, les responsables de <em>Discover Meteor</em> ont lancé une édition gratuite de leur excellent livre en ligne. Vous avez huit jours pour <a href="https://book.discovermeteor.com/starter">profiter de cette offre</a>.</p></li>
</ul><p>Meteor reçoit en France un soutien important de <a href="http://www.morea.fr">Morea</a> et d’<a href="http://aws.amazon.com/fr/">Amazon AWS</a> qui sont les sponsors principaux des événements organisés par Meteor France via leur groupe Meetup <a href="http://www.meetup.com/Meteor-Paris/">Meteor Paris</a>.</p></div><div><a href="https://linuxfr.org/news/meteor-1-0.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/103782/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/meteor-1-0#comments">ouvrir dans le navigateur</a>
</p>
PascalDavy DefaudBAudNils RatusznikPierre Jarillonpalm123https://linuxfr.org/nodes/103782/comments.atomtag:linuxfr.org,2005:News/354532014-07-10T23:30:14+02:002014-07-11T11:52:43+02:00La folie DockerLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Docker, <a href="//linuxfr.org/news/gerer-les-containers-avec-docker">présenté ici même en mars dernier</a>, est un conteneur ou isolateur, ou encore système de cloisonnement (plus de détails en seconde partie). Il se repose sur des systèmes comme LXC, les <em>namespaces</em> et les <em>cgroups</em> (<em>control groups</em>) de Linux, qui permettent de limiter et isoler l'utilisation des ressources de type processeur, mémoire, disque, etc. Docker se compare aux BSD Jails et aux zones de Solaris. Il est développé en Go, sous licence Apache 2.0, tout ce qu'il y a de plus libre.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e646f636b65722e636f6d2f7374617469632f696d672f6e61762f646f636b65722d6c6f676f2d6c6f676765646f75742e706e67/docker-logo-loggedout.png" alt="Logo Docker" title="Source : http://www.docker.com/static/img/nav/docker-logo-loggedout.png"></p>
<p>La première version de Docker date du 20 mars 2013. 16 mois plus tard, 9,308 commits de 509 contributeurs, 2.75 million de téléchargements, plus de 14,000 applications “Dockerisées”, c'est la version 1.1.0. qui est livrée. La folie Docker s'est emparée d'Internet tout entier !</p></div><ul><li>lien nᵒ 1 : <a title="https://github.com/dotcloud/docker" hreflang="en" href="https://linuxfr.org/redirect/90816">Code source de Docker (sur GitHub)</a></li><li>lien nᵒ 2 : <a title="http://www.docker.com/" hreflang="en" href="https://linuxfr.org/redirect/90817">docker.io</a></li><li>lien nᵒ 3 : <a title="http://www.docker.com/tryit/" hreflang="en" href="https://linuxfr.org/redirect/90818">Petit tutoriel en ligne</a></li><li>lien nᵒ 4 : <a title="http://blog.docker.com/2014/06/its-here-docker-1-0/" hreflang="en" href="https://linuxfr.org/redirect/90819">It’s Here: Docker 1.0</a></li><li>lien nᵒ 5 : <a title="http://linuxfr.org/news/gerer-les-containers-avec-docker" hreflang="fr" href="https://linuxfr.org/redirect/90840">Présentation de Docker sur LinuxFr.org</a></li><li>lien nᵒ 6 : <a title="http://linuxfr.org/news/docker-tutoriel-pour-manipuler-les-conteneurs" hreflang="fr" href="https://linuxfr.org/redirect/90841">Tutoriel sur LinuxFr.org pour manipuler les conteneurs Dockers</a></li><li>lien nᵒ 7 : <a title="https://linuxfr.org/news/logiciels-pour-survivre-avec-docker" hreflang="fr" href="https://linuxfr.org/redirect/90842">Sur LinuxFr.org, les logiciels pour survivre avec Docker</a></li><li>lien nᵒ 8 : <a title="http://blog.docker.com/2014/07/announcing-docker-1-1/" hreflang="en" href="https://linuxfr.org/redirect/91041">Announcing Docker 1.1.0</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#petite-introduction">Petite introduction</a></li>
<li>
<a href="#changements-entre-la-version-011-et-10">Changements entre la version 0.11 et 1.0</a><ul>
<li><a href="#construire-pour-les-d%C3%A9veloppeurs">Construire pour les développeurs</a></li>
<li><a href="#outiller-pour-les-admins-sys">Outiller pour les admins sys</a></li>
</ul>
</li>
<li>
<a href="#changements-entre-la-version-10-et-110">Changements entre la version 1.0 et 1.1.0</a><ul>
<li><a href="#tr%C3%A8s-attendue-la-nouvelle-fonctionnalit%C3%A9-dockerignore">Très attendue, la nouvelle fonctionnalité .dockerignore</a></li>
<li><a href="#mettre-en-pause-des-conteneurs-pendant-le-commit">Mettre en pause des conteneurs pendant le <em>commit</em></a></li>
<li><a href="#voir-la-fin-des-logs">Voir la fin des logs</a></li>
<li><a href="#un-fichier-tar-peut-%C3%AAtre-pass%C3%A9-en-tant-que-contexte-pour-docker-build">Un fichier tar peut être passé en tant que contexte pour docker build</a></li>
<li><a href="#monterbinder-votre-syst%C3%A8me-de-fichiers-complet-dans-un-conteneur">Monter/binder votre système de fichiers complet dans un conteneur</a></li>
<li><a href="#autres-am%C3%A9liorations-et-changements">Autres améliorations et changements</a></li>
</ul>
</li>
<li><a href="#packaging">Packaging</a></li>
<li><a href="#boot2docker-pour-mac-os-x-et-windows">boot2docker pour Mac OS X et Windows</a></li>
<li>
<a href="#annonces-de-la-dockercon">Annonces de la #dockercon</a><ul>
<li>
<a href="#libcontainer"></a><a href="https://github.com/docker/libcontainer">libcontainer</a>
</li>
<li>
<a href="#libswarm"></a><a href="https://github.com/docker/libswarm">libswarm</a>
</li>
<li>
<a href="#libchan"></a><a href="https://github.com/docker/libchan">libchan</a>
</li>
</ul>
</li>
<li><a href="#la-folie-docker">La folie Docker</a></li>
<li>
<a href="#entretien-avec-j%C3%A9r%C3%B4me-petazzoni">Entretien avec Jérôme Petazzoni</a><ul>
<li><a href="#peux-tu-nous-parler-de-ton-parcours">Peux-tu nous parler de ton parcours ?</a></li>
<li><a href="#tu-fais-quoi-chez-docker">Tu fais quoi chez Docker ?</a></li>
<li><a href="#vous-%C3%AAtes-combien-demploy%C3%A9s-chez-docker-maintenant-et-contributeurs">Vous êtes combien d'employés chez Docker maintenant ? Et contributeurs ?</a></li>
<li><a href="#comment-est-ce-que-vous-arrivez-%C3%A0-g%C3%A9rer-un-tel-afflux-de-contributions-presque-2000-forks-sur-github">Comment est-ce que vous arrivez à gérer un tel afflux de contributions ? (presque 2000 forks sur github)</a></li>
<li><a href="#pourquoi-go-dailleurs-vous-seriez-pas-le-projet-le-plus-important-%C3%A9crit-dans-ce-langage">Pourquoi Go ? D'ailleurs, vous seriez pas le projet le plus important écrit dans ce langage ?</a></li>
<li><a href="#comment-docker-sarticule-t-il-avec-lxc-linux-containers">Comment Docker s'articule-t-il avec LXC (Linux Containers) ?</a></li>
<li><a href="#comment-docker-se-compare-t-il-par-rapport-aux-bsd-jails-zones-de-solaris-openvz-virtuozzo-et--linux-vserver">Comment Docker se compare-t-il par rapport aux BSD Jails, <em>zones</em> de Solaris, OpenVZ Virtuozzo, et Linux-VServer ?</a></li>
<li><a href="#on-voit-tous-les-jours-des-nouveaux-projets-d%C3%A9marrer-mais-docker-a-eu-un-succ%C3%A8s-rarement-vu-dans-le-monde-du-logiciel-libre-cest-quoi-la-recette-de-cette-r%C3%A9ussite">On voit tous les jours des nouveaux projets démarrer, mais Docker a eu un succès rarement vu dans le monde du logiciel libre. C'est quoi la recette de cette réussite ?</a></li>
<li><a href="#ta-fonctionnalit%C3%A9-pr%C3%A9f%C3%A9r%C3%A9e-de-docker">Ta fonctionnalité préférée de Docker ?</a></li>
<li><a href="#les-nouveaut%C3%A9s-%C3%A0-venir-dans-les-prochaines-versions-de-docker-identity-authentification">Les nouveautés à venir dans les prochaines versions de docker (identity, authentification…) ?</a></li>
<li>
<a href="#le-fondateur-le-fran%C3%A7ais-solomon-hykes-epitech-2006-a-recrut%C3%A9-un-pdg-pris-la-fonction-de-cto-et-reste-actif-sur-httpsgithubcomshykes-en-france-il-aurait-pris-la-fonction-de-pdg-est-ce-typique-des-us">Le fondateur (le français Solomon Hykes, Epitech 2006) a recruté un PDG, pris la fonction de </a><a href="http://en.wikipedia.org/wiki/Chief_technology_officer">CTO</a> et reste actif sur <a href="https://github.com/shykes">https://github.com/shykes</a>. En France, il aurait pris la fonction de PDG. Est-ce typique des US ?</li>
<li>
<a href="#tu-peux-nous-expliquer-et-nous-en-dire-plus-sur-lexploit-pr%C3%A9sent-dans-la-version-011">Tu peux nous expliquer et nous en dire plus sur l'</a><a href="http://blog.xen.org/index.php/2014/06/23/the-docker-exploit-and-the-security-of-containers/">exploit présent</a> dans la version 0.11 ?</li>
</ul>
</li>
</ul><h2 id="petite-introduction">Petite introduction</h2>
<p>Les conteneurs ou isolateurs, ou encore systèmes de cloisonnement permettent de faire tourner plusieurs environnements de systèmes d'exploitation sur une seule et même machine physique. Ce type de logiciel se compare avantageusement aux hyperviseurs, virtualisateurs et émulateurs, par le fait que le seul noyau qui tourne est celui de la machine physique, et il n'y a pas de couche de « virtualisation ».</p>
<p>Isolateur :</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f7468756d622f332f33382f4469616772616d6d655f417263686949736f6c61746575722e706e672f33323070782d4469616772616d6d655f417263686949736f6c61746575722e706e67/320px-Diagramme_ArchiIsolateur.png" alt="Isolateur" title="Source : http://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Diagramme_ArchiIsolateur.png/320px-Diagramme_ArchiIsolateur.png"></p>
<p>Émulateur :</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f7468756d622f352f35632f4469616772616d6d655f4172636869456d756c61746575722e706e672f33303570782d4469616772616d6d655f4172636869456d756c61746575722e706e67/305px-Diagramme_ArchiEmulateur.png" alt="Émulateur" title="Source : http://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Diagramme_ArchiEmulateur.png/305px-Diagramme_ArchiEmulateur.png"></p>
<p>Benchmarks :</p>
<ul>
<li>
<a href="http://bodenr.blogspot.fr/2014/05/kvm-and-docker-lxc-benchmarking-with.html">KVM and Docker LXC Benchmarking with OpenStack</a> et la vidéo associée de Boden Russell (IBM) <a href="https://www.youtube.com/watch?v=JHqM_5X3MBU">Performance Characteristics of VMs vs Docker Containers by Boden Russel (IBM)</a>
</li>
<li><a href="http://flux7.com/blogs/docker/preview-of-docker-benchmarking-at-flux7/">Preview of Docker Benchmarking at Flux7</a></li>
</ul><h2 id="changements-entre-la-version-011-et-10">Changements entre la version 0.11 et 1.0</h2>
<h3 id="construire-pour-les-développeurs">Construire pour les développeurs</h3>
<ul>
<li>Une nouvelle instruction de Docker build est apparue, COPY, qui copie les fichiers et dossiers en l'état depuis le build context;</li>
<li>Améliorations autour de l'instruction ADD, et les volumes conservent le propriétaire et les permissions des fichiers pendant le build des images.</li>
</ul><h3 id="outiller-pour-les-admins-sys">Outiller pour les admins sys</h3>
<ul>
<li>Docker a désormais la capacité de mettre en pause et redémarrer des conteneurs, permettant aux utilisateurs de récupérer des ressources CPU pour une gestion plus fine de celles-ci.</li>
<li>Mise à jour du profil de sécurité pour l'accès aux périphériques et des capacités pour les conteneurs.</li>
<li>Au niveau du stockage: amélioration du backend DeviceMapper, prise en charge de XFS, gestion des périphériques physiques et amélioration des performances de la suppression d'un conteneur.</li>
<li>L'IANA réserve les ports 2375 et 2376 respectivement pour le trafic HTTP et HTTPS de l'API Docker.</li>
</ul><p>En plus de la correction de 40 bugs et l'amélioration de la cohérence de l'<a href="http://docs.docker.com/reference/api/docker_remote_api/">API</a>, la <a href="http://docs.docker.com/">documentation</a> a été entièrement ré-écrite.</p>
<p>Pour les plus intéressés :</p>
<ul>
<li><a href="https://github.com/dotcloud/docker/pulse/monthly">Rapport mensuel de GitHub</a></li>
<li><a href="https://github.com/dotcloud/docker/compare/v0.11.1...master">Liste des commits</a></li>
</ul><h2 id="changements-entre-la-version-10-et-110">Changements entre la version 1.0 et 1.1.0</h2>
<h3 id="très-attendue-la-nouvelle-fonctionnalité-dockerignore">Très attendue, la nouvelle fonctionnalité .dockerignore</h3>
<p>Vous pouvez ajouter un fichier .dockerignore à côté de votre <code>Dockerfile</code> ; dans ce cas, Docker va ignorer les fichiers et répertoires indiqués dans ce fichier quand il enverra le "build context" au démon.</p>
<p>Exemple: <a href="https://github.com/dotcloud/docker/blob/master/.dockerignore">https://github.com/dotcloud/docker/blob/master/.dockerignore</a></p>
<h3 id="mettre-en-pause-des-conteneurs-pendant-le-commit">Mettre en pause des conteneurs pendant le <em>commit</em>
</h3>
<p>Auparavant, faire un <em>commit</em> sur un conteneur actif n'était pas recommandé, à cause du risque de fichiers dans un état corrompu (par exemple, si ces fichiers étaient en cours d'écriture pendant le <em>commit</em>). <br>
Les conteneurs sont maintenant mis en pause quand un <em>commit</em> est lancé.</p>
<p>Vous pouvez invalider cette fonctionnalité avec <code>docker commit --pause=false <container_id></code>..</p>
<h3 id="voir-la-fin-des-logs">Voir la fin des logs</h3>
<p>Vous pouvez maintenant consulter la fin des logs d'un conteneur. Par exemple, pour avoir les dix dernières lignes d'un log, avec la commande <code>docker logs --tail 10</code> . Vous pouvez aussi suivre en temps réel les logs d'un conteneur sans être obligé de lire le fichier complet avec <code>docker logs --tail 0 -f <container_id></code>.</p>
<h3 id="un-fichier-tar-peut-être-passé-en-tant-que-contexte-pour-docker-build">Un fichier tar peut être passé en tant que contexte pour docker build</h3>
<p>Vous pouvez donner une archive tar à <code>docker build</code> en tant que contexte. Cela peut être utilisé pour automatiser les docker builds, par exemple : <code>cat context.tar | docker build</code> - ou <code>docker run builder_image | docker build -</code></p>
<h3 id="monterbinder-votre-système-de-fichiers-complet-dans-un-conteneur">Monter/binder votre système de fichiers complet dans un conteneur</h3>
<p>/ est maintenant autorisé en tant que source de --volumes. Cela signifie que vous pouvez binder/monter votre système de fichier complet dans un conteneur, si besoin. Par exemple : <br><code>docker run -v /:/my_host ubuntu:ro ls /my_host</code> <br>
Cependant il est maintenant interdit de monter vers /.</p>
<h3 id="autres-améliorations-et-changements">Autres améliorations et changements</h3>
<p>L'allocation de port (utilisez la commande <code>docker port</code> pour voir le mapping) a été améliorée. Dans la version précédente, parfois Docker vous empêchait de démarrer un conteneur avec des ports précédemment alloués, que Docker croyait à tort encore alloués. Cela a été corrigé.</p>
<p>Un bug dans la commande <code>docker save</code> était apparu dans la dernière version. La commande <code>docker save</code> créait parfois des images avec des métadatas invalides. La commande crée maintenant des images avec des métadatas correctes.<br>
La commande <code>docker inspect</code> lancée dans un conteneur affiche maintenant les conteneurs liés à ce conteneur.</p>
<p>Le flag de <code>docker commit</code> a amélioré sa validation, pour vous empêcher de <em>commiter</em> une image avec un nom comme -m. Les noms des images contenant des tirets peuvent entrer en conflit avec les flags de la ligne de commande.</p>
<p>L'API a maintenant des codes de retour améliorés pour start et stop. Essayer de démarrer un conteneur déjà démarré renvoie maintenant une erreur 304.</p>
<p>La performance a été globalement améliorée. Le démarrage d'un démon est plus rapide que dans les versions précédentes. La performance du démon a aussi été améliorée quand il gère un grand nombre d'images et de conteneurs.</p>
<p>Un problème avec les espaces et les multi-lignes dans les Dockerfiles a été corrigé.</p>
<p>Le flag de <code>docker commit</code> a amélioré sa validation, pour vous empêcher de <em>commiter</em> une image avec un nom comme -m. Les noms des images contenant des tirets peuvent entrer en conflit avec les flags de la ligne de commande.</p>
<p>L'API a maintenant des codes de retour améliorés pour start et stop. Essayer de démarrer un conteneur déjà démarré renvoie maintenant une erreur 304.</p>
<p>La performance a été globalement améliorée. Le démarrage d'un démon est plus rapide que dans les versions précédentes. La performance du démon a aussi été améliorée quand il gère un grand nombre d'images et de conteneurs.</p>
<p>Un problème avec les espaces et les multi-lignes dans les Dockerfiles a été corrigé.</p>
<h2 id="packaging">Packaging</h2>
<p>La version 1.0 est déjà disponible dans <a href="http://packages.qa.debian.org/d/docker.io.html">Debian Sid/Unstable</a>.</p>
<h2 id="boot2docker-pour-mac-os-x-et-windows">boot2docker pour Mac OS X et Windows</h2>
<p><a href="http://boot2docker.io/">http://boot2docker.io/</a></p>
<p>boot2docker est une distribution Linux très légère, basée sur <a href="http://tinycorelinux.net/">Tiny Core Linux</a>, et créée spécifiquement pour lancer des conteneurs Docker. Elle fonctionne complètement en RAM, pèse ~27MB et boote en moins de 5s (YMMV).</p>
<p>boot2docker <a href="http://docs.docker.com/installation/windows/">s'installe sous Windows</a> et <a href="https://github.com/boot2docker/osx-installer/releases">sous OSX</a>.</p>
<h2 id="annonces-de-la-dockercon">Annonces de la #dockercon</h2>
<p>La version 1.0 a été annoncée à l'occasion de la toute première dockercon.</p>
<p>Pour une première édition, elle a réuni 600 personnes (avec 400 sur liste d'attente !), ce qui peut être considéré comme un beau succès marketing.</p>
<p>Cette conférence a notamment été l'occasion pour l'équipe Docker <a href="http://fr.slideshare.net/shykes/docker-the-road-ahead">d'annoncer 3 bibliothèques</a> :</p>
<h3 id="libcontainer"><a href="https://github.com/docker/libcontainer">libcontainer</a></h3>
<p>Libcontainer permet aux conteneurs de travailler avec les espaces de noms Linux, les <em>control groups</em>, les <em>capabilities</em>, les profils de sécurité APPArmor, les interfaces réseaux et les règles de pare-feu d'une manière cohérente et prédictible.<br>
Dans ce cas, les conteneurs ne s'appuient plus sur des composants de l'espace utilisateur Linux comme LXC, libvirt, ou systemd-nspawn. Docker déclare : « Cela réduit fortement le nombre de parties mouvantes et protège Docker des effets de bord introduits par les versions et distributions de LXC ».</p>
<h3 id="libswarm"><a href="https://github.com/docker/libswarm">libswarm</a></h3>
<p>Décrit comme « une boite à outils pour créer des services réseaux », l'objet de libswarm est de simplifier les déploiements d'applications Docker dans des configurations multi-nœuds, les nœuds pouvant tourner sur des distributions Linux différentes..<br><em>Swarm</em> (nom/verbe) signifie essaim ou essaimer.</p>
<p>Cela permettra en retour de faciliter l'adoption de Docker en entreprise pour les déploiements d'applications sans devoir choisir une plateforme de clustering. Solomon Hykes, fondateur de Docker et développeur de libswarm déclare dans un entretien récent avec Phil Whelan d'ActiveState: "Je ne crois pas qu'il devrait y avoir une seule plateforme de clustering dominante que tout le monde utiliserait". </p>
<p><a href="https://www.youtube.com/watch?v=a_YbxWbHgQA">Démo venant de Dockercon</a> sur youtube :/</p>
<h3 id="libchan"><a href="https://github.com/docker/libchan">libchan</a></h3>
<p>Libchan est une bibliothèque réseau ultra-légère qui permet aux services réseaux de communiquer de la même manière que les goroutines communiquent en utilisant des canaux :</p>
<ul>
<li>Simple message passing</li>
<li>Synchronisation pour la programmation parallèle</li>
<li>Nesting : les canaux peuvent envoyer (vers) des canaux</li>
<li>Libchan gère les options de transport suivantes :
<ul>
<li>In-memory Go channel</li>
<li>Unix socket</li>
<li>Raw TCP</li>
<li>TLS</li>
<li>HTTP2/SPDY</li>
<li>Websocket</li>
</ul>
</li>
</ul><p>Voir <a href="https://news.ycombinator.com/item?id=7873619">cette discussion sur libchan avec le créateur de Docker</a> (shykes pour Solomon Hykes)</p>
<p>Des spécifications sont <a href="https://github.com/docker/libchan/blob/master/PROTOCOL.md">précisées</a>.</p>
<h2 id="la-folie-docker">La folie Docker</h2>
<p>Docker est super « à la mode » ! En 15 mois, à peine, et parti de quasiment rien, il devient un logiciel majeur dont tout le mode parle, même le PDG de Microsoft, Satya Nadella, qui a tweeté ce lien sur <a href="http://blog.azure.com/2014/06/09/docker-and-azure-coolness/">l'utilisation de Docker dans le cloud Azure de Microsoft</a> !</p>
<h2 id="entretien-avec-jérôme-petazzoni">Entretien avec Jérôme Petazzoni</h2>
<h3 id="peux-tu-nous-parler-de-ton-parcours">Peux-tu nous parler de ton parcours ?</h3>
<p>Jérôme Petazzoni : j'ai eu un bac S en 1996. Après deux ans de prépa (Maths Sup' et Spé) où j'ai fait trop peu d'informatique à mon goût, je suis parti décrocher un Master d'informatique à l'<a href="http://www.u-pem.fr/">Université de Marne-la-Vallée</a> (qui depuis s'appelle "Paris Est"). Ensuite, j'ai fait un peu de tout, tant que ça touchait de près ou de loin à Linux ou l'Open Source ; avec une grosse préférence pour les projets d'infrastructure. Je ne vais pas copier-coller mon CV, je pense que ça ennuierait tout le monde. Mais une expérience importante pour la suite, ça a été de découvrir <a href="http://en.wikipedia.org/wiki/Xen">Xen</a> en 2004. L'année suivante, je m'associe avec <a href="https://www.linkedin.com/pub/sebastien-wacquiez/3/154/316">un ami</a> pour monter <a href="http://www.enix.org/">Enix</a> et miser à fond sur l'hébergement de VM.</p>
<p>C'est peu après cette époque que je rencontre Solomon, co-founder de dotCloud (l'ancien nom de Docker). Il avait besoin de serveurs, on en avait ; on cherchait une solution de déploiement, c'était justement ce sur quoi travaillait dotCloud : nous étions faits pour nous entendre. C'est comme ça qu'en 2010, il m'a proposé de le rejoindre à San Francisco pour s'occuper de l'infrastructure et des "ops" pour dotCloud, qui venait de déménager pour la Californie.</p>
<h3 id="tu-fais-quoi-chez-docker">Tu fais quoi chez Docker ?</h3>
<p>Jérôme Petazzoni : plein de choses ! Avant de lancer Docker, nous avons développé et opéré un <a href="http://en.wikipedia.org/wiki/Platform_as_a_service">PAAS</a> (<a href="https://www.dotcloud.com/">dotCloud</a>, concurrent d'<a href="https://www.heroku.com/">Heroku</a>). Il existe encore et je fais partie de l'équipe qui s'en occupe.</p>
<p>Mais j'aide aussi régulièrement les "core maintainers" (qui travaillent à plein temps sur Docker) ainsi que ceux qui développent les produits <a href="http://fr.wikipedia.org/wiki/Logiciel_en_tant_que_service">SAAS</a> que nous offrons autour de Docker. Tu es victime d'un <a href="https://github.com/dotcloud/docker/issues/407">bug kernel mystique</a> qui fait rebooter ta machine quand tu démarres un conteneur orienté vers l'Ouest ? Ta <a href="https://gist.github.com/jpetazzo/e340e1b0cfe275565e70">partition BTRFS prétend être pleine</a> alors que "df" indique le contraire ? Tes règles iptables repeignent en rouge le <a href="https://github.com/dotcloud/docker/issues/6370">trafic multicast qui sort de tes conteneurs</a> ? Je peux t'aider !</p>
<p>En parallèle, je fais beaucoup d' "évangélisme", en l'occurrence sous forme de présentations dans diverses conférences (<a href="http://lccona14.sched.org/speaker/jerome.petazzoni#.U7bcynWx0Zs">LinuxCon</a>, <a href="http://www.oscon.com/oscon2014/public/schedule/speaker/151611">OSCON</a>…) et dans d'innombrables meet-ups locaux afin de faire connaître Docker, rencontrer nos utilisateurs, et discuter avec eux de leurs besoins et leurs attentes vis-à-vis du projet.</p>
<h3 id="vous-êtes-combien-demployés-chez-docker-maintenant-et-contributeurs">Vous êtes combien d'employés chez Docker maintenant ? Et contributeurs ?</h3>
<p>Jérôme Petazzoni : on est une quarantaine d'employés, mais je serais incapable de donner un chiffre précis, car on recrute sans arrêt ! 5 personnes travaillent à plein temps sur le "Docker Engine" (la partie Open Source), mais quasiment toute l'équipe a contribué à un moment ou à un autre, que ça soit une petite feature, un bug fix, de la documentation … Mais l'essentiel du développement est maintenant entre les mains de la communauté, avec <a href="https://github.com/dotcloud/docker/graphs/contributors">plus de 500 contributeurs</a> au total. Il arrive assez souvent que la "core team" ne fasse que de la revue de code des jours durant, pour gérer toutes les contributions que l'on reçoit.</p>
<h3 id="comment-est-ce-que-vous-arrivez-à-gérer-un-tel-afflux-de-contributions-presque-2000-forks-sur-github">Comment est-ce que vous arrivez à gérer un tel afflux de contributions ? (presque 2000 forks sur github)</h3>
<p>Jérôme Petazzoni : tout d'abord, il y a un processus très clair. Le fichier <a href="https://github.com/dotcloud/docker/blob/master/CONTRIBUTING.md">CONTRIBUTING</a> à la racine du dépôt du projet définit tout dans les détails. Pour simplifier, toutes les contributions passent par une "pull request" sur GitHub. Le code et la documentation doivent suivre certaines règles très strictes. Chaque partie du dépôt est gérée par des mainteneurs. Pour qu'une modification soit acceptée (qu'il s'agisse d'une contribution externe ou interne à Docker Inc.!), elle doit être validée par la majorité absolue des mainteneurs concernés. Si seule la documentation change, seuls les mainteneurs de la documentation sont impliqués ; si c'est la gestion du réseau, ça sera d'autres personnes, et ainsi de suite. Si une modification concerne plusieurs sections, il faut l'accord de tout le monde.</p>
<p>Détail intéressant : il y a plus de 20 mainteneurs à ce jour, et moins de la moitié sont employés par Docker Inc. ; ça montre que, le projet est bel et bien entre les mains de la communauté. D'ailleurs, on recherche en permanence de nouveaux mainteneurs pour aider à traiter ce flot de contributions. À bon entendeur …</p>
<p>Comme il y a souvent <a href="https://github.com/dotcloud/docker/pulls">plus de 100 pull requests ouvertes</a> à un instant donné, nous avons développé un outil en ligne de commande pour faciliter le processus ; par exemple, pour permettre à un mainteneur d'identifier les pull requests le concernant, et tout particulièrement celles ayant déjà reçu l'approbation d'autres mainteneurs (et donc proches d'être intégrées). Cet outil s'appelle Gordon (c'est aussi le nom de la tortue qui vit dans nos bureaux à San Francisco !), il est Open Source, et disponible sur <a href="https://github.com/dotcloud/gordon">https://github.com/dotcloud/gordon</a>. Il utilise l'API GitHub ; autrement dit, il est utilisable pour d'autres projets souhaitant implémenter un processus similaire.</p>
<h3 id="pourquoi-go-dailleurs-vous-seriez-pas-le-projet-le-plus-important-écrit-dans-ce-langage">Pourquoi Go ? D'ailleurs, vous seriez pas le projet le plus important écrit dans ce langage ?</h3>
<p>Jérôme Petazzoni : il y a des raisons techniques et non techniques. Sur le plan technique, Go gère nativement l'exécution concurrente, grâce aux <a href="https://gobyexample.com/goroutines">goroutines</a> (ça ressemble aux greenlets), tout en étant plus facile d'apprentissage que, par exemple, <a href="http://learnyousomeerlang.com/introduction">Erlang</a> ou <a href="http://learnyouahaskell.com/">Haskell</a>. De plus, par défaut, un programme Go se compile en un binaire massif embarquant presque toutes les bibliothèques nécessaires à son exécution. Cela veut dire que pour faire tourner un programme Go, il suffit de télécharger le binaire, l'exécuter, et ça marche. Pas besoin de yum/apt/emerge/pacman des bibliothèques supplémentaires, ou même d'exécuter un script d'installation. Cette caractéristique était très importante au début du projet, afin d'encourager les gens à le tester le plus simplement possible.</p>
<p>Sur le plan non technique, Go, c'est un peu la Suisse des langages modernes. Si on avait choisi Python, la communauté Ruby aurait grogné. Si on avait choisi Ruby, la communauté Python aurait grogné (et on serait probablement passés pour des imbéciles, car au début du projet, la majorité de l'équipe était plus à l'aise en Python qu'en Ruby). Si on avait choisi Java, tout le monde aurait râlé ! Plus sérieusement, Go était un moyen de ne pas choisir de camp. Bien sûr, c'était un pari risqué, surtout à l'époque ; mais même si la communauté Go est beaucoup plus restreinte, elle s'est avérée être très pointue dans les domaines qui nous intéressaient. Au final, même si c'est évidemment plus difficile de recruter des développeurs Go (plutôt que Python, Ruby ou Java), ceux qu'on trouve ont plus souvent le profil que l'on recherche.</p>
<p>Sommes-nous le projet le plus important en Go? Euh, c'est quoi, un projet important? Si on en croit les métriques de GitHub (forks, stars, contributeurs, activité…), oui, très probablement ! Mais il y a peut-être des projets encore plus gros dans les labos secrets de Google ou autre. Disons que c'est probablement le plus visible des projets Open Source écrits en Go!</p>
<h3 id="comment-docker-sarticule-t-il-avec-lxc-linux-containers">Comment Docker s'articule-t-il avec LXC (Linux Containers) ?</h3>
<p>Jérôme Petazzoni : Docker a parfois été décrit comme une surcouche de LXC. D'un point de vue strictement technique, c'était vrai au début, puisque Docker exécutait "lxc-start" pour lancer les conteneurs.</p>
<p>Cependant, depuis la version 0.9, Docker a ajouté un autre moteur d'exécution natif, basé sur <a href="http://learnyouahaskell.com/">libcontainer</a>. Libcontainer est une bibliothèque Go, permettant de faire le travail de LXC, c'est-à-dire la gestion des namespaces et des control groups (les mécanismes du noyau Linux qui composent les conteneurs). Cette bibliothèque est réutilisable en dehors de Docker si nécessaire. Sous le capot, elle fonctionne exactement comme LXC et utilise les mêmes appels système. Mais elle est utilisée par défaut et, par conséquent, il n'est plus nécessaire d'installer les paquetages LXC pour faire tourner Docker. Ça simplifie l'installation.</p>
<p>Ensuite, par rapport à LXC, Docker offre une tonne d'autres fonctionnalités : une <a href="https://docs.docker.com/reference/api/docker_remote_api/">API REST</a>, un système permettant de transférer des images depuis et vers une <a href="https://registry.hub.docker.com/">registry</a>, le build avec les <a href="https://github.com/docker-library/nginx/blob/docker-v1.7.1/Dockerfile">Dockerfiles</a> … Aujourd'hui, Docker est une surcouche de LXC tout comme apt et yum sont des surcouches de tar, cpio, et wget !</p>
<h3 id="comment-docker-se-compare-t-il-par-rapport-aux-bsd-jails-zones-de-solaris-openvz-virtuozzo-et--linux-vserver">Comment Docker se compare-t-il par rapport aux BSD Jails, <em>zones</em> de Solaris, OpenVZ Virtuozzo, et Linux-VServer ?</h3>
<p>Jérôme Petazzoni : ces projets se comparent à LXC plutôt qu'à Docker. Docker ne va pas les remplacer, mais plutôt s'intégrer avec eux.</p>
<p><a href="http://www.parallels.com/">Parallels</a> (la société qui développe OpenVZ) a <a href="http://spblog.parallels.com/serviceprovider/2014/6/10/libcontainer-the-future-facilitator-for-containerized-applications">annoncé qu'elle allait contribuer à libcontainer</a>. Il est donc possible que Docker puisse prochainement lancer des VE OpenVZ. VServer, c'est nettement moins certain (et il y a certainement beaucoup moins de gens qui s'en servent encore).</p>
<p>Il est possible de porter Docker sur FreeBSD et Solaris. Beaucoup de fonctionalités doivent être adaptées : non seulement le moteur d'exécution, mais aussi la couche réseau (il faut adapter le système actuel, qui utilise iptables et un pont Ethernet) et le stockage (BTRFS, AUFS et DeviceMapper n'existent pas et seraient vraisemblablement remplacés par ZFS pour le système de copy-on-write).</p>
<h3 id="on-voit-tous-les-jours-des-nouveaux-projets-démarrer-mais-docker-a-eu-un-succès-rarement-vu-dans-le-monde-du-logiciel-libre-cest-quoi-la-recette-de-cette-réussite">On voit tous les jours des nouveaux projets démarrer, mais Docker a eu un succès rarement vu dans le monde du logiciel libre. C'est quoi la recette de cette réussite ?</h3>
<p>Jérôme Petazzoni : un énorme coup de bol ! Être au bon endroit, au bon moment, avec la bonne techno et la bonne équipe. En 2008, dotCloud (avant d'être un PAAS) ressemblait énormément au Docker actuel. Mais il manquait plein de choses pour réussir : il fallait des noyaux spéciaux (avec, entre autres, OpenVZ et AUFS), la création d'images était beaucoup plus lourde … L'outil était génial, mais seulement pour des sysadmins très pointus et très motivés. Ça a servi de base pour construire le PAAS dotCloud.</p>
<p>Quelques millions de conteneurs plus tard, on avait acquis une solide expérience dans ce domaine ; cette expérience nous a permis d'aller très vite dans le développement de Docker. Le fait d'être à San Francisco a aussi contribué au décollage rapide, car on côtoyait sans cesse des gens construisant des grosses architectures distribuées, qui ont vu immédiatement le potentiel de Docker et nous ont énormément encouragés. Les conteneurs sont très adaptés, par exemple, aux micro-services.</p>
<p>Enfin, si on regarde en détail les fonctionalités bas niveau du noyau sur lesquelles reposent Docker (et les conteneurs en général), elles n'étaient pas aussi stables il y a ne serait-ce que deux ans (et encore aujourd'hui, elles continuent de s'améliorer sans cesse).</p>
<h3 id="ta-fonctionnalité-préférée-de-docker">Ta fonctionnalité préférée de Docker ?</h3>
<p>Jérôme Petazzoni : je vais dire une des rares que j'ai implémentées, le <a href="https://docs.docker.com/reference/run/#runtime-privilege-and-lxc-configuration">privileged mode</a> ! Techniquement, rien de sorcier : c'est juste une option permettant de lancer un conteneur sans limiter ses droits d'accès. Il peut tout faire, y compris casser complètement la machine sur laquelle il tourne (comme l'utilisateur root). Mais grâce à ça, il y a plein de choses qu'on peut faire tourner dans Docker (et qu'on ne pouvait pas avant) : <a href="https://github.com/jpetazzo/dockvpn">OpenVPN</a>, Xorg, <a href="https://github.com/jpetazzo/docker2docker">KVM</a>, et même <a href="http://blog.docker.com/2013/09/docker-can-now-run-within-docker/">Docker lui-même</a> (très utile pour l'intégration continue et le développement du projet). </p>
<p>Grâce à ça, on peut piquer le slogan de NetBSD, et dire "of course it runs in a container" :-)</p>
<h3 id="les-nouveautés-à-venir-dans-les-prochaines-versions-de-docker-identity-authentification">Les nouveautés à venir dans les prochaines versions de docker (identity, authentification…) ?</h3>
<p>Jérôme Petazzoni : d'un point de vue "devops", ce qui est le plus prometteur, c'est à mon avis <a href="https://github.com/docker/libswarm">libswarm</a>. Libswarm permet d'interfacer ensemble des clients Docker (CLI ou utilisant directement l'API), des hôtes Docker (faisant tourner des conteneurs), et des ordonnanceurs de ressources (comme <a href="http://mesos.apache.org/">Mesos</a> par exemple). Le but est de pouvoir dire "je veux 4 conteneurs basés sur l'image webfront42, chacun sur une machine différente, mais dans le même datacenter que mon conteneur dbfront69", et que le système choisisse tout seul où les placer en fonction des ressources (mémoire, CPU…) disponibles à un instant donné. Il y a ensuite une infinité de variantes sur ce thème : pouvoir relancer les conteneurs lorsqu'une machine est indisponible ; lancer automatiquement de nouvelles machines (si on est sur un <a href="http://fr.wikipedia.org/wiki/Infrastructure_as_a_service">IAAS</a>) lorsqu'on manque de capacité ; s'interfacer correctement avec des load balancers ; etc.</p>
<p>Bien sûr, il va aussi y avoir plein d'améliorations pour une clientèle "enterprise" : signature des images pour en assurer la provenance ; analyse des graphes de dépendances entre images pour déterminer celles affectées par une vulnérabilité ; possibilité d'héberger en interne les services du "Docker Hub" …</p>
<h3 id="le-fondateur-le-français-solomon-hykes-epitech-2006-a-recruté-un-pdg-pris-la-fonction-de-cto-et-reste-actif-sur-httpsgithubcomshykes-en-france-il-aurait-pris-la-fonction-de-pdg-est-ce-typique-des-us">Le fondateur (le français Solomon Hykes, Epitech 2006) a recruté un PDG, pris la fonction de <a href="http://en.wikipedia.org/wiki/Chief_technology_officer">CTO</a> et reste actif sur <a href="https://github.com/shykes">https://github.com/shykes</a>. En France, il aurait pris la fonction de PDG. Est-ce typique des US ?</h3>
<p>Jérôme Petazzoni : aucune idée !</p>
<h3 id="tu-peux-nous-expliquer-et-nous-en-dire-plus-sur-lexploit-présent-dans-la-version-011">Tu peux nous expliquer et nous en dire plus sur l'<a href="http://blog.xen.org/index.php/2014/06/23/the-docker-exploit-and-the-security-of-containers/">exploit présent</a> dans la version 0.11 ?</h3>
<p>Jérôme Petazzoni : cette attaque utilise un appel système particulier, <code>open_by_handle_at()</code>. Cet appel système permet d'ouvrir un fichier en spécifiant non pas son chemin, mais un identifiant opaque. Cet identifiant opaque est normalement obtenu en utilisant un autre appel système, <code>name_to_handle()</code>. Le but est de faciliter l'implémentation de serveurs de fichiers en <em>userspace</em> (par exemple NFS ou 9P). Cette partie est expliquée dans <a href="http://lwn.net/Articles/375888/">cet article sur LWN</a>.</p>
<p>Il se trouve que l'identifiant opaque en question est, dans la plupart des cas, l'inode du fichier. Il se trouve aussi que dans la plupart des systèmes de fichiers (incluant EXT2/3/4), l'inode de la racine est toujours 2. Il est alors enfantin d'utiliser <code>open_by_handle_at()</code> pour accéder à la racine du système de fichiers sur lequel se trouve un conteneur.</p>
<p><code>open_by_handle_at()</code> est contrôlé par une <a href="http://man7.org/linux/man-pages/man7/capabilities.7.html">capability</a>, <code>CAP_DAC_READ_SEARCH</code>. Le problème, c'est que jusque Docker 0.11, au lieu d'enlever toutes les <em>capabilities</em> pour ne laisser que celles qui sont inoffensives, Docker enlevait celles qui étaient dangereuses pour laisser toutes les autres. Bilan, quand <code>CAP_DAC_READ_SEARCH</code> a été ajouté au noyau, on a oublié de le mettre dans la liste des permissions dangereuses.</p>
<p>« Mais pourquoi vous avez fait un truc pareil ? Tout le monde sait que la sécurité, ça marche pas comme ça ! Faut tout enlever, et donner uniquement les permissions nécessaires ! » Absolument. C'est un héritage des anciennes versions de LXC, dans lesquelles on ne pouvait spécifier que <code>lxc.cap.drop</code>. Les versions plus récentes permettent de spécifier à la place <code>lxc.cap.keep</code>, mais par souci de compatibilité avec les anciennes versions, on utilisait encore <code>lxc.cap.drop</code>. C'est d'ailleurs une des raisons qui nous ont poussé à développer <code>libcontainer</code> : gérer toutes les versions différentes de LXC devenait difficile.</p>
<p>Détail intéressant : l'exploit ne fonctionne a priori pas si vous utilisez BTRFS (car, au moins sur mes machines, le numéro d'inode de la racine n'est pas 2) ou si <code>/var/lib/docker</code> est sur un autre système de fichiers (l'exploit permet alors tout de même de sauter d'un conteneur à l'autre, en étant un peu créatif).</p>
<p>Enfin, nous avons toujours été assez clairs sur le fait qu'il fallait être prudent lorsqu'on fait tourner des processus en "root" dans des conteneurs ; en particulier du code arbitraire. Notre position est simple : les conteneurs seront un jour aussi fiables que les VM, mais ce jour n'est pas encore arrivé ; et en attendant, il faut utiliser des couches de sécurité additionnelles et/ou limiter le champ d'application des conteneurs. La bonne nouvelle, c'est que 99% des applications n'ont pas besoin des droits "root". Les conteneurs sont donc déjà tout à fait utilisables !</p></div><div><a href="https://linuxfr.org/news/la-folie-docker.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/102455/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/la-folie-docker#comments">ouvrir dans le navigateur</a>
</p>
Nÿcopalm123BAudjpetazzoSylvestre LedruBenoît SibaudNeoXFlorent ZaraGeneralZodbubar🦥SiosmolivierwebglennieBruno MichelNarmerSébastien Koechlinvieuxshellhttps://linuxfr.org/nodes/102455/comments.atom