Nouvelles du Libre

Les "cahiers de vacances" des développeurs Java

Toolinux - dim, 13/07/2014 - 23:25

Cet été, Ippon annonce partager le contenu de ses formations à sa communauté de développeurs Java.

- Revue de presse
Catégories: Nouvelles du Libre

Présentation de la carte Thecus C10GTR

Toolinux - dim, 13/07/2014 - 23:15

La nouvelle Thecus C10GTR a fait parler d'elle ces dernières semaines avec une centaine de pages dédiées à la carte Ethernet 10 gigabit.

- Matériels
Catégories: Nouvelles du Libre

Festival des Vieilles Charrues : le Libre à l'honneur

Linuxfr - ven, 11/07/2014 - 12:43

Le partenariat technique avec la section française d'Ubuntu a été reconduit pour le Festival de musique des Vieilles Charrues 2014 (du 17 au 20 juillet). L'association infothema aura le plaisir encore cette année de promouvoir la distribution Linux Ubuntu ainsi que les logiciels libres (présentations orientées grand public) dans l'imposant cybercafé géré à 100% avec du Libre. Merci à l'équipe Ubuntu pour sa confiance… et vivement le festival!

Accès au stand libre et gratuit
Localisation : Site de Kerampuil à Carhaix (Finistère - Bretagne)

Télécharger ce contenu au format Epub

Lire les commentaires

Catégories: Nouvelles du Libre

Hacknowledge-Contest Europa Africa à... Québec !

Toolinux - jeu, 10/07/2014 - 23:52

La compétition de hacking éthique à travers l'Europe et l'Afrique élargie son spectre avec un arrêt dans la province canadienne le 22 août prochain. Explication.

- Evénements et séminaires
Catégories: Nouvelles du Libre

Infothema et Ubuntu-fr.org pour la sixième édition des Vieilles Charrues

Toolinux - jeu, 10/07/2014 - 23:25

Les deux associations annoncent la reconduction de leur partenariat technique pour le Festival des Vieilles Charrues 2014, du 17 au 20 juillet.

- Evénements et séminaires
Catégories: Nouvelles du Libre

L'espace de travail bientôt dominé par les drones ?

Toolinux - jeu, 10/07/2014 - 23:13

En Europe, 8 employés sur 10 pensent que d'ici 2036, leur espace de travail aura été transformé par des technologies et des processus qui n'existent même pas encore aujourd'hui.

- Revue de presse
Catégories: Nouvelles du Libre

Les systèmes IT existants, freins à la mise en pratique de la nouvelle législation européenne en matière de protection des données

Toolinux - jeu, 10/07/2014 - 23:11

Craintes et perplexité concernant les mesures à prendre, l'agenda à suivre et les investissements nécessaires

- Revue de presse
Catégories: Nouvelles du Libre

GNU/LINUX Magazine veut faire de vous des experts de Python

Toolinux - jeu, 10/07/2014 - 23:10

Ce vendredi 11 juillet sort chez votre marchand de journaux GNU/Linux Magazine. Ce hors-série n°73 vous emmène dans le monde du langage Python, de ses modules et autres méthodes.

- Revue de presse
Catégories: Nouvelles du Libre

Objets connectés : les services informatiques sont-ils prêts ?

Toolinux - jeu, 10/07/2014 - 23:08

Alors que les objets connectés font partie des 34 priorités de la nouvelle politique industrielle française, une récente étude Infoblox révèle la prise de conscience des entreprises sur les capacités techniques et physiques nécessaires pour les gérer. Il ressort en effet que 90% des DSI prévoient ou implémentent déjà des solutions visant à leur permettre de supporter les demandes « d'objets » dont le nombre est estimé* à 26 milliards (hors PC, tablettes et smartphones) à l'horizon 2020.

- Matériels
Catégories: Nouvelles du Libre

Mobilité : les plateformes PaaS prennent le pouvoir

Toolinux - jeu, 10/07/2014 - 23:05

