Pourquoi nous migrons de Heroku vers Scalingo

Suite à la publication d'un précédent article abordant notre utilisation d'Heroku, nous avons été contacté par Yann Klis, co-fondateur et CEO de Scalingo aka l'un des Heroku français. Bien qu'Heroku ne présente pas de réel défaut à nos yeux, nous souhaitons donner sa chance au petit nouveau de l'hexagone.


De plus, Scalingo nous permettrait de satisfaire certains pré-requis d'hébergement de données tout en profitant d'un *workflow* de déploiement efficace.

Un produit français dynamique

Scalingo est un PaaS (Platform as a Service) français, disponible depuis 2015. Il permet de déployer facilement  et efficacement tout type d'applications web ou IoT tout en limitant le besoin d'administration système.


Scalingo a à coeur d'assurer la sécurité de leur service et des applications qui y sont déployées. Dans cette optique, leur infrastructure est aujourd'hui essentiellement basé chez 3DS Outscale, la division Cloud de Dassault Systèmes. Outscale dispose de multiples certifications de sécurité sur lesquelles Scalingo compte s'appuyer pour étendre leurs propres certifications.


Cette recherche d'amélioration constante de la sécurité nous parle. Nous voulons également garantir à nos clients la sécurité de leurs applications et de leurs données.

Une alternative à Heroku

La promesse d'un Heroku français est alléchante, mais jusqu'à quel point est-ce le cas?  De manière plus générale, Scalingo se veut compatible avec la majorité des fonctionnalités d'Heroku.

Scalingo suit un workflow de déploiement proche de Heroku incluant également la notion de review apps. Ces applications de test sont décrites par un manifeste appelé scalingo.json  (app.json est également supporté).

De plus, Scalingo est compatible avec les buildpacks Heroku, y compris les buildpacks communautaires. Ainsi il n'y aura aucun problème à déployer une application sur Scalingo si vous savez la déployer sur Heroku.


À titre d'exemple, nous avons migré certaines de nos applications sur Scalingo. Nous avons été surpris de constater que peu de modifications étaient nécessaires dans le code source du projet. Le manifeste app.json  devient scalingo.json et la phase de release du Procfile devient postdeploy.


Une personnalité propre

Scalingo se veut davantage user-friendly que Heroku en proposant quelques petites fonctionnalités simplifiant le travail des développeurs.

Options de Routing

Scalingo propose quelques options de routing pour influer sur le traitement opéré sur les requêtes avant d'atteindre une application.

On peut par exemple activer la redirection de HTTP vers HTTPS automatiquement au niveau de l'application. Il n'est pas nécessaire d'implémenter ce comportement au niveau applicatif.

Scalingo  permet aussi d'activer les *sticky sessions* pour s'assurer que toutes les requêtes d'une même session seront redirigées vers le même conteneur applicatif.

Déploiement simplifié

Sur Scalingo, le démarrage d'une application se fait avant la finalisation du déploiement. De ce fait, l'application n'est déployée que lorsqu'elle est démarrée et prête à servir les requêtes entrantes.


La rédaction du manifeste est quant à lui simplifié. Un review app  hérite automatiquement des variables d'environnement et des buildpacks de l'application parent.  Cela allège considérablement le scalingo.json et évite les petits écarts existant parfois entre les configurations. Il reste toutefois possible d'écraser une variable d'environnement en la spécifiant dans le manifeste.

Une interface à peaufiner

L'interface de Scalingo manque encore de quelques fonctionnalités.
L'absence de compte entreprise rend délicat la gestion des applications. Il est nécessaire de créer les application sur un même compte pour centraliser la facturation.


L'absence de rôles et d'équipes  se fait également ressentir.  Il n'est pour l'heure pas possible d'avoir une liste d'administrateurs pour l'équipe. Il serait aussi pratique de pouvoir attribuer des droits restreints à certains collaborateurs externes.
Enfin la liste des applications pourrait être plus ergonomique. Une vue organisée par projet excluant les review apps à la manière des *pipeline* Heroku.

Conclusion

Bien qu'encore jeune, Scalingo se développe rapidement. Leur roadmap fourmille d'idées et présage un bel avenir.


La plateforme est très simple d'utilisation et le support est réactif.  Chez Dernier Cri, nous utilisons Scalingo pour déployer quelques uns de nos projets et ça ne fait que commencer.   Nous suivons de près l'évolution de la plateforme et attendons avec impatience certaines fonctionnalités aujourd'hui en phase de réalisation.

Jean-Serge Monbailly

Jean-Serge Monbailly

Lire d'autres articles par cet auteur.

Lille