> Tech > Jenkins, Docker, Heroku… Faisons un tour des logiciels

Jenkins, Docker, Heroku… Faisons un tour des logiciels

Tech - Par Renaud ROSSET - Publié le 19 mars 2015
email

Ils compteront sans doute dans votre bibliothèque applicative dans un avenir proche.

Jenkins

Jenkins est un outil open source d’intégration continue, fork de l’outil Hudson après les différends entre son auteur, Kohsuke Kawaguchi, et Oracle. Écrit en Java, Jenkins fonctionne dans un conteneur de servlets tel qu’Apache Tomcat, ou en mode autonome avec son propre serveur Web embarqué. Il s’interface avec des systèmes de gestion de versions tels que CVS, Git et Subversion, et exécute des projets basés sur Apache Ant et Apache Maven aussi bien que des scripts arbitraires en Shell Unix ou batch Windows.

Qu’est-ce que l’intégration continue ? Pour faire simple, le principe est de vérifier idéalement à chaque modification de code source, que le résultat de ces modifications de produit pas de régression sur l’application. Ainsi, en utilisant ce type de logiciel, on peut construite et mettre à jour des applications de manière rapide et simplifiée, en automatisant tous les processus de tests et de validation d’un composant.

Docker

Docker est un projet open source qui automatise le déploiement d’applications dans des conteneurs logiciels. Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur virtuel, qui pourra être exécuté sur n’importe quel serveur Linux ou Windows. Ceci permet d’étendre la flexibilité et la portabilité d’exécution d’une application, que ce soit sur la machine locale, un cloud privé ou public, une machine nue, etc.

Contrairement aux machines virtuelles traditionnelles, un conteneur Docker n’inclut pas de système d’exploitation, à la place il s’appuie sur les fonctionnalités du système d’exploitation fournies par l’infrastructure sous-jacente. La technologie de conteneur de Docker peut être utilisée pour étendre des systèmes distribués de façon à ce qu’ils s’exécutent de manière autonome depuis une seule machine physique ou une seule instance par nœud ; ce qui permet aux nœuds d’être déployés au fur et à mesure que les ressources sont disponibles, offrant un déploiement transparent.

Heroku

Heroku est un service de cloud computing de type plateforme as a service. Créé en 2007, il était l’un des tout premiers services cloud, puis a été racheté par Salesforce.com. À l’origine dévolue aux applications web programmées en Ruby et utilisant Rack (typiquement, des applications Ruby on Rails ou Sinatra), l’offre s’est ensuite étendue à d’autres runtimes : node. js, Java, Spring et Play, Clojure, Python et Django, Scala, API Facebook, ainsi que PHP de façon officieuse. Les différents runtimes coexistent aujourd’hui dans un même stack polyglotte, nommé Cedar, tournant sur une base d’Ubuntu. Le service permet le déploiement très rapide d’applications web dans le cloud, avec une gestion très souple du scaling horizontal au travers d’un modèle de gestion des processus emprunté à Unix et adapté au Web.

L’infrastructure utilisée par Heroku repose sur AWS. Différents services d’AWS, notamment EC2 (pour l’exécution du code) et S3 (pour le stockage) sont mis à profit dans l’architecture Heroku pour mettre à disposition de l’utilisateur final un environnement de déploiement et d’exécution adapté à son besoin. Cet environnement est accessible à travers la ligne de commande, via git, et un ensemble d’outils spécifiquement développés par Heroku (le heroku tool belts, un CLI dédié). L’architecture Heroku est centrée sur les processus, et non sur des instances virtuelles ou des serveurs.

Le code déployé est analysé pour détecter le type d’application à faire tourner, ainsi que les processus nécessaires ; l’analyse déclenche la mise en place d’un environnement dédié, adossé à une ou des unités d’exécution appelés dynos, lesquelles font tourner les processus requis pour faire fonctionner l’application deployée. L’utilisateur final peut explicitement déclarer quels processus utiliser, et comment les scaler, mais la plateforme est capable de réaliser ce travail de façon automatique, en laissant simplement à l’utilisateur l’opportunité d’affiner ses réglages par défaut.