La mobilité est un concept étonnant. Il n'y a pas si longtemps, ce terme désignait simplement la possibilité de passer un appel téléphonique ou recevoir un SMS — voire, avec un peu de chance, de réceptionner un message électronique ou d'ouvrir la version ancestrale d'une application de bureau.

- Revue de presse
Catégories: Nouvelles du Libre

La folie Docker

Linuxfr - jeu, 10/07/2014 - 22:30

Docker, présenté ici même en mars dernier, 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 namespaces et les cgroups (control groups) 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.

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 !

Sommaire Petite introduction

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 ».

Isolateur :

Émulateur :

Benchmarks :

Changements entre la version 0.11 et 1.0 Construire pour les développeurs
  • Une nouvelle instruction de Docker build est apparue, COPY, qui copie les fichiers et dossiers en l'état depuis le build context;
  • Améliorations autour de l'instruction ADD, et les volumes conservent le propriétaire et les permissions des fichiers pendant le build des images.
Outiller pour les admins sys
  • 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.
  • Mise à jour du profil de sécurité pour l'accès aux périphériques et des capacités pour les conteneurs.
  • 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.
  • L'IANA réserve les ports 2375 et 2376 respectivement pour le trafic HTTP et HTTPS de l'API Docker.

En plus de la correction de 40 bugs et l'amélioration de la cohérence de l'API, la documentation a été entièrement ré-écrite.

Pour les plus intéressés :

Changements entre la version 1.0 et 1.1.0 Très attendue, la nouvelle fonctionnalité .dockerignore

Vous pouvez ajouter un fichier .dockerignore à côté de votre Dockerfile ; 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.

Exemple: https://github.com/dotcloud/docker/blob/master/.dockerignore

Mettre en pause des conteneurs pendant le commit

Auparavant, faire un commit 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 commit).
Les conteneurs sont maintenant mis en pause quand un commit est lancé.

Vous pouvez invalider cette fonctionnalité avec docker commit --pause=false <container_id>..

Voir la fin des logs

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 docker logs --tail 10 . Vous pouvez aussi suivre en temps réel les logs d'un conteneur sans être obligé de lire le fichier complet avec docker logs --tail 0 -f <container_id>.

Un fichier tar peut être passé en tant que contexte pour docker build

Vous pouvez donner une archive tar à docker build en tant que contexte. Cela peut être utilisé pour automatiser les docker builds, par exemple : cat context.tar | docker build - ou docker run builder_image | docker build -

Monter/binder votre système de fichiers complet dans un conteneur

/ 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 :
docker run -v /:/my_host ubuntu:ro ls /my_host
Cependant il est maintenant interdit de monter vers /.

Autres améliorations et changements

L'allocation de port (utilisez la commande docker port 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é.

Un bug dans la commande docker save était apparu dans la dernière version. La commande docker save créait parfois des images avec des métadatas invalides. La commande crée maintenant des images avec des métadatas correctes.
La commande docker inspect lancée dans un conteneur affiche maintenant les conteneurs liés à ce conteneur.

Le flag de docker commit a amélioré sa validation, pour vous empêcher de commiter 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.

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.

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.

Un problème avec les espaces et les multi-lignes dans les Dockerfiles a été corrigé.

Le flag de docker commit a amélioré sa validation, pour vous empêcher de commiter 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.

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.

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.

Un problème avec les espaces et les multi-lignes dans les Dockerfiles a été corrigé.

Packaging

La version 1.0 est déjà disponible dans Debian Sid/Unstable.

boot2docker pour Mac OS X et Windows

http://boot2docker.io/

boot2docker est une distribution Linux très légère, basée sur Tiny Core Linux, 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).

boot2docker s'installe sous Windows et sous OSX.

Annonces de la #dockercon

La version 1.0 a été annoncée à l'occasion de la toute première dockercon.

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.

Cette conférence a notamment été l'occasion pour l'équipe Docker d'annoncer 3 bibliothèques :

libcontainer

