L’anniversaire des 3 ans de Docker à Nantes

Docker 3rd BithdayDocker Inc. profite de l’occasion des trois ans de Docker pour organiser des événements un peu partout et destinés à faire découvrir Docker à ceux qui ne connaissent pas encore ou peu.
A Nantes c’est évidemment l’équipe du Docker Meetup de Nantes qui s’y colle (que je viens d’ailleurs aider avec quelques autres) et ça se tiendra le lundi 21 mars à 19h à Epitech.
Pour s’inscrire et avoir les infos c’est ici :
http://www.meetup.com/fr-FR/Docker-Nantes/events/229104727/

Et comme ça approche, pour vous tenir prêt n’oublier pas de préparer votre environnement de travail.
Quelques détails ont été précisés ces derniers jours, par exemple ici :
https://blog.docker.com/2016/03/get-ready-docker-birthday-3/

Pour résumer voilà donc l’essentiel :
Pour les installations il vous faut un Docker Engine opérationnel mais aussi Docker Compose en v>=1.6. Ce qui implique de ce que j’en ai vu qu’il vous faudra un Docker Engine en v>=1.10.0.
Sur Mac et Windows: installé Docker Toolbox.
Sur Linux: installation de Docker engine et Docker Compose via le repo Docker pour votre distribution.

De plus pour ne pas passer votre temps à attendre le téléchargement des images nécessaires, il est demandé de les précharger à l’avance sur votre Engine.

Pour le tutorial « basic », il est nécessaire de récupérer les images suivantes:
– docker pull hello-world
– docker pull busybox
– docker pull seqvence/static-site

Puis pour lancer l’application et participer au reste du training, il vous faudra :
– docker pull mhart/alpine-node
– docker pull python:2.7-alpine
– docker pull java:openjdk-8-jdk-alpine
– docker pull redis:alpine
– docker pull postgres:9.4

A lundi!

Docker version 1.10 : nouveaux IDs d’images, sécurité, réseau, clustering et plus encore

Docker animals
Docker version 1.10

Trois mois après la version 1.9 de Docker qui a apporté de nombreuses nouvelles fonctionnalités, le projets Docker continue d’évoluer à un rythme effréné et c’est donc sans surprise que la version 1.10 a été officiellement mise à disposition.

Une nouvelle gestion des identifiants d’images

Une des évolutions majeures concerne de la gestion des ID des images. Celles-ci sont désormais générées à partir de leur contenu, à la manière des hash des commits Git, renforçant ainsi l’intégrité des images manipulées. Par contre attention, le passage vers la nouvelle version nécessite une migration des référentiels d’images des engines qui peut s’avérer longue.

Compose, sécurité et réseau virtuel à l’honneur

Parmi les grandes nouveautés on notera :

  • l’évolution de Compose qui se tient à jour des nouvelles fonctionnalités et qui permet désormais de gérer la configuration réseau et des volumes.
  • l’aspect sécurité encore une fois renforcé avec en particulier la mise en place d’une meilleure isolation des utilisateurs système via les namespaces dédiés « users », l’utilisation de profiles de sandboxing  » seccomp » pour filtrer les appels systèmes et un système de plugins pour gérer les habilitations des fonctionalités de l’Engine.
  • dans la lancée de la version précédente, la gestion réseau s’étoffe elle aussi à nouveau pour offrir une gestion de réseaux « virtuels » plus fine:  on peut ainsi gérer facilement les liens d’un conteneur vers un autre, des alias, la restriction du trafic au réseau « interne », la configuration des adresses IPs. De plus c’est désormais un serveur DNS qui permet la résolution des noms en remplacement du fichier /etc/hosts jusque là utilisé.

Les évolutions du Docker Engine 1.10 sont-elles aussi nombreuses

  • la gestion des événements conteneurs est grandement améliorée (commande « docker events »)
  • Lors du redémarrage du démon, l’engine essaiera désormais de démarrer les conteneurs liés dans l’ordre le plus satisfaisant
  • Possibilité de modifications à chaud des ressources allouées à un conteneur
  • Fichier de configuration du « démon » avec possibilité de rechargement sans redémarrage complet pour certaines options (lavels, activation des logs de debug)
  • Apparition de l’option « –tmpfs » permettant la création facile de systèmes de fichiers temporaires 
  • Amélioration des performances des opérations de push et pull ainsi que l’ajout de mécanismes de reprise en cas de problèmes.
  • Nouvelles options sur le docker run pour définir les contraintes en I/O disque (–device-read-bps, –device-write-bps, –device-read-iops, –device-write-iops, et–blkio-weight-device).
  • Un nouveau driver de logging Splunk …