Puppet

Puppet est un outil de gestion de la configuration de serveurs, il permet le télédéploiement de configuration sur un ensemble de serveurs en quelques minutes. L’intérêt de cette solution open source réside dans son support multi-plateformes (basé sur Ruby), sa sécurité (ssl), son développement actif et sa relative simplicité à mettre en oeuvre. Puppet Labs, la société qui l’édite, dispose de nombreux partenaires tels que VMware, Amazon Web Services, OpenStack, Eucalyptus, Cisco, RightScale et Zenoss permettant à sa solution d’être présente sur une multitude de plateformes.

Chef

Chef est un logiciel libre de gestion de configuration écrit en Erlang. Il utilise un langage dédié (appelé domain-specific language ou DSL) en pure-Ruby pour l’écriture de configuration du système d’exploitation sous la forme de « recettes » (recipes) ou de « livres de recettes » (cookbook). Chef a été écrit par Opscode et est publié sous licence open source Apache 2.0. Chef peut être utilisé en mode client-serveur, ou dans une configuration consolidée nommée « chefsolo ». Chef est d’une certaine manière le concurrent de Puppet.

Zabbix

Zabbix est un logiciel libre permettant de surveiller l’état de divers services réseau, serveurs et autres matériels réseau et produisant des graphiques dynamiques de consommation des ressources. C’est un logiciel open source créé par Alexei Vladishev. Zabbix peut être décomposé en 3 parties séparées : Le serveur de données, l’interface de gestion et le serveur de traitement. Chacune d’elles peut être disposée sur une machine différente pour répartir la charge et optimiser les performances.

Redmine

Redmine est une application web libre de gestion de projets presque complète en mode web, développée en Ruby sur la base du framework Ruby on Rails. La gestion des tests devra être faite avec un autre outil. Il a été créé par Jean-Philippe Lang. D’autres développeurs venant de la communauté des utilisateurs de Redmine contribuent depuis au projet.

La liste de tous les outils en train d’émerger comme des environnements de travail du Cloud Computing serait longue pour prétendre d’être exhaustive et les quelques services arbitrairement présentés ici permettent de comprendre que l’offre est encore très fragmentée et dans le portefeuille de petites entités, qui seront certainement exposées à des rachats à moins qu’elles ne dépassent une taille critique rapidement. Fait remarquable, les Français sont loin d’être dépassés par cette nouvelle informatique, puisque deux des services présentés ici (Docker et Redmine) ont des origines françaises.

En outre, aujourd’hui le Cloud Computing essaye encore de convaincre les entreprises de s’y intéresser et mettre en avant la possibilité de migrer des environnements traditionnels vers leur équivalent en machines virtuelles sur les plateformes dans le nuage, l’émergence de nouveaux outils dont certains d’entre eux deviendront certainement des standards à l’avenir, laisse envisager un futur où nous aurons dépassé le fait de penser par unité technique (le concept du PC remontant à la fin des années 1980).

Dès lors, si nous nous projetons un peu dans le temps, dès lors que les nouveaux standards se seront imposés sur les plateformes de Cloud Computing, il ne suffira pas de grand-chose avant qu’une première société commerciale distribue une solution qui ne sera plus basée sur le modèle d’image et d’ordinateur, mais sous la forme de packages instanciés dans le nuage simplement consommables et distribuables en quelques instants via des conteneurs. A ce moment, le Cloud Computing aura fini par l’emporter sur son prédécesseur, l’architecture client/serveur.

Téléchargez cette ressource

Sécuriser votre système d’impression

Sécuriser votre système d’impression

Longtemps sous-estimée, la sécurisation d’un système d’impression d’entreprise doit être pleinement prise en compte afin de limiter le risque de fuite d’informations sensibles. Voici les 3 principales précautions à prendre.

Tech - Par Renaud ROSSET - Publié le 19 mars 2015