OpenStack.fr

OpenStack.fr

jeudi 13 octobre 2011

Juju apte pour le PaaS

En ce jour de la sortie officielle de Oneiric Ocelot (Ubuntu 11.10, release Desktop and Server), je viens de découvrir Juju de Canonical, suite à la présentation effectuée lors du Design Summit OpenStack en début du mois à Boston (projet Canonical ayant débuté probablement, lors du 1er semestre 2011). C'est quoi ce joujou ? Partons du principe que les ressources d'infrastructure sont disponibles et configurées pour être exploitées en production grâce à l'environnement de la couche IaaS (virtualisation, image, storage, automatisation, ...).

Maintenant, il faut aisément déployer ses applications, sachant que cela peut devenir fastidieux et onéreux, lorsque le nombre de ressources et de composants logiciels est important (ex: application scalable et fortement disponible, mettant en jeu environ 6 à 8 serveurs physiques ou logiques). Alors, c'est là qu'intervient Juju, car c'est un outil de déploiement et d'orchestration de services, au dessus de la gestion des paquets logiciels du monde essentiellement Linux. Juju (anciennement nommé: ensemble) s'appuie sur l'utilisation de fichiers de description appelés "charms" (anciennement nommé: formula) pour décrire des expressions partageables, réutilisables et reproductibles d'opérations d'installation, de configuration, de connexion, de montée de version et d'exploitation des services, dans un environnement de ressources distribuées.

Des mots clés et une grammaire propres à Juju basés sur une syntaxe YAML (moins verbeuse qu'XML et donc, très facilement lisible) pour décrire dans un fichier "formula: metadata.yaml" d'une arborescence dédiée à l'application à déployer, l'ensemble des éléments nécessaires à ces actions de déploiement et d'orchestration automatisées. Pour constituer cette description, il faut bien évidemment connaître la composition des constituants logiciels de l'application et une expérience de leur installation et configuration. A partir de cela, le fichier peut ressembler (configuration non exhaustive) à la copie d'écran ci-dessous.

Sur la base du fichier "metadata.yaml" plusieurs actions élémentaires, voire regroupées ou encore globales peuvent être engagées (en ligne de commande, voire via une IHM Web quelconque). Un exemple de commandes (hooks) est donné ci-dessous.

Le projet Canonical a pour but de fournir cette solution avec les outils et les méthodes adéquates, mais aussi fournir les fichiers de description pour les applications, les plus courantes. Ce lien (ici) sous "launchpad" donne un état de la couverture prise en compte à ce jour et l'état d'avancement pour chacune des applications concernées.


Bref, il n'est pas possible de faire un bilan exhaustif de cette solution en un seule publication sur ce blog, mais cela permet de mieux cerner le périmètre de cette solution Open Source apportée par Canonical. Dans la panoplie des solutions Open Source nécessaires et profitables à la réalisation d'environnements de Cloud Computing, quelque soit leur modèle, il y a parfois redondance partielle ou totale de solutions. Je pense aux outils de type Puppet, Chef, Caspistrano, etc., voire aussi ceux de l'éditeur Ushare qui gravitent autour de ce périmètre. A défaut qu'une étude comparative ait déjà été réalisée sur le sujet, il faudra s'y mettre pour mieux comprendre le rôle de toutes ces solutions orientées déploiement. 

Amis administrateurs système, votre métier va changer, vous n'allez plus avoir à multiplier des taches fastidieuses et répétitives, mais vous concentrez sur d'autres volets plus passionnants: optimisation, performance, etc.

Vivement demain...
 

3 commentaires:

  1. Très bonne présentation vidéo par Nicolas Barcet d'Ubuntu des technos: OpenStack, Orchestra et Juju, ici:

    http://ubuntu-paris.org/video/ubuntu-party-paris-2011-11-11_ubuntu-cloud-et-juju-outils-d-infrastructure-orientes-services_nicolas-barcet

    RépondreSupprimer
  2. Détail de la constitution du hooks et de la formule (yaml) Juju pour Cassandra. En final, il faut 2 commandes pour installer Cassandra sur 1 à N noeuds de cluster :

    $ bzr branch lp:~negronjl/+junk/cassandra
    $ juju bootstrap
    $ juju deploy --repository . cassandra

    vérification
    $ juju status

    RépondreSupprimer
  3. J'ai oublié de fournir le lien du post Ubuntu qui donne les détails :

    http://cloud.ubuntu.com/2011/08/easy-cassandra-deployments-with-ubuntu-server-and-ensemble/

    NB: ensemble = juju

    RépondreSupprimer