Da Cloud made eZ...
Petit coup de coeur du moment : Dotcloud
Ce site offre gratuitement (le temps de la beta) un accès à une infrastructure scalable, sa force c'est principalement son extrême simplicité :
(j'ai déjà dit que c'était gratuit en beta ?)
D'abord s'inscrire sur le site en laissant son adresse email, pour recevoir un code d'accès...
Une fois ce code reçu, on finit l'inscription et récupère la clef d'API qui se trouve dans 'settings', cette clef sera demandée à la première utilisation de dotcloud.
On installe le client python (nul n'est parfait ;-) )
sudo easy_install dotcloud
On crée une application (je l'appelle easylearn)
dotcloud create easylearn
On affiche la liste des types de services disponible
dotcloud deploy -h
Pour déloyer un service Perl (ici appellé www)
dotcloud deploy -t perl easylearn.www
Et un service base de données (nommé dans ce cas db)
dotcloud deploy -t mysql easylearn.db
Notez que j'aurais pu nommer les services frontoffice et backoffice, les noms sont complètements libres.
Pour lister les application et services
dotcloud list
Pour afficher des informations sur un service
dotcloud info easylearn.www
L'infrastructure étant prêt du coté "cloud", occupons nous du contenu :
Sur ma machine je crèe un squelette d'application
catalyst.pl EasyLearn
ou si vous n'utilisez pas Catalyst
mkdir EasyLearn
Puis on se positionne dans le répertoire
cd EasyLearn
Tant qu'on y est, on transforme ce répertoire en repo git
Le service Dotcloud s'appuyant sur PSGI (le WSGI à la sauce Perl), il faut configurer l'application Catalyst pour l'utiliser.
Je me suis basé sur l'excellent blog de garu
(http://onionstand.blogspot.com/2011/04/catalyst-in-cloud.html) qui donne la marche à suivre :
D'abord on crée un lien entre le répertoire static de Catalyst et le répertoire static attendu par l'infrastructure dotcloud :
ln -s root/static static
Puis on installe un moteur PSGI pour Catalyst:
sudo cpan Catalyst::Engine::PSGI
script/easylearn_create.pl PSGI
Enfin on crée un lien entre le fichier crée et le fichier app.psgi attendu par dotcloud
ln -s script/easylearn.psgi app.psgi
Puis on ajoute "use lib 'lib';" au fichier app.psgi, juste avant "use EasyLearn;" pour que l'application soit trouvée.
Pour faire propre on en profite pour rajouter, la dépendance à Makefile.PL.
requires 'Catalyst::Engine::PSGI';
On devrait avoit un site fonctionnel il est temps de l'envoyer vers le Cloud.
dotcloud push easylearn.www .
Une chose sympa sympa c'est que si le répertoire contient un répertoire .git ou .hg, dotcloud le détectera et fera un git/hg push.
Cela veut aussi dire que si votre répertoire est versionné par git ou mercurial, seuls les fichiers commités seront pushés vers le cloud.
Et au cas où vous auriez une erreur :
Dans mon cas la lecture des logs m'a permis de me rendre compte que j'avais oublié certaines dépendances dans mon Makefile.PL :
Catalyst::View::TT
Catalyst::Model::DBIC::Schema
Une modif, un commit et un dotcloud push plus tard, je pouvais accéder à mon site via :
http://www.easylearn.dotcloud.com/
Simple non ?
Ce site offre gratuitement (le temps de la beta) un accès à une infrastructure scalable, sa force c'est principalement son extrême simplicité :
(j'ai déjà dit que c'était gratuit en beta ?)
D'abord s'inscrire sur le site en laissant son adresse email, pour recevoir un code d'accès...
Une fois ce code reçu, on finit l'inscription et récupère la clef d'API qui se trouve dans 'settings', cette clef sera demandée à la première utilisation de dotcloud.
On installe le client python (nul n'est parfait ;-) )
sudo easy_install dotcloud
On crée une application (je l'appelle easylearn)
dotcloud create easylearn
On affiche la liste des types de services disponible
dotcloud deploy -h
Pour déloyer un service Perl (ici appellé www)
dotcloud deploy -t perl easylearn.www
Et un service base de données (nommé dans ce cas db)
dotcloud deploy -t mysql easylearn.db
Notez que j'aurais pu nommer les services frontoffice et backoffice, les noms sont complètements libres.
Pour lister les application et services
dotcloud list
Pour afficher des informations sur un service
dotcloud info easylearn.www
L'infrastructure étant prêt du coté "cloud", occupons nous du contenu :
Sur ma machine je crèe un squelette d'application
catalyst.pl EasyLearn
ou si vous n'utilisez pas Catalyst
mkdir EasyLearn
Puis on se positionne dans le répertoire
cd EasyLearn
Tant qu'on y est, on transforme ce répertoire en repo git
git init
git add .
git commit -a -m 'Initial commit'
Le service Dotcloud s'appuyant sur PSGI (le WSGI à la sauce Perl), il faut configurer l'application Catalyst pour l'utiliser.
Je me suis basé sur l'excellent blog de garu
(http://onionstand.blogspot.com/2011/04/catalyst-in-cloud.html) qui donne la marche à suivre :
D'abord on crée un lien entre le répertoire static de Catalyst et le répertoire static attendu par l'infrastructure dotcloud :
ln -s root/static static
Puis on installe un moteur PSGI pour Catalyst:
sudo cpan Catalyst::Engine::PSGI
script/easylearn_create.pl PSGI
Enfin on crée un lien entre le fichier crée et le fichier app.psgi attendu par dotcloud
ln -s script/easylearn.psgi app.psgi
Puis on ajoute "use lib 'lib';" au fichier app.psgi, juste avant "use EasyLearn;" pour que l'application soit trouvée.
Pour faire propre on en profite pour rajouter, la dépendance à Makefile.PL.
requires 'Catalyst::Engine::PSGI';
On devrait avoit un site fonctionnel il est temps de l'envoyer vers le Cloud.
dotcloud push easylearn.www .
Une chose sympa sympa c'est que si le répertoire contient un répertoire .git ou .hg, dotcloud le détectera et fera un git/hg push.
Cela veut aussi dire que si votre répertoire est versionné par git ou mercurial, seuls les fichiers commités seront pushés vers le cloud.
Et au cas où vous auriez une erreur :
dotcloud logs easylearn.www
Dans mon cas la lecture des logs m'a permis de me rendre compte que j'avais oublié certaines dépendances dans mon Makefile.PL :
Catalyst::View::TT
Catalyst::Model::DBIC::Schema
Une modif, un commit et un dotcloud push plus tard, je pouvais accéder à mon site via :
http://www.easylearn.dotcloud.com/
Simple non ?
Commentaires