Serverless : quelle approche retenir
En matière de serverless, il existe plusieurs voies et plateformes à emprunter pour adopter ce principe architectural. Cet article fait un rapide tour de piste.
Le serverless est désormais inscrit sur la feuille de route de plus en plus d’entreprises. Si toutefois cette décision est lourde de sens en matière architecturale, elle ne constitue pourtant qu’un point de départ. Pour y parvenir les voies à emprunter sont multiples et le choix d’une solution technologique reste un défi de taille.
Option commerciale ou open-source ? Outils à couplage lâche ou plateforme de développement intégrée ? La plateforme serverless sera-t-elle utilisée pour des projets annexes ou pour des applications critiques ?
Les technologies serverless évoluent rapidement. Donc, avant de choisir, toutes les options doivent être évaluées. Passons en revue ce qui est disponible aujourd'hui.
Lambda, Azure Functions et Cloud Functions
AWS Lambda est la plateforme serverless la plus populaire aujourd'hui, principalement parce qu'elle est conçue pour fonctionner de manière transparente avec les autres services AWS. Les utilisateurs associent le plus souvent Lambda à Amazon API Gateway pour gérer leurs API. Cette combinaison permet d'intégrer les applications existantes dites legacy aux applications modernes, conçues nativement pour le cloud. Il n'est donc pas nécessaire de moderniser les applications patrimoniales pour profiter des avantages des applications modernes. Lambda peut également être combiné aux autres produits AWS, comme S3, CloudWatch et CloudTrail,.
De leur côté, Azure Functions et Google Cloud Functions sont similaires à Lambda. Ces deux services ont les mêmes capacités et s'intègrent facilement – et logiquement – aux plateformes cloud de leurs fournisseurs.
Mais attention : le lock-in doit être pris en compte. Il n'est pas facile de migrer de Lambda vers une plateforme concurrente, et vice versa. Les étapes de l'exécution des fonctions, les limites et les services cloud pris en charge sont tous uniques et spécifiques à chaque fournisseur. Avant d'adopter telle ou telle technologie, il est important de bien évaluer chaque technologie et de comprendre si cela correspond aux besoins. Il est également clé de prendre en compte tous les facteurs susceptibles d’affecter les performances des applications, tels que les limites de taille des fichiers attribuée à chaque fonction, la façon dont la plateforme traite les requêtes, la rapidité avec laquelle elle évolue et la charge qu'elle peut gérer.
Il est également conseillé d'utiliser le framework open source Serverless Framework. Il s'agit d'un outil d'interface en ligne de commande (CLI) qui facilite l'exécution d'actions sur des plateformes comme AWS Lambda.
Des outils open source fiables pour se mettre au serverless
L’open source n’a que très peu pris place dans l'écosystème serverless. Si la gestion d'un framework serverless peut être effectuée via l'open source, l’on doit toujours provisionner les ressources sous-jacentes pour le compute, le réseau et le stockage.
C’est pour cela que les plateformes de cloud séduisent : elles soulagent les équipes de développement de cette charge, très chronophage, que représente le provisioning de ressources, bien qu'il soit possible de réaliser cela sur site sans avoir recours au cloud.
Il existe toutefois plusieurs options open source qui peuvent trouver leur place, si utilisées en tandem avec le cloud ou le provisioning de ressources sur site.
OpenFaaS est le framework open source serverless le plus populaire. Il permet d’installer une architecture serverless sur n'importe quelle plateforme cloud ou sur site. Le principal avantage d'OpenFaaS est qu’il supporte Kubernetes ou Docker Swarm.
Toutefois OpenFaaS se distingue des autres offres, car il permet de définir des restrictions et des limites personnalisées. On peut par exemple définir le délai d'attente et la taille maximale d'un fichier pour une seule fonction - la limite 5 Mo que l'on trouve sur les autres plateformes serverless. De plus, OpenFaaS devrait bientôt proposer une fonctionnalité qui rendre le système inactif lorsqu'aucune fonction n'est en cours d'exécution.
Kubeless est un autre framework open source qui fonctionne sur Kubernetes en natif. Il s'intègre avec AWS Lambda et permet d'exécuter des commandes via un CLI. Parmi les autres frameworks open source serverless , on dénombre OpenWhisk, Iron.io et Fn.
PaaS et MBaaS offrent des alternatives
Si ces technologies n’apparaissent que très peu dans les discussions liées au serverless, les PaaS et autre MBaaS ont aussi de quoi représenter des alternatives.
Ces plateformes se concentrent sur le développement et l'hébergement d'applications et mettent l'accent sur des back ends pour l'intégration de données.
Elles ne font pas que passer des fonctions. Au contraire, elles réduisent la quantité de code nécessaire et accélèrent le développement d'applications.
Les plates-formes PaaS et MBaaS sont certes des offres complètes, mais sont également plus coûteuses.