Libcontainer permet aux conteneurs de travailler avec les espaces de noms Linux, les control groups, les capabilities, 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.
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 ».

libswarm

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..
Swarm (nom/verbe) signifie essaim ou essaimer.

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".

Démo venant de Dockercon sur youtube :/

libchan

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 :

  • Simple message passing
  • Synchronisation pour la programmation parallèle
  • Nesting : les canaux peuvent envoyer (vers) des canaux
  • Libchan gère les options de transport suivantes :
    • In-memory Go channel
    • Unix socket
    • Raw TCP
    • TLS
    • HTTP2/SPDY
    • Websocket

Voir cette discussion sur libchan avec le créateur de Docker (shykes pour Solomon Hykes)

Des spécifications sont précisées.

La folie Docker

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 l'utilisation de Docker dans le cloud Azure de Microsoft !

Entretien avec Jérôme Petazzoni Peux-tu nous parler de ton parcours ?

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'Université de Marne-la-Vallée (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 Xen en 2004. L'année suivante, je m'associe avec un ami pour monter Enix et miser à fond sur l'hébergement de VM.

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.

Tu fais quoi chez Docker ?

Jérôme Petazzoni : plein de choses ! Avant de lancer Docker, nous avons développé et opéré un PAAS (dotCloud, concurrent d'Heroku). Il existe encore et je fais partie de l'équipe qui s'en occupe.

Mais j'aide aussi régulièrement les "core maintainers" (qui travaillent à plein temps sur Docker) ainsi que ceux qui développent les produits SAAS que nous offrons autour de Docker. Tu es victime d'un bug kernel mystique qui fait rebooter ta machine quand tu démarres un conteneur orienté vers l'Ouest ? Ta partition BTRFS prétend être pleine alors que "df" indique le contraire ? Tes règles iptables repeignent en rouge le trafic multicast qui sort de tes conteneurs ? Je peux t'aider !

En parallèle, je fais beaucoup d' "évangélisme", en l'occurrence sous forme de présentations dans diverses conférences (LinuxCon, OSCON…) 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.

Vous êtes combien d'employés chez Docker maintenant ? Et contributeurs ?

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 plus de 500 contributeurs 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.

Comment est-ce que vous arrivez à gérer un tel afflux de contributions ? (presque 2000 forks sur github)

Jérôme Petazzoni : tout d'abord, il y a un processus très clair. Le fichier CONTRIBUTING à 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.

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 …

Comme il y a souvent plus de 100 pull requests ouvertes à 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 https://github.com/dotcloud/gordon. Il utilise l'API GitHub ; autrement dit, il est utilisable pour d'autres projets souhaitant implémenter un processus similaire.

Pourquoi Go ? D'ailleurs, vous seriez pas le projet le plus important écrit dans ce langage ?

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 goroutines (ça ressemble aux greenlets), tout en étant plus facile d'apprentissage que, par exemple, Erlang ou Haskell. 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.

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.

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!

Comment Docker s'articule-t-il avec LXC (Linux Containers) ?

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.

Cependant, depuis la version 0.9, Docker a ajouté un autre moteur d'exécution natif, basé sur libcontainer. 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.

Ensuite, par rapport à LXC, Docker offre une tonne d'autres fonctionnalités : une API REST, un système permettant de transférer des images depuis et vers une registry, le build avec les Dockerfiles … Aujourd'hui, Docker est une surcouche de LXC tout comme apt et yum sont des surcouches de tar, cpio, et wget !

Comment Docker se compare-t-il par rapport aux BSD Jails, zones de Solaris, OpenVZ Virtuozzo, et Linux-VServer ?

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.

Parallels (la société qui développe OpenVZ) a annoncé qu'elle allait contribuer à libcontainer. 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).

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).

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 ?

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.

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.

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).

Ta fonctionnalité préférée de Docker ?

Jérôme Petazzoni : je vais dire une des rares que j'ai implémentées, le privileged mode ! 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) : OpenVPN, Xorg, KVM, et même Docker lui-même (très utile pour l'intégration continue et le développement du projet).

