Simplifiez vos process DevOps grâce à Vercel (Now)

Anciennement appelé Zeit, Vercel est notamment connu pour la création de Next.JS, le célebre framework SSR pour React. J'aime tout particulièrement la philosophie de cette entreprise qui souhaite simplifier notre métier et le rendre plus accessible. Et je dois avouer que cette fois-ci ils ont fait fort en créant un service zéro config pour déployer vos applications automatiquement.

Simplifiez vos process DevOps grâce à Vercel (Now)

Pourquoi Vercel ?

Dans un précédent article, je vous présentais comment déployer vos applications à l’aide de Gitlab CI sur une instance AWS. Cette présentation était un échantillon simplifié d’un workflow de DevOps tel qu’on peut le retrouver en entreprise. Pour réaliser notre déploiement, nous avions configuré une instance EC2, configuré Docker, puis créé notre pipeline gitlab afin qu’il se lance à chaque nouvelle version d’une branche donnée. Nous avons également vu comment scaler cette architecture pour créer différents environnements de tests / recette / production. Ce workflow si simplifié qu’il soit reste malgré tout assez fastidieux en matière de configuration et de suivi et c’est cet aspect que Vercel a souhaité simplifier.

Vercel c’est quoi ?

Vercel est donc un service Cloud, dans le périmètre de AWS où Google Cloud Platform, qui permet de déployer des applications Frontend statiques ou JamStack sans aucune configuration. Son objectif principal est de proposer aux développeurs une alternative simple d’utilisations et entièrement automatisée aux architectures habituelles, le tout gratuitement ! Et je dois avouer que le pari est réussi !

Comment ça marche ?

Pour déployer vos applications, vous disposez de deux options, la première étant déconseillée, en mon sens, sauf s’il s’agit d’un projet “One Shot”.

En ligne de commande

Pour cela, il vous faudra, installer en vercel en global :

  npm i -g vercel

Puis lancer la commande :

  vercel

Cette commande ouvrira un prompteur pour associer le projet à votre compte vercel, le nommer, définir la commande pour builder votre application et définir le directory de votre application buildée. A noter que Vercel, détecte automatiquement les paramètres pour les Stacks les plus populaires (Nuxt, Next, Sapper …).

En se connectant à votre repo Git

Enfin, la méthode la plus intéressante et répondant au mieux aux besoins d’intégration continue d’un projet reste d’automatiser les déploiements en se synchronisant avec le répertoire Git de votre application. Pour cela Vercel a créé des connecteurs pour s’interfacer avec la majorité des outils de versionning du marché (GitHub, GitLab, BitBucket …).

Pour cela, rien de plus simple. Après avoir créé votre projet sur l’interface Vercel puis cliquez sur importer un projet. Sélectionnez ensuite l’outil de versionning utilisé puis sélectionnez le repo correspondant, puis paramétrez la commande de build et son directory comme précédemment. Cela déclenchera automatiquement un déploiement de votre application.En se connectant à votre repo de cette manière, Vercel déclenchera un déploiement de votre application pour chaque push, sur chacune de vos branches. Ce qui sera particulièrement pratique pour répondre à vos workflows de tests. Il sera évidemment possible de configurer ces déploiements, si vous ne souhaitez déployer que certaines branches par exemple.

Sur quelle url sera déployée mon application

Par défaut et si vous utilisez Vercel gratuitement, votre application se déploiera sur un sous-domaine de Vercel.Mais Vercel permet également d’acheter un nom de domaine, que vous pourrez administrer depuis votre interface, pour déployer vos diverses applications.À noter que vous aurez également accès aux entrées DNS de ce nom de domaine pour configurer une boite mail par exemple.

Les limites de Vercel

Malgré les éloges que je viens de faire, Vercel dispose quand même de quelques petites faiblesses. La première est qu’il n’offre ni la visibilité, ni les choix sur les machines sur lequelles ne sont hébergées les applications. Ce qui peut-être frustrant pour les adeptes de performance (bien que les performances soient largement suffisantes). En second plan, comme je le mentionnais plus haut, cet outil sera parfait pour déployer vos applications front mais ne permettra pas de déployer vos services Back et ne pourra ainsi pas répondre aux besoins des architectures complexes tels qu’on peut en trouver dans les grosses organisations.