Docker, un exceptionnel environnement pour l’apprentissage !
Docker constitue un excellent environnement pour l’apprentissage. Son impact disruptif sur les autres technologies m’est apparu clairement lorsque j’ai commencé à l’aborder. Dès que vous avez une bonne maîtrise des outils de l’écosystème Docker (Docker Hub, CLI, Dockerfile, fichiers Compose), tout un monde de technologies de l’information, principalement en open source, s’offre à tous ceux qui veulent faire des essais, apprendre et évaluer. Les tests de résistance (“stress testing”) sont sans risque, car l’environnement de type “bac à sable” du conteneur empêche tout dommage au système hôte. Si vous cassez quelque chose, il suffit d’effacer votre conteneur et de recommencer !
Les projets qui m’ont interpellé en premier sur Docker Hub furent les bases de données, PostgreSQL, MySQL, MongoDB, etc. Et les outils de DevOps : Jenkins, SonarQube, Maven… dont j’avais si souvent entendu parler. Puis, les langages de programmation : GCC, Golang, Rust, Julia. Les distros Linux, les frameworks web, les outils d’analytique… et j’en passe. La liste des technologies dockerisées est très longue.
Chaque projet via Docker Hub suit le même schéma : plusieurs versions, des commandes de base, un lien vers le site web du projet source, une configuration pour permettre à l’utilisateur de démarrer et des avertissements le cas échéant.
Les projets ont un point de configuration unique et un emplacement de données persistant unique sur le disque hôte, généralement configurable comme un volume externe au conteneur. Cela résout certains problèmes qui affectent les systèmes traditionnels, tels que les paramètres de configuration répartis sur plusieurs emplacements (le registre, les variables d’environnement, les fichiers ini, xml, json…) ainsi que les paramètres liés à la base de données. C’est une considérable amélioration. Cela allège le fardeau de l’apprentissage de la configuration et facilite la courbe d’adoption.
La comparaison de deux configurations ou versions du même framework sur le même hôte était auparavant presque impossible. Maintenant, c’est possible. Un dockerfile/docker-compose par configuration, quelques numéros de port et un changement d’emplacement de volume, c’est tout ce dont vous avez besoin !
Vous comprenez ainsi rapidement les multiples avantages de Docker.
Le bénéfice de cet écosystème normalisé est que tout le monde peut apprendre rapidement un nouvel outil. Cela ne fera pas de vous un expert, mais avec les tutoriels et les cours disponibles en ligne, vous deviendrez vite compétent. Cela accélère l’acquisition de compétences technologiques.
Docker privilégie manifestement les projets open source, car ils sont très nettement plus nombreux que les logiciels propriétaires sur Docker Hub. Je soupçonne les fournisseurs de logiciels de l’avoir déjà remarqué, étant donné le nombre d’images de logiciels propriétaires qui commencent à apparaître sur le hub. Cela va mettre la pression sur les fournisseurs de services infonuagiques (“cloud computing”) pour qu’ils intègrent les conteneurs Docker dans leur offre de services. Bien sûr, certains d’entre eux offrent déjà une certaine forme de support, mais celui-ci est-il aussi facile à utiliser que Docker lui-même ?
Docker peut paraître comme peu adapté à la production, principalement pour des raisons de sécurité. L’équipe de développement de Docker ferait bien de répondre à ces préoccupations et de simplifier les configurations liées à la sécurité.
Les qualités didactiques de Docker en font la plateforme idéale pour livrer avec succès une technologie — en particulier dans le domaine open source — au public.