Vagrant : Mise en place d’une box prête à l’emploi

Dans l’article précédent  (Veewee : La creation d’une boite Vagrant), nous avons vu comment créer une machine virtuelle prête pour Vagrant.

Considérons que nous avons avons ajouter la box à l’environnement Vagrant avec la commande :

vagrant box add 'myubuntubox' 'pathto/myubuntubox.box'
Si vous le souhaitez, je peux vous fournir une box Ubuntu 12.04 server X64.
Une fois, cette dernière ajouter à votre environnement, il convient de créer votre machine virtuelle en utilisant les commandes suivantes :
vagrant init 'myubuntubox'
vagrant up
vagrant ssh
Vous vous trouverez alors dans la machine virtuelle, sur laquelle vous pourrez installer vos outils de développement.
Le principe de Vagrant est similaire à celui du Cloud, vous avez soit un environnement vierge que vous vous paramétrez, soit un environnement prêt à l’emploi qui vous permet de fournir le même environnement à toute une équipe.
Pour ce dernier point, il convient d’utiliser un outil de provisionning, pour ma part, j’ai choisi Chef, mais il y en a d’autres comme Puppet .etc..

Dans le cas de Chef, on trouve de nombreuses recettes sur Github permettant d’installer à peu près tout, avec par exemple le repository officiel d’Opscode (https://github.com/opscode-cookbooks).

Afin de simplifier, un peu la vie de ceux qui veulent se lancer, j’ai préparer un petit projet qui vous permet de vous lancer : https://github.com/gpsnail/VagrantBox
Suivez les instructions du README pour commencer.

N’hésitez à me faire part de vos commentaires.

Veewee : La creation d’une boite Vagrant

Comme je l’abordais dans mon précédent article, l’utilisation de Vagrant pour le développement a été pour moi un gros plus et une superbe découverte.

Mais, vous allez me dire comment créer sa propre Box en effet, il est pas évident de faire confiance à celle que l’on peut trouver sur internet surtout dans le cadre d’une équipe de projet.

C’est à ce titre, que je conseille l’utilisation de Veewee (https://github.com/jedi4ever/veewee) qui permet de créer toutes sortes de Box et qui est surtout d’une simplicité d’utilisation déconcertante.

Le pré-requis pour l’utilisation de veewee est une plate-forme ruby 1.9.2 et la dernière version de VirtualBox (https://www.virtualbox.org), là, il faut impérativement installer RVM sur la machine qui va vous servir à créer votre box et cela afin d’avoir la meilleur version possible de ruby à savoir la 1.9.2p290.

Une fois, les pré-requis en place, la meilleure façon de procéder est de cloner veewee à partir de Github, le procédure d’installation est très bien faite : https://github.com/jedi4ever/veewee/blob/master/doc/installation.md

Ensuite, il y a juste à utiliser veewee (il faut se positionner à la racine du répertoire veewee) et voici la procédure à suivre pour créer une boite directement sans trop de changement :

Ce processus crée une nouvelle définition de boîte dans le répertoire veewee/definitions. Vous pouvez si vous vous en sentez le courage modifier les fichiers mais à titre d’exemple nous le ferons pas. La prochaine étape est de créer la Box :

Cette étape prend pas mal de temps à cause essentiellement des téléchargements d’images ISO nécessaire à l’installation. Vous pourrez suivre de manière simple la procédure.

Une fois, cette étape terminée, vous aurez une boite en place :

Une fois, la box créée, vous pourrez l’exporter dans une fichier « .box » à distribuer à l’ensemble de votre équipe de développement avec la commande suivante :
Nous venons de voir comment créer une Box vide, cependant, maintenant le problème se pose de la mise en place celle-ci dans un environnement réel avec les outils nécessaires comme mysql, postgres, php .etc.. Nous allons pour cela utiliser le système de « Provision » permettant à partir d’un script de mettre en place l’environnement et de l’utiliser ensuite au quotidien. Nous aborderons cela dans un prochain article en attendant, je ne saurait que trop vous conseiller de tester.

Vagrant : Le développement sur VM

Nous nous sommes tous heurter à la difficulté de mettre en place son environnement de développement, surtout dans le cadre de la mise en place d’une plateforme homogène entre plusieurs postes sans ajout de logiciels tiers et le plus proche possible de l’environnement de production.

– Exemple : une plateforme PHP, MySQL, Postgres dans le cadre de la migration d’un application PHP de MySQL vers Postgres.

Au fil de mes recherches sur le net et surement avec beaucoup de retard je suis tombé sur Vagrant. (https://vagrantup.com)

Vagrant a pour but de rendre plus simple l’utilisation de machine virtuelle dans le cadre de l’environnement de développement. On peut le dire le but est atteint pour la facilité de développement entre la machine hôte et la VM.

Le plus compliqué avec Vagrant va être de créer sa propre machine proche des habitudes de développement de l’équipe. Car Vagrant n’est pas là pour cela, il est juste là pour le montage de la machine et son utilisation au quotidien.

Heureusement, la communauté est très active sur le sujet et des outils sont là pour simplifier la création de sa propre Box avec quelques connaissances. Je pense notamment à Veewee (https://github.com/jedi4ever/veewee) qui est vraiment un outil à s’accaparer pour la création de sa propre Box, n’hésitez pas à dupliquer le projet et pusher vos modifications pour mettre à disposition vos Box, c’est d’ailleurs ce que je vais faire.

Mais, ne vous inquiétez pas, je vous prépare un petit tutoriel pour l’utilisation de Veewee avec une Box en français.

Et, important à savoir tout cela, c’est en Ruby.

Lion : Upgrade vs Clean Install

Après deux mois d’utilisation de Lion, en upgrade, je viens de faire une clean install. 

 Pourquoi ?

Simple, le système me paraissait assez instable, et surtout lent par moment, voir extrêmement lent surtout au reboot environ 56s de boot. 

Pourquoi, pas avant ?

J’ai opté pour la facilité, en effet, l’upgrade est d’une simplicité et surtout vraiment rapide. 
De plus, j’avais un peu peur quand à la récupération de mes données, possédant une bibliothèque photo d’environ 90 Go, vous comprendrez ma crainte, mais bon time machine est là. 
Comment procéder ? 
D’abord, je conseille à tout le monde de se faire un clé USB en suivant le tutoriel de l’outil Lion Disk Maker : https://blog.gete.net/lion-diskmaker/.
Cet outil est très bien fait et permet de préparer la réinstallation de manière plus efficace que la clé de récupération Apple.
Une fois, la clé prête : 
  1. Une vérification du disque dur avec « Utilitaire de disque »
  2. Backup avec Time Machine sur un disque vierge (conseil la backup courante suffit)
  3. Redémarrage de l’ordinateur en utilisant la touche Alt afin de pouvoir choisir la clé USB qui doit évidement être inséré dans un port USB
  4. Choisir la clé pour le redémarrage 

Vous allez alors arriver sur l’écran suivant : 
Il va alors dans le but d’une installation propre falloir suivre les étapes suivantes : 
  1. Aller dans l’utilitaire de disque et effacer la partition principale, généralement « Macintosh HD »
  2. Surtout choisir en type fichier celui proposé : « MacOS etendu (journalisé) » 
  3. Une fois l’opération effectuée – fermer l’Utilitaire avec la croix rouge vous revenez alors sur l’écran ci-dessus
  4. A partir de là lancer l’installation en utilisant « Réinstaller Mac OS X »
  5. Suivez les instructions 
Pour la récupération des données, personnellement, j’ai utilisé Time Machine mais pas l’Utilitaire de migration.
J’ai raccordé le disque utilisé pour ma sauvegarde précédemment et je lui ai dit que c’était un disque time machine, j’ai alors arrêté la première sauvegarde et je suis entré dans Time Machine pour ne récupérer que mes fichiers de données et non les paramètres.
Résultat visible : 
  • Boot plus rapide 40s vs 56s (16s c’est toujours bon à prendre)
  • Fermeture plus rapide : 5s vs 15s
  • Application plus fluide surtout visible avec iTunes et iPhoto dont la bibliothèque pèse plus de 90Go.
  • Lancement des applications presque immédiatement.
Bref, aucun regret, si ce n’est un peu de temps, bien que l’ordinateur a travaillé tout seul la plupart du temps, début de la sauvegarde 9:30 fin vers 13:00.
Début de l’installation 13:15 fin vers 13:30
Début de la restauration incluant l’installation des mises à jour de l’OS 13:45 fin vers 16:30.
Il faut là l’admettre quelque soit l’OS une clean install prend du temps surtout à cause des opérations de sauvegarde et de restauration.

RVM : Ruby Version Manager

Quand on essaye de développer sur Ruby, on se tourne tout de suite vers une machine virtuel sous Linux, non pas que Ruby pourrissent le système mais plutôt parce que sous windows il est beaucoup moins performant (c’est mon point de vue).
Quand on essaye de développer sur Ruby sous Linux, on entend rapidement parler de RVM (Ruby Version Manager).
RVM, c’est vraiment le paradis pour le développeur Ruby qui veut tester sur plusieurs types d’environnement (Ruby 1.8.7, 1.9.2, JRuby….), cet outil permet de switcher d’un environnement à un autre sans trop d’effort.
Il est hors de question de vous faire une fiche sur comment installer RVM, il y en a des très bonnes sur le net en Anglais certes et particulièrement https://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac qui marche exactement pareil sur ubuntu.
Je ne conseille pas l’installation en sudo qui n’est à mon avis pas utile.
Vous l’avez compris RVM est un outil indispensable pour les développeurs Ruby & Ruby on Rails, cependant, voici une liste de petits tips & tricks intéressant :
– Si lors de l’utilisation de « rake » vous rencontrez l’erreur « RakeFileUtils rake aborted », n’hésitez à utiliser le lien suivant : https://joneslee85.wordpress.com/2011/07/29/howto-fix-rake-0-9-2-to-work-with-ruby-1-9-2-under-rvm/
– uninitialized constant Rake::DSL in Ruby Gem, l’ajout de :
require 'rake/dsl_definition'
Dans le Rakefile
– vous rencontrez une erreur sur openssl avec Ruby on Rails, les commandes suivantes :
rvm pkg install openssl
rvm remove 1.9.2 --with-openssl-dir=$HOME/.rvm/usr
rvm install 1.9.2
A priori, vous avez là les principaux problèmes que l’on peut résoudre rapidement.

Time Machine : la sauvegarde pour les nuls

Ce titre, un brin péjoratif, reflète bien le fait que c’est un outil de sauvegarde d’une simplicité étonnante.
Depuis, Leopard (10.5), Mac OSX a introduit ce nouveau système de sauvegarde automatique. Pour l’utiliser un disque dur USB vierge qu’il faut formater en HFS+, dès le branchement du disque Time Machine vous demande si vous souhaitez l’utiliser comme disque de sauvegarde et commence la première synchronisation qui peut durer un moment en fonction des données de votre disque principal.
Avec Time Machine, Apple a prévu tous les cas de pertes de données effacement accidentel, crash disque… En effet, la restauration après réinstallation est automatiquement proposée.
Time Machine sauvegarde les changements toutes les heures. Si le disque sature il supprime les sauvegardes les plus anciennes avec ou sans avertissement.
Alors, vous pourrez me lancer que Windows 7 propose également cela oui c’est vrai mais je trouve l’outil moins performant sur trois points :
– Il faut soit même programmer ce que l’on veut sauvegarder et sur quel fréquence.
– La restauration n’est pas si visuellement simple.
– Il ne supprime pas de lui-même les sauvegardes les plus anciennes.
Alors, oui, je maintiens mon titre, Time Machine est vraiment la sauvegarde pour les nuls, cependant, il faut quand même que je le précise, il existe sous Linux un équivalent sympa et assez efficace mais un peu plus proche de la solution Windows : « Back in Time ».
La sauvegarde est un des points importants des futurs OS, en effet, les données numériques ont le vilain défaut de disparaître facilement, il faut donc que l’OS propose la solution la plus simple et efficace pour l’utilisateur avec une interface plaisante pour ne pas être rebuter par la mise en place de cette solution.

MacOS X : Lion – mise à jour on the air…..

Avec Lion, Apple frappe-t-il un bon coup ?


Ce n’est pas sûr mais en tous les cas, le système de mise à jour par le Mac App Store est un sacré plus, en effet, cela va aboutir à une adoption rapide de ce nouvel OS.


Ce système de mise à jour est-il innovant ?


Oui et non, oui pour un OS payant la simplicité d’installation permet pour un néophyte de basculer sans se déplacer et de juste mettre en oeuvre l’installation.
Non, les OS open source proposent depuis longtemps de mettre à jour son OS directement par la mise à jour automatique.
C’est exactement ce qu’a utilisé Apple mais avec un format payant.
Il est évident que le Mac App Store est vraiment le point fort d’Apple pour le déploiement des applications et c’est d’autant plus vrai avec l’OS. Et là, il propose un basculement simplifié.


Dans la pratique direction le Mac App Store, on achète Lion et on télécharge les 3Go et un peu plus du fichier d’installation.


Il est préférable de faire une sauvegarde que ce soit par Time Machine ou autre avant de procéder histoire de ne pas se retrouver planté sans réinstallation de ses données personnelles, cela Apple n’y a pas pensé. 


Autre point que je conseille vivement utiliser le logiciel Lion DiskMaker [1.2 – 37 Ko – Français – Mac OS X 10.6 – Gratuit] N’hésitez à faire un don à Guillaume Gete. Ce petit logiciel vous permettra de créer une image d’installation de Lion sur clé USB. Cela peut s’avérer fort utile.


Une fois cela fait, on lance l’installation, cette dernière dure environ 45 minutes.


A priori, vous ne rencontrerez pas de problème particulier, et vous vous retrouverez avec un Lion sous le capot.


Mais, bon, soyons honnête cet OS n’amène pas de chose à couper le souffle le mode plein écran est bien et simplifie l’usage du Multi-bureau un peu fouillis

Les combinaisons de gestes sur le Trackpad sont eux vraiment bien et simplifient l’usage au quotidien.


Mais, vraiment la grosse avancée qui n’en est pas une est l’installation de la mise à jour OS comme un composant logiciel.

Dropbox et le partage de fichier

Depuis quelques temps, j’étais à la recherche d’un disque dur virtuel de qualité et surtout efficace sur toutes les plateformes.
J’ai alors fait une bonne découverte certes avec un peu de retard : Dropbox.
Effectivement, je suis sur Mac OS X et il y a bien le iDisk de MobileMe qui est bien intégré mais pas aussi bien fait que le système mis en place par Dropbox. Avec l’iDisk vous devez faire la démarche de synchroniser vos documents sur le Web et donc d’avoir vos fichiers disponibles partout via un browser ou webdav (bien que sous Windows 7 cela ne fonctionne pas super bien).
Dropbox a eu la bonne idée de créer une application Windows, Linux, MacOS, Android, Blackberry, iOS… et surtout de considérer que la synchronisation devait être transparente. Et, là, chapeau, l’outil est réussi et synchronise donc un répertoire Dropbox sur l’ensemble de vos systèmes mais surtout à une vitesse qui vous laisse à penser que vous avez une connexion du tonnerre (Quid : Savez vous pourquoi ? Je l’ai appris il n’y pas longtemps je ferai un article là-dessus).
Et, il faut le reconnaître Dropbox remplace depuis quelques temps ma clé USB avec mes documents que j’échangeais de PC en Mac, de Mac en PC, certes ce n’est pas une backup mais vraiment un outil d’échange.
Certes, on a que 2Go mais c’est amplement suffisant pour mes PDF et autres documents Word.
Apple avait une bonne idée avec l’iDisk mais ils se sont trop axés sur une utilisation purement Mac et n’ont pas pris en compte un environnement Multi OS, en fait, si mais ils n’ont considéré que le Browser et honnêtement ce n’est pas suffisant
Dropbox est donc pour l’outil grand vainqueur pour un fondu de clé USB comme je le suis.
PS: si vous le souhaitez aider moi à gagner des Mo en vous parrainant : https://db.tt/121QWCa

Comprendre la tarification Azure

Un peu dur de comprendre le principe de tarification des offres de Cloud Computing et surtout de comprendre si l’on peut y être gagnant.
Le principal problème pour moi était le concept de consommation horaire qu’est ce que cela voulait dire ? Que l’on paye en fonction de l’utilisation effective de l’instance que l’on utilise ? Non, il ne faut pas le comprendre ainsi ce n’est pas un forfait téléphonique, oui, bon, je suis un peu nul d’avoir pensé cela mais c’est bien le principe du Pay as You Use, j’ai pensé cela principalement parce que je ne voyais vraiment pas ce que l’on pouvait estimer d’autre. Enfin, la réponse me vient par une personne de chez Microsoft lors des Techdays : « C’est en heure de déploiement sur un type d’instance et par instance ».
La base de calcul pour un mois et donc : 24 * 30 = 720h d’où les forfaits à 750h de Microsoft. J’ai enfin une base et j’ai enfin compris.
Comme vous constaterez en allant sur le site Azure, cela représente un coût mensuel de 61€ pour l’instance la plus petite sur 720h, Microsoft base ses calculs sur 750h pour laisser de la marge et surtout permettre éventuellement de déployer sur une deuxième instance pendant des périodes courtes.
Alors, oui, la solution proposée semble attractive mais le calcul est à faire et surtout l’utilisation de cet environnement doit être murement réfléchi par rapport à un environnement mutualisé classique.
Je vais maintenant essayer de faire le même travail pour l’App Engine de Google afin de me faire un comparatif.
En tous les cas, Microsoft cherche à toucher les TPE-PME et cela est vraiment une bonne chose avec un premier prix attractif, mais il faut quand même se poser la question de l’utilité d’une plateforme si complète pour des sites Web extranet ou internet d’entreprise.

Update 1 : Sur un mois de 31 jours 744h rentre bien dans le forfait 750h pas plus de 6h de pique dans le mois.