Le framework ServerlessLe terme serverless se dit d'un traitement qui ne nécessite pas de serveur (à comprendre ici : dont on ne s'occupe pas du serveur) vous permet de créer toute l'infrastructure nécessaire pour héberger votre application ou votre fonction de manière automatisée et programmable. L'idée est de ne plus avoir à installer soit même les serveurs ou les services dans un provider de CloudLe Cloud consiste à accéder à des ressources informatiques, à partir d'internet, via un fournisseur. tels qu'AWSLe Cloud AWS (Amazon WebServices) est une plateforme de services cloud développée par le géant américain Amazon. ou Azure, mais de laisser le framework le faire pour vous.
Il est important de souligner qu'il a été initialement conçu pour fonctionner principalement avec AWS. Par conséquent, il offre une gamme étendue de fonctionnalités spécifiquement optimisées pour ce cloud, telles qu'une Infrastructure as Code (IaC) plus avancée et une documentation plus détaillée.
Dans les architectures Cloud modernes, une variété de services est nécessaire pour assurer le bon fonctionnement d'une application. Cela inclut des composants de calcul tels que des conteneurs ou des fonctions, ainsi que des éléments de réseau, de stockage de fichiers etc... Il faut donc composer avec ce milles-feuilles pour créer l'hébergement adéquat pour votre application. Cette tâche peut rapidement devenir laborieuse et complexe, surtout lorsqu'il s'agit de maintenir et de reproduire une configuration sur différents environnements.
Avec le framework Serverless, vous codez infrastructure !
Ensuite, avec un ensemble de commande, vous lancez le déploiement qui créait l'infrastructure en fonction de vos besoins et gère pour vous toute la pénibilité des interfaces et des spécificités des cloud providers.
De plus, si vous vous êtes déjà essayé au serverless, vous avez probablement constaté que le déploiement et les tests peuvent être longs et complexes, à moins de coder directement sur l'interface AWS ou AzureAzure est la plateforme de Cloud de Microsoft..
Imaginez alors maintenant ce que cela donnerait avec 50 fonctions différentes... Un enfer non ??
Sur ce point, le framework serverless est une bénédiction pour les développeurs !
Le déploiement se fait en une commande, vous avez ensuite la possibilité de faire vos tests directement depuis votre terminal et de consulter les journaux (logs) sans avoir besoin de vous connecter à la console.
Vous avez besoin d'un nouvel environnement pour vos tests ? Une simple commande suffit.
Lancer votre code en local ? Juste une commande.
Le framework Serverless vous proposes même un dashboard gratuit permettant de regrouper toutes les métriques de vos fonctions, afin d'avoir une observabilité accrue avec une interface claire et intuitive.
Pour résumer simplement les avantages du framework :
Le framework Serverless est utilisé chez AXOPEN en tant que standard pour les déploiements d'application dans le Cloud de type functions .
Nous avons eu l'occasion d'utiliser le framework serverless sur plusieurs projets chez AXOPEN, ce qui nous permet d’acquérir une expérience et un recul significatifs sur cette technologie.
Pour commencer, il est important de savoir que les plugins sont indispensable afin de bénéficier d'une meilleure expérience lors de la mise en place de votre application serverless.
En effet, il existe des plugins pour toute la chaîne de création de votre application, de l'étape "développement", avec par exemple le plugin serverless-offline
qui permet de tester sa fonction sans avoir à la déployer. En passant par l'étape du "build", avec le plugin serverless-bundle
qui package votre application avec webpack très simplement. D'autres plugins peuvent également permettre de faciliter la configuration de votre infrastructure, c'est le cas notamment du plugin serverless-domain-manager
, qui simplifie la gestion du nom de domaine de votre APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. Gateway.
Pour couronner le tout, les plugins sont très simple à installer et à utiliser. C'est pourquoi nous ne pouvons que les recommander, surtout si vous souhaitez éviter de vous arracher les cheveux à refaire des tâches que d'autres ont déjà réalisées pour vous ! Les plugins sont là pour simplifier votre travail et vous permettre de vous concentrer sur l'essentiel de votre application.
Comme expliqué précédemment, si vous utilisez AWS, il est possible de créer directement votre infrastructure (IaC) directement via le framework ! Grâce à la syntaxe de CloudFormation, vous pouvez tout manipuler, de votre S3 à un SNS. Pour garantir la portabilité de votre application et vous assurer qu'elle peut fonctionner et être dupliquée facilement, il est essentiel de veiller à ce que tous les services nécessaires soient intégrés dans votre application serverless.
Malheureusement, cette fonctionnalité n'est actuellement disponible uniquement pour AWS.
Initialement conçu pour AWS, le framework s'ouvre progressivement à d'autres fournisseurs de services cloud. Cependant, certaines parties telles que l'Infrastructure as Code (IaC) restent fortement liées au fournisseur de cloud.
Toutefois pas de panique, si vous souhaitez simplement développer des fonctions pour une API, ou utiliser des triggers, le framework fonctionnera très bien quel que soit le fournisseur de cloud.
Concernant la maintenance de vos fonctions, il est important de suivre les mises à jour des runtime que propose le fournisseur de cloud. Dans le cas d'AWS, il n'hésite pas à supprimer les vieux runtime (RIP NodeJS 12, tu vas nous manquer), ce qui peut complétement bloquer votre application !
En effet, si vous essayez de mettre à jour votre application qui utilise un runtime déprécié, le framework tentera de déployer votre nouvelle version. Cependant, AWS bloquera l'opération, car le runtime concerné n'existera plus. À ce moment-là, AWS va "rollback" afin de retrouver son état précédent, mais le rollback va échouer, car le runtime n'existe (toujours) pas.
Vous vous retrouvez donc avec une application "morte", que vous allez devoir supprimer puis recréer, et là, bonne chance !
Afin de ne pas tomber dans ce piège, nous vous conseillons donc de suivre avec attention les nouvelles versions que propose votre fournisseur de cloud. La plupart du temps, il suffira simplement de changer le numéro dans votre configuration, et de relancer votre déploiement.
Que ce soit pour optimiser vos ressources cloud, concevoir des architectures évolutives ou maximiser l'efficacité de vos applications, AXOPEN s'engage à être à votre écoute et à vous accompagner dans la mise en place et le développement serverless.
Si vous souhaitez en discuter, n'hésitez pas à contacter notre équipe d'experts dédiés.
Serverless (notez le S majuscule), est une librairie permettant de faire de l'IaC (Infratructure as Code). Nous vous proposons un Tuto pour créer une application serverless en un tour de main !
Retour sur notre projet de création d'extranet
En tant qu’utilisateurs de Gitlab, vous avez peut-être déjà rêver de fonctionnalités nouvelles permettant d’enrichir votre expérience utilisateur comme la possibilité de faire des statistiques, des exports Excel, etc…
Zoom et retour d'expérience sur SignalR, bibliothèque qui simplifie l’implémentation du temps réel dans le développement applicatif.