Vous n'avez pas encore de notification

Page d'accueil

Options d'affichage

Abonné

Actualités

Abonné

Des thèmes sont disponibles :

Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !

Juju : OwnCloud et Wordpress déployés en quelques instants

Notre « Cloud » du jour : l'EC2 d'Amazon

Alors qu'Ubuntu 12.04 (The Precise Pangolin) est désormais disponible en version finale, nous avons décidé de nous attarder sur l'une de ses fonctionnalités qui se destinent aux développeurs, et aux amateurs du « Cloud » : Juju. Derrière ce nom trivial se cache un service qui permet un déploiement aisé d'applications sur des solutions telles que l'EC2 d'Amazon, et ce, en quelques lignes de commandes.

Ubuntu Juju Logo

Issu du projet Ensemble, le but de Juju est de proposer à la communauté des procédures d'automatisation, connues sous le nom de « charmes » qui contiennent toutes les instructions pour : 
  • Mettre en place et configurer vos instances
  • Installer et configurer les outils désirés
  • Mettre en ligne la solution en ouvrant les ports nécessaires
Comme nous le disions précédemment, la cible peut être l'Elastic Cloud Compute d'Amazon (EC2), mais Juju fonctionne aussi avec OpenStack ou MaaS. Avant de commencer, revenons d'ailleurs sur quelques notions fondamentales de la solution du « Cloud » d'Amazon  que nous utiliserons lors de nos essais.

Le  « Cloud » avec AWS : simple, complet... et parfois gratuit

Celle-ci vous permet tout simplement de créer des instances, qui sont des machines virtuelles d'une puissance variable. Il en existe en effet différents types (Micro, Small, Medium, ...) qui peuvent disposer de plus ou moins de puissance de calcul CPU ou même GPU, de plus ou moins de mémoire...

Pour les mettre en place, rien de plus simple : il vous faut disposer d'un compte AWS (Amazon Web Service) et de vous rendre dans la console dédiée à cet effet. Notez que l'avantage de la solution du géant du commerce en ligne est qu'elle propose un certain niveau de gratuité avec certaines instances, pour certaines durées comme le montre l'image ci-dessous.

Tarifs Amazon EC2Vous devrez ensuite choisir une distribution à installer sur votre machine, la région du monde à partir de laquelle elle sera disponible (USA, Europe, Asie...) et quelques paramètres plus ou moins complexes... et c'est parti. Quelques minutes à peine plus tard, vous pouvez accéder à votre serveur au minimum via le protocole SSH, comme avec n'importe quel hébergement dédié.

La différence ici, c'est que vous ne payez que pour ce que vous utilisez, tant au niveau de la durée, que de la bande passante, du stockage... Ainsi, vous ne pouvez vous servir de votre machine que pour quelques heures, pour effectuer un test, et ne débourser quelques centimes de dollars. Vous avez besoin d'effectuer un calcul lourd pendant une demi- journée ? Il vous suffit de le lancer sur une instance puissante, et le tour est joué.

Outre cette capacité de facturation à la demande, c'est la flexibilité du « Cloud » qui séduit aussi beaucoup les utilisateurs, qu'ils soient occasionnels ou non. Vous pouvez en effet développer une application à moindres frais, la rendre disponible pour vos amis, la faire évoluer... puis augmenter votre capacité de traitement en quelques clics si le succès est au rendez-vous. Besoin de multiplier les serveurs ? La déduplication se fait en quelques clics.

Et les services d'Amazon ne se limitent pas à EC2 et comportent bien d'autres possibilités. La plus connue est sa solution de stockage S3, utilisée notamment par Dropbox, mais vous y retrouverez aussi des solutions de CDN, de base de données, de traitement de queues... vous trouverez tous les détails par ici.

Etude d'un cas simple et intéressant : Owncloud (1/2)

Dans notre cas, c'est EC2 seul qui nous intéressera aujourd'hui. Et bien que la mise en place d'instances soit assez simple, l'installation et la configuration d'une application ne le sont pas toujours totalement.