Pour plus de détails sur ces évolutions, vous pouvez vous reporter à la release :
https://github.com/docker/docker/releases/tag/v1.10.0
Annonce de la version 1.10 sur le blog Docker : https://blog.docker.com/2016/02/docker-1-10/

De plus, Docker 1.10 s’accompagne de la sortie de nouvelles versions pour différents outils importants tels que Swarm 1.1, Machine 0.6 et Registry 2.3.

Voila donc une nouvelle mouture qu’il nous reste à tester mais qui semble encore une fois faire avancer les sujets importants de la sécurité, du clustering et de la gestion réseau mais aussi différentes options qui permettront de résoudre des cas d’utilisation réels.

Mais qui pourra suivre la baleine et ses amis?

Par contre, on peut se poser la question de l’impact d’une évolution comme celle du format d’images sur l’écosystème Docker. Les outils et services de l’écosystème suivront-ils rapidement cette évolution structurante?
Je pense notamment aux outils implémentant les fonctions de Registry pour les images Docker. Par exemple à Nexus 3 devait sortir prochainement en offrant cette fonction stratégique mais sera-t-‘il compatible avec Docker 1.10 ? Normalement oui mais rien de certain.
C’est aussi vrai pour les fournisseurs d’offres s’approchant du modèle Containers-as-a-Service par exemple.
De quoi se poser de vraies questions sur les choix à faire entre les produits Docker & associés et les autres. La réactivité face au rythme élevé d’évolutions  imposés par la baleine et ses amis pourra faire la différence pour les utilisateurs les plus pressés d’utiliser les nouveautés.

Tout chaud! Docker 1.9 et ses nouveautés: réseau, volumes, clustering,…

Les choses évoluent toujours très vite côté Docker puisque la version 1.9 de Docker a été publiée hier alors que la 1.8 n’était sortie qu’en août dernier et la 1.7 en juin.
Parmi les principales évolutions annoncées on peut retenir:

  • Ajout important de fonctionnalités réseau avec la gestion de réseau virtuel sur plusieurs hosts (jusque-là, sans outil extérieur le réseau virtuel se limitait à un Engine) et possibilité de créer des topologies réseaux variées ainsi que l’introduction de possibilité d’extension via plugins.
  • Système de gestion des volumes (stockage) refacturé permettant de gérer des volumes persistant au travers d’un cluster (Swarm) et amélioration de la prise en compte des plugins de stockage.
  • Docker Swarm est annoncée « production-ready » pour la gestion de cluster Docker natif.
  • Différentes évolutions du docker Engine
    • Build-time arguments pour les Dockerfile
    • Meilleure gestion des pulls d’image concurrents
    • Possibilité de customiser le signal envoyé lors de l’arrêt du conteneur
    • AWS CloudWatch logging driver
    • Ajouts des statistiques d’I/O à docker stats

Le détail des évolutions liées à cette release est consultable ici.

Tout cela s’accompagne d’une nouvelle version de Compose (v 1.5) permettant entre autres la variabilisation et une meilleur gestion d’environnements multiples
ainsi qu’une nouvelle version de la Registry (v2.2.0)
et une mise-à-jour de Docker Toolbox pour utiliser tout cela sur Windows et MacOS.

C’est donc à nouveau une grande fournée de nouveautés qui incluent des avancées notables des fonctionnalités de Docker. On ne peut que constater que les équipes Docker restent très à l’écoute des demandes des utilisateurs.

One repository to rule the all ? Nexus en tant que Docker Registry

Nexus+DockerLes problématiques de gestion et de gouvernance des images de conteneurs vont très probablement devenir un problème récurrent au sein des organisations de plus en plus nombreuses à adopter les technologies comme Docker. Il leur faudra gérer sur le long terme la bonne gouvernance de ces référentiels qui vont devenir centraux  : accès et les habilitations, patching de sécurité, normalisation et classement, éviter les redondances et empilement de versions avec des  volumes de stockage qui vont fortement grossir avec le temps… les sujets ne manqueront pas.

Le marché des registre d’images qu’il soit privés ou dans les nuages n’a donc pas fini de se développer et différents acteurs se positionnent pour concurrencer les offres de Docker. Côté registre privé on retrouve déjà les acteurs installés des référentiels d’artefacts  tel JFrog (Artifactory) et Sonatype. Pour ce dernier la version 3 de Nexus attendues d’ici la fin de l’année embarquera des fonctionnalités de gestion des formats d’images Docker et devrait supporter les API Docker Registry V1 et V2.
Même si un peu en retard, Nexus ne manque pas d’atout puisque déjà bien implanté dans les entreprises et les chaînes d’intégration continue (voire déploiement continue / CD) pour gérer tous les artifacts et dépendances. Avec son interface et ses fonctionnalités de gestion des accès et des habilitations déjà existantes il s’avère un choix tentant pour éviter d’introduire un nouveau référentiel dédié uniquement aux images. En tout cas l’intérêt semble assez évident pour les phases développement et tests. Car les référentiels d’images seront probablement multiples et on peut imaginer que certaines organisations encore trop empêtrées dans leurs silos choisiront des outils différents entre les phases d’exploitation et de celle de développements/tests.