Grâce à ça, on peut piquer le slogan de NetBSD, et dire "of course it runs in a container" :-)

Les nouveautés à venir dans les prochaines versions de docker (identity, authentification…) ?

Jérôme Petazzoni : d'un point de vue "devops", ce qui est le plus prometteur, c'est à mon avis libswarm. 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 Mesos 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 IAAS) lorsqu'on manque de capacité ; s'interfacer correctement avec des load balancers ; etc.

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" …

Le fondateur (le français Solomon Hykes, Epitech 2006) a recruté un PDG, pris la fonction de CTO et reste actif sur https://github.com/shykes. En France, il aurait pris la fonction de PDG. Est-ce typique des US ?

Jérôme Petazzoni : aucune idée !

Tu peux nous expliquer et nous en dire plus sur l'exploit présent dans la version 0.11 ?

Jérôme Petazzoni : cette attaque utilise un appel système particulier, open_by_handle_at(). 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, name_to_handle(). Le but est de faciliter l'implémentation de serveurs de fichiers en userspace (par exemple NFS ou 9P). Cette partie est expliquée dans cet article sur LWN.

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 open_by_handle_at() pour accéder à la racine du système de fichiers sur lequel se trouve un conteneur.

open_by_handle_at() est contrôlé par une capability, CAP_DAC_READ_SEARCH. Le problème, c'est que jusque Docker 0.11, au lieu d'enlever toutes les capabilities pour ne laisser que celles qui sont inoffensives, Docker enlevait celles qui étaient dangereuses pour laisser toutes les autres. Bilan, quand CAP_DAC_READ_SEARCH a été ajouté au noyau, on a oublié de le mettre dans la liste des permissions dangereuses.

« 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 lxc.cap.drop. Les versions plus récentes permettent de spécifier à la place lxc.cap.keep, mais par souci de compatibilité avec les anciennes versions, on utilisait encore lxc.cap.drop. C'est d'ailleurs une des raisons qui nous ont poussé à développer libcontainer : gérer toutes les versions différentes de LXC devenait difficile.

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 /var/lib/docker 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).

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 !

Télécharger ce contenu au format Epub

Lire les commentaires

Catégories: Nouvelles du Libre

65 % des sociétés utilisent un espace de stockage dans le cloud pour sécuriser leur stratégie de reprise d'activité après sinistre

Toolinux - jeu, 10/07/2014 - 19:53

Un nouveau livre blanc, réalisé par IDC et sponsorisé par Acronis, révèle que la compléxité et le volume croissant des données sont considérés comme défis majeurs en matière de protection de données par les PME.

- Revue de presse
Catégories: Nouvelles du Libre

Sortie de ROOT 6.00/00

Linuxfr - jeu, 10/07/2014 - 16:14

L'équipe ROOT a annoncé la sortie de la version 6.0 le 29 mai dernier. ROOT est un framework d'analyse de données très utilisé dans le domaine de la physique des particules et de la physique nucléaire. Les versions 6.00/01 et 6.00/02 sorties respectivement le 18 juin et le 3 juillet apportent des corrections à cette version 6.0.

Exemples d'utilisation

ROOT fournit un ensemble de bibliothèques facilitant l'analyse de données. Il permet la création de figures comme celles qui ont été présentées lors de l'annonce de la découverte du boson BEH, le boson de Higgs.

ROOT est également utilisé pour simuler des détecteurs, mais aussi créer des systèmes de visualisation des données en ligne…

Nouveautés Nouvel interpréteur

La principale nouveauté de ROOT 6, qui justifie le changement de version majeure, est le remplacement de l'ancien interpréteur de C/C++ CINT (300k lignes de code) par un nouvel interpréteur appelé Cling (5k lignes de code). La rétro-compatibilité avec CINT est assurée. Cling est basé sur la technologie LLVM JIT/Clang (et sera à terme basé sur LLVM MCJIT/Clang). Les développeurs justifient ce choix par le fait que CINT était vieux :

  • Il a été conçu il y a une vingtaine d'années pour prendre en charge le C. La prise en charge du C++ a été ajoutée par la suite avec néanmoins beaucoup de restrictions.
  • Le deuxième argument concerne sa maintenance. Le développeur originel n'est plus au CERN et la taille relativement importante du code (300 000 lignes) a décidé les développeurs à franchir le pas.