Juju : comment simplifier encore plus le déploiement d'une application dans EC2

Juju se propose justement de tout faire pour vous via les fameux charmes, qui sont proposés et maintenus par la communauté. Notez que vous avez d'ailleurs la possibilité d'en écrire vous-même si vous vous en sentez capable, la documentation est disponible par ici.

Ubuntu Juju

Pour notre essai du jour, nous avons décidé de prendre l'exemple d'un outil qui commence à faire parler de lui pour diverses raisons, et que nombre de nos lecteurs rêvent d'utiliser sans se casser la tête : OwnCloud. Il dispose d'ores et déjà de son charme, tout comme de nombreux autres services auxquels vous pourrez appliquer ce guide : Etherpad Lite, Minecraft, Bitlbee, Alice IRC, Teamspeak... vous trouverez la liste complète par ici.

Le cas d'OwnCloud : Hébergez vous-même vos fichiers, avec synchronisation

Pour rappel, le but de cette solution libre est simple : devenir une véritable alternative à Dropbox et aux solutions propriétaires qui peuplent le marché. Ainsi, vous hébergez vous-même vos données sur le serveur de votre choix, celles-ci sont disponibles via une interface web relativement sobre et déjà assez complète.

Ses différents éléments sont sous licence AGPL v3 et leur code source est disponible sur Gitorious (ce qui n'est pas le cas des serveurs d'Ubuntu One par exemple), ce qui n'empêche pas certains prestataires de se baser sur une telle solution pour proposer des solutions d'hébergement en ligne.

Owncloud 3

Dans notre cas, nous allons donc voir comment mettre en place une instance en quelques lignes de commande avec Juju depuis une machine sous Ubuntu 12.04. En effet, l'outil est pour la première fois disponible dans les dépôts de la nouvelle mouture de la distribution de Canonical, bien qu'il soit possible d'en disposer d'une version incomplète avec les versions précédentes.

Mise en place de Juju : deux lignes de commande et un fichier à éditer

Tout d'abord, passons par l'habituelle commande d'installation : 

sudo apt-get install juju

Vous devrez alors taper une première commande, qui vous créera les données d'environnement, mais vous indiquera un message d'erreur :

juju bootstrap


En effet, il vous faudra indiquer vos identifiants AWS pour que Juju puisse créer et configurer vos instances. Tout se passe dans le fichier ~/.juju/environments.yaml qu'il vous suffit d'éditer avec Gedit par exemple, avec cette simple ligne de commande :

gedit ~/.juju/environments.yaml

Les deux lignes suivantes sont à rajouter afin d'indiquer votre clef d'accès et votre clef secrète, que vous trouverez au sein des paramètres de votre compte AWS :

access-key: VOTRE-CLEF-D-ACCES
secret-key: VOTRE-CLEF-SECRETE


Une fois le fichier enregistré, il vous suffira de créer l'instance de travail, qui assurera la mise en place pour vous via la commande suivante : 

juju bootstrap

Si vous n'avez aucune clef SSH au sein de votre système, une erreur vous sera renvoyée. Vous devrez alors en créer une avec la commande suivante :

ssh-keygen

Laissez les paramètres par défaut et optez pour une passphrase de votre choix. Vous pourrez alors relancer la phase de Bootstrap qui devrait vous renvoyer le message suivant :

Juju Bootstrap

Etude d'un cas simple et intéressant : Owncloud (2/2)

Mettre en place OwnCloud ? Deux lignes de code et quelques minutes

Ensuite, le déploiement se limite à deux lignes de commandes :

juju deploy owncloud
juju expose owncloud


La première assure le déploiement de l'instance, alors que la seconde la met en ligne en ouvrant les ports nécessaires, ici le port 80. Notez que lors de votre première connexion, il vous sera demandé d'accepter la clef publique renvoyée par AWS. Une fois ces deux lignes validées, il vous faudra attendre que le déploiement se termine, ce qui nécessitera quelques minutes. Pour suivre la procédure, il vous suffit d'utiliser la commande suivante :