La « preview » Nexus 3 Milestone 5 publiée en septembre supporte déjà l’API Registry V1. J’ai commencé quelques tests et j’avoue retrouver une interface connue avec ses fonctionnalités établies est un plus non négligeable. L’outil semble par exemple nettement plus utilisable et fin pour la gestions des accès et des habilitations par rapport à ce qu’offre pour l’instant les Docker Registries.

Sur le sujet, je partage avec vous la vidéo sur le sujet des Docker Private Regitry par Sonatype qui nous pérsente quelques fonctionnalités Docker de Nexus 3:

Let’s go MEAN! The positive way avec la stack full JS

JavaScript

Radin, avare, méchant … non ce n’est pas tout cela que nous promet le nouveau stack qui s’impose partout auprès des développeurs Web et même au sein des grandes DSI. Ce qui nous est promis c’est plutôt la possibilité d’utiliser désormais JavaScript du sol au plafond en passant même par la base de données!

Il y a encore quinze ans , pour beaucoup JavaScript était synonyme de cauchemars du fait notamment de l’obligation de gérer des implémentations différentes d’un navigateur à un autre. Ce pseudo langage s’est imposé cependant immédiatement comme obligatoire pour assurer un peu d’interactivité sur les pages des applicatifs Web. L’arrivée de différentes librairies et fonctionnalités d’appels asynchrones permirent déjà un renouveau important sous le nom d’AJAX (Asynchronous JavaScript And XML) peut être pour faire oublier les « douleurs » du JavaScript des premiers temps.
Depuis les choses ont bien évolué et Google est passé par là avec son implémentation du moteur « V8 » qui donna enfin au langage le cadre qui lui permet d’être performant et pas seulement dans le navigateur.
Nous sommes donc en plein dans la vague du JavaScript: côté client évidemment, mais aussi côté serveur, y compris pour des fonctionnalités « middleware » et gestion de données!
Tout cela pour dire que c’est décidé, après une phase d’observation intéressée un peu longue c’est décidé mes prochains dev seront sur une stack Full JS avec « M.E.A.N »:

  • MongoDB (la DB NoSQL utilisant le format JSON)
  • Express (module « middleware » pour NodeJS)
  • Angular.JS : le principal framework JS côté client
  • Node.JS: le JS côté serveur

 

Meilleurs vœux pour 2015

Janvier s’achève bientôt mais autorisez moi encore à considérer qu’une nouvelle année débute.

J’en profite donc pour vous présenter mes vœux les meilleurs et vous souhaiter succès et réussite dans vos projets professionnels et personnels.

De grands défis sont devant nous, notamment pour assurer un avenir sain et durable pour tous.
Cependant nous nous devons d’être optimistes. La culture et les pratiques de nos organisations évoluent rapidement vers de nouveaux modèles stimulants.
Des tribus se forment pour certains, d’autres jouent sérieusement mais pour tous la cohésion d’équipe est à l’ordre du jour. Et si l’amélioration en continue est une voie certaine vers l’efficacité, celle-ci n’aboutira pas sans rechercher aussi le développement des individus.
C’est alors tout en souplesse et agilité que nous aborderons avec le sourire les nouveaux challenges de ces temps à venir.
Après tout une partie de nos activités prochaines se dérouleront dans les « nuages ». Evoluer dans les nuages.. n’en avions nous pas rêvé?

Excellente année 2015!

Bonnes pratiques pour WordPress sur AWS

Amazon Web Services (AWS) vient de publier en ce début d’année 2015 un livre blanc présentant un recueil des bonnes pratiques pour déployer le CMS WordPress sur ses infrastrustures et services.

Rien de révolutionnaire pour ceux qui connaissent déjà bien les fonctionnalités du principal fournisseur de l’infrastructure cloud de la planète mais voilà toute de même une publications qui a le mérite de présenter de manière concise sur un cas concret les possibilités offertes par les différentes briques AWS. On retrouvera donc les grands principes d’utilisation des services et technologies comme les AMIs, EBS, S3, Route 53, CloudFront, RDS, ElastiCache, les fonctionnalité d’Auto-scaling, Elastic Load Balancer, DynamoDB…
Evidemment tout cela est relativement survolé mais c’est un excellent point de départ pour aller creuser plus loin notamment avec les nombreux liens proposés.

