Ubuntu Juju, utiliser vos charmes et déployer facilement des services dans le cloud
Juju est une technologie qui permet de déployer facilement des applications dans un nuage informatique. Elle permet de capitaliser les bonnes pratiques des équipes techniques et de rendre l’assemblage de composants logiciel totalement automatisé.
Juju c’est quoi ?
Juju provient du projet Ensemble. C’est un mot d’origine africaine qui signifie « Magie ».
C’est un outil d’orchestration de services qui propose des recettes de déploiement. Pour faire simple, il permet en une ligne de commande de déployer une instance complète d’un serveur WordPress dans un environnement virtualisé de serveurs.
On peut faire le rapprochement avec les gestionnaires de paquets des distributions GNU/Linux mais cela va au-delà de la simple installation d’un logiciel.
Juju permet de rendre abstraite la notion de machine ou de serveur. On déploie un service dans le nuage. Le système se charge de l’allocation des ressources, de créer des machines virtuelles, etc… Cela va même jusqu’à configurer automatiquement les relations entre différents services selon les liens que l’on définit.
Pour l’instant le système ne gère pas les dépendances. Il faut donc penser à installer une base de données et à la lier avec l’instance de WordPress que l’on vient d’installer.
La magie des charmes
Pour cela Juju s’appuie sur des « Charmes ». Il s’agit de procédures exécutables écrites dans le langage de son choix qui doivent respecter certaines règles de nommage pour correspondre à ce qui est appelé un « hook ». Un hook (littéralement « crochet » ou « hameçon ») permet à l’utilisateur d’un logiciel de personnaliser le fonctionnement de ce dernier, en lui faisant réaliser des actions supplémentaires à des moments déterminés (source Wikipédia). Ces hooks contrôlent l’installation, la mise en relation, l’arrêt, le démarrage, etc des charmes.
Je ne suis pas sûr d’avoir totalement compris le principe des charmes, alors je vous laisse regarder cette démonstration qui est bien plus parlante. Elle montre leur utilisation pour déployer un site Mediawiki avec sa base de données et un système d’équilibrage de charge et de cache sans avoir à configurer quoi que ce soit.
La démonstration m’a tout simplement bluffé quand on sait le temps qu’il faut pour assembler tout ces composants (normal c’est une démonstration). La complexité de cette opération est masquée par les charmes qui j’imagine ne sont pas forcément simples à mettre au point. Mais quel gain de temps après…
Juste un point de détails, mais la démonstration montre la mise en oeuvre de Juju avec les services d’Amazon. Je suppose, mais je n’ai pas trouvé la réponse, que cela est possible aussi dans le cadre d’une infrastructure de cloud complète à base de serveurs Ubuntu et d’OpenStack par exemple.
Je vous laisse consulter la liste des charmes disponibles.
Dans le même esprit, voir CompatibleOne, Contrail et Sirrocco. Pour les gens qui puppettisent, le plus similaire à mon sens est CompatibleOne, mais il est encore en mode alpha.
Aussi pour la création d’images de sous services (templates de db, site web…) voir la startup française uShareSoft qui fait de bien jolies choses…
De bon augure pour le deploiement dans le cloud!
Bonjour,
il semble en effet possible d’utiliser juju dans le cadre d’un cloud privé du type d’openstack sur Ubuntu server, bien que cette partie ne semble pas encore documentée dans le wiki de juju. Le site cloudinfrastruture d’Ubuntu UbuntuCloudInfrastructureen donne un exemple. Le type serait orchestra en lieu et place de ec2, dans le fichier de configuration yaml. Il faudrait alors utiliser l’image Ubuntu cloud guest disponible à cette adresse par exemple cloud-images.ubuntu.com à la place des fichiers AMI que l’on trouve sur EC2.