Compilation

Historiquement, ROOT se compilait avec le système « ./configure;make; ». Il est toujours possible d'utiliser ce moyen pour compiler ROOT 6.00. Cela dit, une compilation à l'aide du système « cmake » est maintenant également possible. Les informations sont disponibles ici.

Architectures prises en charge et compilateur requis

Du fait du passage à Cling et Clang/LLVM, le nombre d'architectures prises en charge a drastiquement diminué. ROOT 6.00 n'est disponible que sous Linux i32, x86-64 et x32 et OSX x86-64. À noter l'absence de Windows, mais ce dernier devrait être rapidement pris en charge dans les futures versions.
Au niveau compilateur, il est nécessaire de disposer au minimum de gcc 4.8 ou de Clang 3.4.

Nouvelles palettes de couleur et transparence

Cette version voit l'apparition de 5 nouvelles palettes de couleurs prédéfinies

Par ailleurs, une option « alpha » a été ajoutée afin de préciser le niveau de transparence d'un objet (TAttText, TAttMarket, TAttLine…) que l'on désire.

Changement de logo

Le passage à cette version 6 est aussi l'occasion de voir l'apparition d'un nouveau logo.
L'ancien logo qui datait d'octobre 1999 :

a été remplacé par celui-ci :

Autres nouveautés

D'autres changements importants ont également eu lieu :

  • une nouvelle bibliothèque réseau a été ajoutée,
  • une nouvelle classe TTreeReader a été ajoutée permettant un accès plus simple, plus sûr et plus rapide au contenu des TTree,
  • diverses améliorations dans PROOF, l'extension qui permet de paralléliser le traitement d'une analyse,
  • prise en charge des boîtes à moustaches,
  • le binding Python est entièrement pris en charge par ROOT 6. Ce n'est pas encore le cas du binding Ruby,
Télécharger ce contenu au format Epub

Lire les commentaires

Catégories: Nouvelles du Libre

Atelier du Samedi Libre les 26 juillet et 30 août 2014 à Marseille

Linuxfr - jeu, 10/07/2014 - 12:31

L'association CercLL vous invite à deux éditions de l'Atelier du Samedi Libre, qui se dérouleront les 26 juillet et 30 août prochains de 14h30 à 17h30, à la Fabulerie 4 rue de la Bibliothèque 13001 Marseille. Ces évènements sont toujours dans le cadre de la convention de partenariat qui lie l'association et la Fabulerie.

Ces ateliers se déroulent, en général, sur une séquence hebdomadaire de deux à trois séances de travail dédiés à un thème déterminé.

Comme le mot atelier le laisse présumer, dans ce cadre, nous proposons une approche pratique des outils libres.

Nous avons décidé de nous adresser à un public débutant qui cherche à mieux connaître son ordinateur et les applications les plus courantes que tout un chacun utilise.

Prérequis :

  • les personnes qui veulent participer à ces ateliers devront s’inscrire sur la Fabulerie ou directement via notre site ;
  • l'atelier n'aura lieu que si quatre personnes au moins sont inscrites ;
  • l'inscription équivaut à un engagement moral de participation.

Atelier « Découverte des Logiciels Libres »

Cet atelier s’adresse plus particulièrement aux débutants soucieux d’utiliser de manière plus rationnelle leur ordinateur. L'entrée est libre.

Télécharger ce contenu au format Epub

Lire les commentaires

Catégories: Nouvelles du Libre

UMS4, révision de l'administration des clients légers et zéro IGEL

Toolinux - mer, 09/07/2014 - 23:20