Ce livre blanc cite aussi quelques plugins WordPress permettant d’exploiter facilement les nombreuses possibilité des services AWS. L’un d’eux s’affirme comme presque incontournable pour la gestion des différents caches et d’un CDN : W3 Total Cache . Ceux qui voudront optimiser la couche base de données seront aussi intéressés par le plugin HyperDB.

Des éléments complémentaires pour le scaling initial aurait pu être intéressant pour les sites générant un trafic important. Gageons que les facilités de scaling vertical et d’auto-scaling (scaling horizontal) permettront de ne pas être trop impacté par ce choix initial.

Pour télécharger le livre blanc, rien de plus simple : Livre blanc « WordPress best practices on AWS »

OVH s’implantera à Nantes ou à Rennes en 2014. Allez Nantes!

OVH, leader français et européen de l’hébergement et troisième au niveau mondial a annoncé à la fin de l’année 2013 son intention d’ouvrir un nouveau bureau dans le Grand Ouest à Nantes ou à Rennes.

Pour finaliser son choix, l’entreprise nordiste invite tous les passionnés des deux villes à nous envoyer leur CV et lettre de motivation.

Rennes est une belle ville qui est fut un pôle Télécom et la scène locale se démène pour attirer l’attention. Cependant j’espère évidemment que Nantes remportera la « bataille ». Son emplacement exceptionnel sur l’arc Atlantique et à la porte de la Bretagne et ses infrastructures de qualité sont déjà de très beaux atouts. Mais c’est surtout son vivier important de compétences et de sociétés dans le domaine IT constitué à la fois de grandes structures, de petits et moyens éditeurs et de nombreuses start-up innovantes qui pourraient bien faire la différence. D’autant plus que les nombreuses écoles d’ingénieur et d’informatique nantaises assureront un choix de candidats important pour le futur.

Amis nantais, il reste encore quelques jours pour postuler avant la fin du mois de janvier:
https://www.ovh.com/jobs/ovh-city-nantes-rennes.xml

PS: mon blog est évidemment hébergé chez OVH 😉

Programmation Android sur Coursera

Disposant en ce début d’année d’un peu plus de temps que d’habitude (ma mission précédente s’est terminée mi-janvier) voilà enfin une occasion de suivre un cours sur Coursera, l’un des principaux sites de MOOC (Cours en ligne ouvert et massif en français).

J’avais particulièrement apprécié les cours de Douglas C. Schmidt intitulé « Pattern-Oriented Software Architectures » (POSA) même si je n’avais pas suivi toute la session jusqu’au bout faute de temps.  Ca tombe bien car ce cours sur Android sera suivi d’un autre cours de D.C.Schmidt : « Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems ».

On se retrouve en cours? 😉

Programming Mobile Applications for Android Handheld Systems by Dr. Adam Porter

Continuous Delivery and DevOps: A Quickstart guide (Paul Swartout)

Pakt Publishing propose avec ce « quickstart guide » un ouvrage assez court permettant de survoler la planète DevOps et la démarche de « Continuous Delivery ». A prendre comme un point d’entrée généraliste qui laissera probablement les Dev et les Ops sur leur faim mais à vivement conseiller à tous les managers.

En effet tout le monde s’accorde pour rappeler que DevOps ne se limite surtout pas à la mise en place d’outils et ce livre l’illustre assez bien puisque les outils et la technique y sont quasiment absents. Ni cherchez donc pas de solutions techniques, mais plutôt une liste de course des domaines qu’ils vous faudra aller explorer par vous même. Mais ce panorama assez large puisqu’il se place plutôt au niveau des processus du SI voire de l’entreprise pourra intéresser les managers qui voudront savoir de quoi il en retourne et ne sera pas inutile aux techniciens désirant se faire une vue globale pour se rappeler que les principales difficultés ne sont pas techniques mais bien organisationnelles, culturelles et humaines.

Ce livre s’apparente donc plutôt à une collection de suggestions pour ceux qui voudraient mettre en place le « Continuous Delivery » ou au moins améliorer le cycle de vie de leurs applicatifs et mettre de l’huile dans les processus entre Dev et Ops.

Ce sont là principalement des bonnes pratiques déjà bien connues agrémentées d’agilité et de quelques conseils et exemples. Cependant on obtient là un concentré assez court et facile à lire avant de se plonger dans des sources plus détaillées (comme par exemple le très dense « Continuous Delivery » de Jez Humble et David Farley).

Continuous Delivery and DevOps: A Quickstart guide de Paul Swartout
Edition en Anglais, publiée en octobre 2012
Liens Amazon : Ebook et Livre en anglais