juju debug-log

Dès que le flux du log s'arrêtera, et que le message suivant sera affiché, tout sera terminé :

unitworkflowstate: transition complete configure (state started) {}

Il vous suffira de presser CTRL-C pour passer à la suite. Pour constater le résultat, vous devrez alors taper :

juju status

Dans notre cas, nous avons obtenu l'affichage suivant :

Juju Owncloud Status

Normalement, vous verrez que deux instances sont en place. La première est celle créée lors du Bootstrap, alors que la seconde correspond à notre machine disposant d'Owncloud. Notez que vous pouvez y accéder en SSH de manière simplifiée via la commande suivante :

juju ssh owncloud/0

Du côté du port 80, on peut simplement vérifier que celui-ci est ouvert en tapant l'URL publique indiquée. Si vous voulez disposer d'une IP figée pour cette instance (et pour les suivantes), notez qu'Amazon vous permet d'attacher une Elastic IP à votre instance via la console d'AWS. 

Premier lancement d'OwnCloud : un login et un mot de passe suffisent

Pour configurer OwnCloud, rien de plus simple : il vous suffit de créer un compte administrateur via un pseudo et un mot de passe.  Une fois votre compte administrateur créé, vous pourrez ajouter d'autres utilisateurs via les paramètres.

Owncloud Admin

Notez que dans le cas d'un déploiement par Juju, il n'est pas possible d'exploiter un serveur MySQL pour le moment, tout comme la capacité de stockage est limitée au départ à 6.4 Go. Il est aussi impossible de déployer plusieurs instances identiques pour profiter de leur puissance cumulée. Le charme dédié à Juju doit en effet encore évoluer pour tout cela, comme c'est déjà le cas pour d'autres tels que celui dédié à Wordpress que nous étudierons un peu plus loin, par exemple.

Des clients disponibles sous Linux, Mac OS X et Windows... du WebDAV en bonus

Pour remplir la base de fichier, sous Linux, Windows et Mac OS X, rien de plus simple : des clients de synchronisation sont disponibles. Il vous suffira alors d'entrer l'URL de votre serveur, vos identifiant et mot de passe et de valider.

Owncloud ClientOwncloud ClientOwncloud Client

OwnCloud vous permet de rajouter plusieurs répertoires de votre machine à votre liste de synchronisation, ce qui sera à son avantage. Par contre, on regrettera que les clients soient encore un peu jeunes : pas d'icône en surimpression sur les fichiers synchronisés, pas d'indication de l'état d'avancement... Bref, si l'ensemble est fonctionnel, ce n'est pas encore l'idéal, il faudra donc suivre l'évolution de la chose dans les semaines qui viennent.

Pour ceux qui préfèrent, un accès WebDAV est activé par défaut. Vous pourrez y accéder via l'adresse indiquée dans les paramètres, au sein de votre navigateur. Vous pourrez aussi connecter votre serveur comme un lecteur réseau sans problème sous Linux :

Owncloud WebDAV Owncloud WebDAV

Un point de montage sera alors créé et le contenu rajouté le sera directement sur votre serveur. 

Notez qu'OwnCloud tente de se démarquer de par certaines fonctionnalités complémentaires : les contenus musicaux qui seront détectés dans vos fichiers pourront être lus en ligne via un outil dédié. Vous disposerez d'un calendrier, d'une liste de contact... et des plug-ins vous permettent même de rajouter un système de prise de notes, de favoris...

Owncloud

Bref, une solution libre qui doit encore évoluer, mais qui est déjà assez complète, et simple à mettre en place, notamment via le couple Juju / Ubuntu. Et si finalement, vous décidez de rendre indisponible le site, ou de détruire votre environnement Juju de test ou un service en particulier, vous pourrez le faire avec l'une de ces trois lignes de code : 

