Heroku : hébergement platform as a service

Le 04/04/2013

Dans Développement

Peut-être avez-vous déjà croisé sur le web le terme de PAAS (ou plateforme as a service), sans savoir à quoi il correspond. Le BlogDuWebdesign répond pour vous à cette question.

Le terme PAAS est à rapprocher de SAAS (software as a service) qui correspond à une certaine forme d’hébergement, où l’on ne prend pas en compte l’aspect serveur. Tout ce que l’on a à faire et de déployer notre application fonctionnant avec l’un des langages supportés, et elle marche.

Exemple de fonctionnement

Je vais prendre en exemple Heroku, mais tous fonctionnent de manières sensiblement identiques, à quelques points près.

La grosse différence de fonctionnement entre ce genre de service et un hébergeur mutualisé est que l’on n’a pas de FTP. Ici, le déploiement des fichiers se fait avec Gît (ou autres gestionnaires de versions).

Nous allons tout d’abord aller sur notre compte Heroku pour s’inscrire, récupérer le programme permettant de travailler avec Heroku, puis le configurer, et se logger.

Heroku toolbelt

Pour créer une nouvelle application sur Heroku, il suffit d’entrer « heroku create » en console dans le dossier de notre application versionalise avec Git.

Vous avez besoin d’une base sql ? Il suffit de la demander avec par exemple :
heroku addons:add heroku-postgresql:dev.

Notez qu’une base est automatiquement ajoutée pour les projets Rails.

Un autre service, comme redis ? De la même manière, il suffit de demander, il en existe énormément de disponible.

Redis to go

Une fois que votre application est prête, il vous suffit de la pusher sur la remote « heroku », et voilà votre application qui est en ligne.

La dernière étape, que je souhaite à tout projet, est celui de la montée en puissance : Votre application a de plus en plus de visiteurs, et un peu plus de puissance serait souhaitable. Avec un hébergement standard, cela voudrait dire changer de serveur, refaire toutes ses installations,… . Mais ici, il suffit de jouer sur des petites diapositives dans votre administration.

Heroku dashboard

Le premier Dyno (unités de puissance en gros) est gratuit, les autres sont payants. Cela veut bien dire que vous pouvez commencer votre projet sur un hébergement gratuit, et n’avoir à payer que quand vous aurez besoin de puissance.

Avantages et inconvénients

Les avantages sont assez simples à voir : pas de gestion de serveur, pas de maintenance nécessaire pour les mises à jour, installation des services supplémentaires comme une database simplifiée. De plus, on ne paye que ce que l’on utilise comme puissance. Besoin de plus de puissance le samedi entre 18h et 23h ? Montez les dynos sur ces horaires-là, et vous ne paierez que la tranche horaire demandée.

D’un point de vue inconvénient, on peut évidemment voir le fait que l’on ne maitrise pas son environnement. Impossible de modifier apache, son installation de Ruby, ou autres pour répondre à un besoin très spécifique. Impossible aussi d’installer un nouveau language ou un paquet trop recent.

Edit : Comme me l’a fait remarquer Jérôme M, il est possible d’utiliser un custom buildpack avec Heroku, et donc etendre le nombres de langages supportes, entre autre. PHP est donc tout a fait utilisable avec ce buildpack par exemple.

Heroku

Heroku est certainement la plus connue des plateformes présentées ici. Elle supporte les applications en Ruby, Node.js, Clojure, Java, Python, Scala, et une quantitée impressionnante d’add-ons.

Heroku plateforme developpement