Dans la nouvelle version du logiciel IGEL Universal Management Suite (UMS), le mode recherche a été amélioré, une corbeille a été créée et le shadowing VNC a été renforcé avec l'enregistrement de l'historique des événements et un système de distribution des droits plus détaillé.

- Logiciels
Catégories: Nouvelles du Libre

Dématérialisation et mutualisation des collectivités

Toolinux - mer, 09/07/2014 - 23:20

JVS-Mairistem propose les logiciels Intercommunalité On-Line pour accompagner les collectivités dans cette nouvelle mutation, y compris en mode SAAS.

- Logiciels
Catégories: Nouvelles du Libre

Le Big Data et l'analytique au service de la sécurité des comptes à privilèges

Toolinux - mer, 09/07/2014 - 23:05

Une récente étude* IDC révèle que 87% des organisations françaises mettent la sécurité au premier plan de leur projet de transformation numérique. Face à l'augmentation massive des cyberattaques, les entreprises souhaitent augmenter leurs investissements dans les solutions de protection des données.

- Revue de presse
Catégories: Nouvelles du Libre

CentOS 7

Linuxfr - mer, 09/07/2014 - 20:29

Ça y est ! Après plus de trois semaines de reconstruction de paquets et de tests, CentOS, le clone le plus connu de RHEL, est arrivé en version 7.0 le 7 juillet dernier !

Vous retrouverez dans cette version les évolutions de RHEL 7, mais aussi quelques nouveautés spécifiques à CentOS, détaillées en deuxième partie de dépêche, laquelle s'inspire des notes de version.

Résumé des épisodes précédents

En gros, CentOS 7 reprend RHEL 7, à savoir :

  • noyau Linux 3.10 ;
  • environnements de bureau GNOME 3.8 et KDE 4.10 ;
  • nouvelles versions de Python (2.7.5), Perl (5.16.3), et PHP (5.4.16) ;
  • l'arrivée de la branche 2.4 d'Apache HTTPD ;
  • le passage à systemd et à firewalld ;
  • le retrait de MySQL au profit de MariaDB (5.5.35) ;
  • XFS comme système de fichiers par défaut ;
  • la mise à jour possible de la version 6.5 vers la version 7.0 ;
  • inclusion de Docker et de LXC.

Pour plus de détails, n'hésitez pas à lire la dépêche sur RHEL 7 dont le lien est disponible plus haut.

Bon alors, qu'est-ce qui change ?

Comme d'habitude, CentOS réalise un (formidable) travail de rebranding, c'est-à-dire que toutes les références à la marque Red Hat sont remplacées par celle de CentOS, que ce soit au niveau texte ou graphique. Seules exceptions, les notes de versions (les paquets Red_Hat_Enterprise_Linux-Release_Notes-7-*) ou d'autres paquets assez spécifiques concernant l'enregistrement au RHN qui ne sont tout simplement pas fournis. Le détail de ces modifications est précisé dans les notes de version.

Comme d'habitude aussi, CentOS fournit plus d'images ISO que Red Hat : en plus de celle pour DVD, vous pourrez télécharger une version live avec bureau Gnome (en version CD ou DVD, la différence étant la présence de LibreOffice) et une autre version avec bureau KDE. Vous pourrez aussi utiliser une image ISO d'installation par le réseau ou une installation minimaliste. On notera, par contre, la présence d'une dernière image ISO, nommée Everything et pesant plus de 6 Go.

Le dépôt CentOSPlus est toujours de la partie et fournit pour le moment un noyau, des outils liés à ce noyau, ainsi que des paquets perf et python-perf.

Passons maintenant aux nouveautés, à commencer par celles déjà visibles avant la disponibilité de CentOS 7 : le projet a adopté un mode de développement plus ouvert, avec la mise en place d'un dépôt git et la fourniture d'un accès aux logs de construction des paquets. Un autre site assez intéressant est le blog dédié à la version 7.