juju unexpose owncloud // Met le service hors ligne
juju destroy-service owncloud // Supprime tous les composants du service Owncloud
juju destroy-environment // Suppprime tout l'environnement de test

Wordpress : un cas plus complet

Terminons par un second exemple que nous avons choisi pour vous montrer des fonctionnalités complémentaires de Juju : Wordpress. Contrairement à Owncloud, nous ne reviendrons pas en détail sur le fonctionnement de cet outil de gestion de blog qui est déjà connu de tous. Nous passerons par contre plus de temps sur sa procédure d'installation.

De base, tout fonctionne comme précédemment, la ligne pouvant servir au déploiement étant la suivante : 

juju deploy wordpress

Si vous voulez réduire vos frais, ou choisir une zone géographique définie, notez que vous pouvez indiquer des contraintes spécifiques au déploiement. Par exemple, pour créer une instance micro dans la zone finissant par la lettre c de la région actuelle, il suffit de modifier la ligne de commandes pour obtenir la suivante :

juju deploy wordpress --constraints "instance-type=t1.micro ec2-zone=b"

Vous pouvez d'ailleurs indiquer que ces paramètres sont à utiliser de manière définitive, pour tous vos prochains déploiements, via cette ligne de commandes :

juju set-constraints instance-type=t1.micro ec2-zone=b

Notez que bien d'autres réglages sont possibles via cette méthode : modification du type de distribution, de la puissance CPU, de la quantité de mémoire... vous en trouverez le détail à cette adresse. Par contre, pour modifier la région et utiliser par exemple les serveurs situés en Irelande, il vous faudra modifier le paramètre situé dans le fichier environments.yaml que nous avons utilisé au début de ce guide.

Wordpress PCi Labs

Pour en revenir à Wordpress, sachez que contrairement à Owncloud, il ne peut pas fonctionner sans MySQL. Il nous faut donc déployer une instance complémentaire pour cela, et la relier à la première qui a été créée, via les deux lignes de commande suivantes :

juju deploy mysql
juju add-relation wordpress mysql


C'est seulement après cette étape que nous pourrons exposer l'application :

juju expose wordpress

Comme précédemment, il faudra attendre la fin du déploiement, le site sera alors en ligne. Mais comme nous le disions précédemment, la magie du Cloud réside dans sa flexibilité. Imaginons ainsi que votre site rencontre un fort succès, et qu'il peine à le supporter. Vous pourrez alors rajouter autant d'instances que nécessaire via la ligne de commande suivante :

juju add-unit wordpress

Là encore, vous pourrez utiliser les contraintes pour effectuer des déploiements spécifiques, la commande juju status vous donnant tout le détail de vos machines.

Le déploiement en quelques clics : la tendances pour les mois à venir ?

On le voit donc bien, outre les solutions d'hébergement que mettent en place les géants du Web tels qu'Amazon, Google ou encore Microsoft, mais aussi de plus petites sociétés comme OVH, dont nous détaillerons les solutions sous peu, les éditeurs ont aussi fort à faire pour simplifier le déploiement. 

Microsoft tente de faire fonctionner de pair son IDE simplifié Webmatrix (actuellement en Beta 2) avec sa solution Azure et Amazon propose désormais un Marketplace de solutions hébergées.

Microsoft Webmatrix

L'arrivée du Cloud n'était donc bien qu'une première étape dans la modification dont les solutions en ligne sont gérées, et dans la façon qu'ont les développeurs, bidouilleurs et autres utilisateurs de travailler avec les hébergeurs, puisqu'après avoir simplifié la gestion des infrastructures pour leurs utilisateurs, ceux-ci cherchent à simplifier la mise en place d'applications largement utilisées.

Reste maintenant à voir qui tirera le mieux son épingle du jeu.
0 commentaire
Il n'est plus possible de commenter cette actualité.