Exploration des Frameworks pour le Développement Serverless
Passionné par le serverless ? Envie de démarrer un nouveau projet mais vous ne savez pas par où commencer ? Cet article vous présente les principaux frameworks serverless disponibles pour vous lancer !
L’approche serverless suscite un grand intérêt auprès de ceux qui souhaitent simplifier la gestion de l’infrastructure pour se concentrer sur la création de valeur. Bien que cette technologie soit relativement récente, de nombreux développeurs et ingénieurs travaillent activement à l’élaboration de solutions innovantes pour l’avenir du serverless.
Comme vous le savez peut-être, le terme « serverless » n’implique pas une absence totale de serveurs. Il s’agit plutôt de réduire la gestion des serveurs au profit d’une plus grande concentration sur les fonctions applicatives. Si vous recherchez une plateforme FaaS (Fonction en tant que Service) fiable pour votre prochain projet, nous vous invitons à consulter notre précédent article sur les meilleures plateformes de calcul serverless.
Ceci étant dit, examinons les frameworks disponibles. Nous conclurons par quelques projets prometteurs en cours de développement dans l’écosystème serverless, alors restez connectés !
AWS Amplify
Avec le framework AWS Amplify, créez rapidement des applications serverless évolutives pour le web et le mobile, en bénéficiant d’une grande flexibilité. Configurez vos backends serverless avec des fonctionnalités de gestion de données, de stockage, d’authentification et bien plus, grâce à des workflows intelligents.
Connectez vos applications web et mobiles à des ressources AWS existantes ou nouvelles avec un minimum de code. Vous pouvez héberger et déployer des applications web monopage, des applications rendues côté serveur et des sites web statiques en quelques clics. Il permet également une gestion simplifiée du contenu et des utilisateurs.
AWS Amplify aide les développeurs front-end, web et mobile à créer plus rapidement des applications complètes sur AWS, avec la possibilité de les personnaliser selon leurs besoins. Amplify prend en charge de nombreux frameworks web tels que React, Angular, JavaScript, Vue.js, Next.js, etc., ainsi que des plateformes mobiles comme iOS, Ionic, Flutter, Android et React Native.
Intégrez de nombreux composants d’interface utilisateur Amplify pour accélérer le développement d’applications. Bénéficiez de fonctionnalités et d’outils tels que l’authentification, les interactions, les fonctions, DataStore, la gestion des utilisateurs, l’API (REST, GraphQL), l’analyse, les prédictions AI/ML, le stockage, PubSub, les notifications push, etc., pour le développement. De plus, l’hébergement géré, les aperçus PR, CI/CD, les domaines personnalisés et la surveillance sont disponibles pour le déploiement.
Midway
Utilisez le framework serverless Node.js Midway pour créer des applications côté serveur traditionnelles, des programmes de petite taille, des microservices et des services serverless. Écrit en TypeScript, il utilise un mécanisme d’injection IoC pour séparer la logique applicative, facilitant ainsi le développement de grandes applications Node.js.
Midway peut utiliser Express, EggJS ou Koa comme frameworks de base. Il fournit des solutions fondamentales telles que GRPC, Dubbo.js, RabbitMQ et Socket.io pour une utilisation indépendante. Midway est un framework web serverless Node.js adapté aux développeurs full-stack ou front-end.
Midway permet de créer des applications de nouvelle génération pouvant s’exécuter sur des conteneurs, des machines virtuelles, Alibaba Cloud, AWS et Tencent Cloud. Il s’intègre aussi facilement avec Vue et React. Parmi ses nombreuses fonctionnalités, on retrouve :
- Plugins modulaires et évolutifs
- Compatibilité avec les middlewares et architecture avancée
- Capacité de découplage et de superposition d’applications
- Expérience de développement de nouvelle génération
- Prise en charge des middlewares Koa et des plugins Egg
Webiny
Le framework d’application serverless Webiny offre tout le nécessaire pour concevoir, déployer et construire des applications serverless. Sa conception permet de s’adapter à divers cas d’utilisation, en offrant la possibilité de modifier l’architecture et la pile technologique selon les besoins de votre organisation et de votre projet.
Créez des sites web et des applications d’entreprise basés sur le référencement, le routage, le pré-rendu, la sécurité, le déploiement et le regroupement. Développez des API internes ou externes en utilisant les résolveurs GraphQL. Ne vous limitez pas à une seule application, construisez-en qui utilisent diverses bases de données en tirant parti des pilotes de bases de données NodeJS pour interagir avec des bases de données externes.
Webiny propose le regroupement de code, l’IaC, des mécanismes de déploiement et l’organisation de projet. Lancez votre produit et proposez un SaaS au monde entier. Sécurisez une partie ou l’intégralité des applications avec des ACL grâce à l’intégration d’AWS Cognito et du cadre de sécurité.
Prenez en charge Auth0, OKTA et d’autres solutions d’authentification. Vous disposerez d’un CMS headless, d’un générateur de pages, d’un générateur de formulaires, d’un gestionnaire de fichiers et bien d’autres fonctionnalités. Générez du code réutilisable en utilisant les plugins CLI depuis les fonctions lambda vers les nouvelles API GraphQL.
L’interface d’administration de Webiny contient plus de trente composants React différents. Vous bénéficierez également de la protection DDoS, du CDN et d’une durabilité des données de 11 9. Webiny vous fait gagner du temps dans les essais et erreurs et la recherche.
AWS Chalice
À la recherche d’un framework pour développer des applications serverless en Python ? Essayez AWS Chalice, qui permet de créer et de déployer des applications via AWS Lambda.
Chalice fournit un outil en ligne de commande pour créer, déployer et gérer votre application, ainsi qu’une API basée sur un décorateur pour s’intégrer avec Amazon S3, Amazon API Gateway, Amazon SQS, Amazon SNS et d’autres services AWS.
Il permet de créer des API REST, d’effectuer des tâches planifiées, de connecter des fonctions lambda avec un événement S3 et une file d’attente SQS, et d’autres ressources AWS. Après avoir écrit votre code, Chalice vous permet d’exécuter et de déployer votre application rapidement. Chalice prend en charge toutes les versions de Python prises en charge par AWS Lambda, y compris Python 2.7, 3.6, 3.7 et 3.8.
Configurez vos informations d’identification avant de déployer l’application. Si vous avez déjà configuré l’environnement pour exécuter AWS CLI ou boto3, vous pouvez ignorer cette étape. Après le déploiement, vous pouvez apporter des modifications et les redéployer. Consultez les tutoriels, sujets et références d’API pour approfondir vos connaissances.
Zappa
Zappa est un framework serverless pour créer des applications Python. Il facilite la création et le déploiement d’applications Python serverless et pilotées par les événements sur API Gateway et AWS Lambda. Il permet de profiter d’une maintenance nulle, d’un temps d’arrêt nul et d’une mise à l’échelle infinie avec un coût minimal.
Avant de commencer les installations et configurations, assurez-vous d’avoir Python 3.x, un compte AWS et que vous avez correctement configuré les informations d’identification AWS. Vous pouvez également installer Zappa facilement via pip.
Zappa configure automatiquement les paramètres de déploiement. Une fois les paramètres correctement configurés, déployez l’application en production avec une seule ligne de commande. Utilisez la commande de modèle pour obtenir le modèle API Gateway CloudFormation. Déployez Zappa sur des sous-domaines et des noms de domaines personnalisés avec des certificats SSL, des certificats AWS Certificate Manager et des certificats Let’s Encrypt.
Activez les points de terminaison sécurisés sur API Gateway tels que la clé API, la stratégie IAM, les autorisateurs API Gateway Lambda, l’autorisateur de groupe d’utilisateurs Cognito et la stratégie de ressources API Gateway. Définissez des variables d’environnement comme l’environnement local, l’environnement AWS distant et l’environnement distant via un fichier S3.
Architect
Créez, déployez et maintenez une infrastructure serverless basée sur les fonctions cloud AWS de nouvelle génération avec des workflows locaux et hors ligne complets, et bien plus encore.
Ce projet est relativement sophistiqué et nécessite de prendre connaissance de la philosophie du projet et de la documentation en intégralité.
Up
Up est un framework qui vous aide à déployer des applications serverless avec un potentiel d’évolutivité infini. Up permet également de déployer des sites web statiques, des API, etc., vous offrant ainsi la flexibilité de vous concentrer sur ce qui compte vraiment pour vous.
Up déploie des instances de serveur HTTP traditionnelles, vous n’avez donc pas besoin d’apprendre un nouveau protocole. Utilisez votre framework préféré comme Django ou Express pour commencer.
Claudia.js
Claudia.js offre aux développeurs un moyen de déployer leurs projets basés sur Node.js sur les systèmes Lambda et l’API Gateway. Claudia automatise les tâches de déploiement et de configuration, et configure automatiquement votre environnement JavaScript pour un développement moderne.
Qu’est-ce que cela signifie pour vous ? Avec Claudia, vous pouvez démarrer votre parcours de microservices en quelques minutes. Vous aurez ainsi moins de choses à gérer et plus de temps pour vous concentrer sur la résolution de problèmes concrets.
Les principales raisons d’utiliser Claudia incluent :
- Déployez, mettez à jour et gérez vos instances avec une seule commande.
- Fonctionne parfaitement avec les packages NPM.
- Structure prête à l’emploi intégrée, vous laissant plus de temps pour vous concentrer sur vos tâches.
- Gestion des versions pour pouvoir travailler sur plusieurs versions simultanément.
- Faible courbe d’apprentissage.
Jets
Vous aimez Ruby ?
Alors vous pourriez apprécier Jets, un framework Ruby serverless pour créer et déployer des microservices. Il inclut les outils nécessaires pour vous aider à générer des structures d’API et à les déployer sur Lambda.
Jets permet également d’écrire des fonctions distinctes que vous pouvez utiliser pour assembler différents services et ressources fournis par AWS.
Jets convertit votre code existant en fonctions pour Lambda et d’autres services AWS. Vous pouvez donc ignorer des aspects comme le déploiement et le provisionnement pour passer plus de temps à écrire du code fonctionnel.
Pulumi
Pulumi fournit un SDK transparent pour vous aider à créer et à déployer des logiciels sur n’importe quelle plateforme cloud. Le SDK prend en charge les conteneurs, les services hébergés, l’infrastructure de base et les conteneurs.
Vous pouvez écrire du code dans le langage de votre choix ; Pulumi fournira et gérera vos ressources sur des fournisseurs de services comme GCP, AWS, Kubernetes et Azure.
Serverless
Vous vous dites peut-être : « Quelqu’un a eu la chance d’obtenir le nom de domaine Serverless.com et en profite ! ». En réalité, ce n’est pas le cas.
Le Serverless Framework compte plus de 30 000 étoiles sur GitHub, ce qui en fait le framework serverless le plus populaire que vous puissiez trouver.
Que pouvez-vous faire avec ce framework ? En premier lieu, vous pouvez créer des applications qui utilisent des microservices pour répondre à des événements, par exemple. Vos applications ne réagissent que lorsqu’un appel est détecté et augmentent ou diminuent en fonction de la demande. Vous pouvez ainsi économiser beaucoup d’argent qui serait autrement dépensé pour maintenir des services inactifs.
Le framework utilise de nouveaux services de calcul pilotés par les événements, comme AWS Lambda, Google Cloud Functions, etc. C’est un outil en ligne de commande qui fournit une structure de base, une automatisation des flux de travail et des bonnes pratiques pour développer et déployer votre architecture serverless. Il est également entièrement extensible grâce à des plugins.
Sigma
Sigma est un nouvel IDE basé sur le cloud, conçu autour du développement serverless. Plus qu’un simple éditeur de texte doté de fonctionnalités avancées, c’est un IDE complet qui vous permet d’écrire du code et de le publier en tant qu’application en direct en temps réel.
L’IDE Sigma peut interagir avec la plateforme serverless (FaaS) de votre choix avec un simple fichier de configuration. Cela vous permet de gagner des heures sur des tâches fastidieuses.
Contrairement à d’autres outils qui tentent d’obtenir un résultat similaire, Sigma est lui-même serverless. L’IDE s’exécute entièrement à partir du navigateur et ne nécessite pas de service principal pour fonctionner (à l’exception de certaines fonctionnalités). Le back-end est plus particulièrement nécessaire pour authentifier les utilisateurs et recueillir des données analytiques.
Ce framework vaut la peine d’être surveillé et testé.
Auth0
Si vous vous intéressez au concept de serverless, vous avez probablement entendu parler du Serverless Framework, mentionné précédemment.
Auth0 a uni ses efforts pour créer les tâches web Auth0, un module complémentaire efficace pour tous les utilisateurs du Serverless Framework. Le projet s’appelle Webtask, dont vous pouvez trouver la page d’accueil ici.
Webtask permet de créer des applications sans vous soucier de votre infrastructure. Écrivez la logique côté serveur et déployez toutes vos fonctions via la CLI fournie par Webtask. Vous pouvez ensuite naviguer dans le back-end en utilisant le protocole HTTP.
Mise à jour : Le site Web Webtask a depuis été fermé.
Exemples Serverless
Nous avons évoqué le Serverless Framework plus haut. C’est une ressource utile qui présente divers exemples d’utilisation du framework serverless.
Bien que ces exemples soient liés à un framework spécifique, vous pouvez toujours profiter du processus d’apprentissage de nouveaux concepts liés au serverless.
Des exemples sont disponibles pour des plateformes comme AWS, Azure, Kubeless, Google Cloud et OpenWhisk. De plus, six langages différents sont pris en charge : nodeJS, Python, Go, Java, PHP et Swift.
Découvrez certains favoris comme le Bot de blagues Twitter et l’API Dropbox OAuth.
Si vous recherchez un apprentissage pratique, consultez ce cours en ligne.