Une autre nouveauté assez surprenante concerne le numérotage de version. Jusqu'à maintenant, CentOS suivait le formalisme de numérotage de Red Hat : ainsi CentOS 6.5 correspond à RHEL 6.5. Mais le projet CentOS a ajouté un sous-numéro, correspondant au mois et à l'année de construction des paquets. Le principe est de pouvoir fournir, entre deux versions mineures, des médias d'installation ou des images cloud contenant des mises à jour, tout en conservant la logique d'origine de RHEL. CentOS 7.0 est donc en fait CentOS 7.0.1406, construite en juin 2014.

Un autre changement intervient côté nommage : le principe est cette fois de permettre aux SIG (Special Interest Groups) d'étendre le nom de la distribution, en remplaçant le paquet centos-release. CentOS 7 est donc CentOS 7 "Core". Ce fonctionnement n'est pas sans rappeler celui de Fedora avant la version 7, qui s'appelait Fedora Core.

Ce qui devrait arriver un jour

D'abord, les mises à jour : dans son annonce, Karanbir Singh précise que l'objectif est de publier les mises à jour dans un délai de 24 à 48h après la disponibilité de celle de Red Hat. Les paquets de type "debuginfo" devraient aussi arriver sous peu, la date annoncée est le 11 juillet.

On parlait dans la partie précédente d'images cloud : des images officielles devraient voir le jour pour de nombreux fournisseurs dont RackSpace, AWS, Google Compute et OpenStack.

Les SIG devraient aussi arriver pour CentOS 7, l'annonce mentionne Xen on CentOS, CentOS Storage et CentOS Atomic Host.

Un point reproché à Red Hat pour RHEL 7 est la disparition de l'architecture x86 32 bits. Le projet CentOS compte fournir dans les mois à venir une version pour cette architecture, mais aussi pour ARM et PowerPC.

Rencontrer la communauté

Karanbir Singh termine par l'annonce de quelques évènements : les CentOS Dojo. Il s'agit de cycles de conférences, sur une journée, afin de partager ses expériences et d'apprendre de celles des autres.

Les prochains Dojos :

D'autres Dojos pourraient avoir lieu cet hiver à New York, Timișoara (en Roumanie), ou à Bangalore, Pune et New Delhi. De manière générale, la page d'entrée pour les Dojos est sur le wiki de CentOS.

Télécharger ce contenu au format Epub

Lire les commentaires

Catégories: Nouvelles du Libre

Musique-libre.org recherche un admin système

Linuxfr - mer, 09/07/2014 - 01:11

Notre site Musique-libre.org est depuis peu hébergé chez Aquilenet, FAI associatif d'Aquitaine, membre de la FFDN (fédération de FAI associatifs). Mais nous avons un soucis, nous, musiciens, savons très peu de choses concernant l'administration système d'un serveur. Nous faisons donc appel à vous, et à vos bonnes volontés !

Musique libre est une association née en 2004 et à l'origine du site Dogmazic.net (50 000 morceaux de musique, près de 4000 groupes, 150 labels, une base de données de 25 000 utilisateurs…). Suite à de graves soucis, l'archive n'a pu être remise en ligne depuis fin 2012. Le développement d'une V3 du site a été long, trop long pour le seul développeur qui s'en est allé. Le site a depuis baissé ses coûts structurels, pour passer chez Aquilenet qui nous fournit une machine virtuelle sous Debian avec tout ce qu'il nous faut pour développer nos activités. Or, avec Aquilenet, suite à des soucis techniques au niveau serveur, nous avons ressenti le besoin d'un administrateur système.

Donc si vous souhaitez contribuer à l'association Musique Libre ! N'hésitez pas ! Merci d'avance.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Catégories: Nouvelles du Libre

    Arrivée du mini-ordinateur BananaPi en France

    Toolinux - mer, 09/07/2014 - 00:15

    Un clone du Raspberry Pi ? Non, son concepteur préfère le définir comme un... cousin. Le BananaPi entend apporter de la modularité, de la simplicité et de bonnes performances.

    - Matériels
    Catégories: Nouvelles du Libre

    Syndiquer le contenu