Serverless est un framework facilitant la création, le déploiement et la gestion d’infrastrucures…. Serverless, justement. Si vous n’êtes pas familier avec le terme, je vous explique rapidemment.

Une application serverless est une application qui va être lancée directement dans le cloud, sans que les serveurs soient « visibles » ou « administrables ». C’est à dire que vous n’aurez rien à manager ni à calculer, le cloud s’occupe de déployer les ressources nécessaires et de scaler si besoin. Vous ne payerez donc que les ressources uilisées.

Si c’est pas formidable. Sachez aussi que certains cloud (AWS par exemple) vous offrent un grand nombre de requêtes au départ 🙂

Voici comment l’installer et l’utiliser, par exemple pour une application NodeJS qui tournera dans AWS Lambda, le service serverless d’AWS.

Installation (avec npm):

$ npm install serverless -g

Super, c’est installé. Maintenant, avant toute chose, on va configurer un accès AWS pour ce déploiement. Il vous faudra créer un nouveau couple access/secret key via IAM (je ne vais pas décrire cela ici). Puis créer le répertoire qui va accueillir votre code:

$ mkdir my-awesome-app && cd my-awesome-app

Nous créons ensuite la structure de base du projet:

$ serverless create -t aws-nodejs

Ce qui va vous donner des fichiers:
* handler.js : Ce fichier va contenir les fonctions et callbacks NodeJS associés aux events que vous allez créer.
* serverless.yml : Celui-ci va contenir la description des events au format yaml.

Notez que dans cet article, je ne vous apprends pas à écrire une fonction Lambda, mais à la déployer.

Maintenant je vais supposer que votre fonction est écrite et prête. Voici comment la mettre en ligne.

D’abord il faut enregistrer vos credentials AWS dans le système. ON N’ECRIT JAMAIS SES CREDENTIALS EN DUR DANS SON APP/DANS SON CODE.

Voici comment faire :

$ serverless config credentials --provider aws --key <YOUR_ACCESS_KEY> --secret <YOUR_SECRET_KEY>

Une fois que c’est fait, nous pourrons déployer le code de notre fonction en ligne, via Lambda:

$ serverless deploy

Quelle surprise. En tout cas, c’est ce qui va vous retourner une URL pour tester votre app.

Supposons maintenant que vous souhaitez créer un « état » PRODUCTION, et un « état » DEV pour bosser sur l’un et ne pousser sur l’autre (je vous laisse deviner qui est qui) qu’une fois que c’est prêt.

Voici commment créer, depuis l’état actuel à l’instant T, un état PRODUCTION:

$ serverless deploy --stage production

Ceci vous donnera une URL de test différente de la fois précédente. D’ailleurs, maintenant, lorsque vous ferez :

$ serverless deploy 

Après avoir modifié votre code, l’état PRODUCTION ne sera pas impacté jusqu’à ce que vous fassiez:

$ serverless deploy --stage production

Cette commande modifiera uniquement le code sur l’URL de production.

Voilà, j’espère que cela vous aidera, et des bisous en attendant ! 😉


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *