L’ère du Function-as-a-Service, stade ultime de l'architecture serverless

Le FaaS permet de créer une application entièrement serverless ou une application intégrant des composants de type microservices partiellement serverless. Historique et avantages.

Pour permettre aux développeurs de se focaliser sur leurs cœurs de métier et atteindre un rendement optimal, de nombreux concepts se sont succédé. L’objectif partagé étant de délester les développeurs des tâches annexes ou subalternes mais toujours chronophages. Une situation qui crée des manques à gagner pour les entreprises. Dans la famille des as-a-Service, le dernier concept en date et le plus prometteur est le Function-as-a-Service. On fait le point.


Du serveur dédié au serverless

En deux décennies d’existence, l’hébergement web a dû franchir plusieurs paliers avant d’atteindre les possibilités actuelles. Au début, il y avait les serveurs dédiés qui à maturité ont permis l’âge d’or de PHP. S’en est suivi l’avènement du cloud computing, promu en grande pompe par les grandes enseignes américaines qui vantaient, entre autres, une plus grande flexibilité des infrastructures et une multiplication des services. Une grande révolution accompagnée par le légendaire capitalisme américain et la détermination des géants du web à dominer le monde de l’hébergement. Les architectures IaaS (Infrastructure-as-service), PaaS (Platform-as-service) et SaaS (software-as-service) ont vu le jour pour réduire progressivement les tâches annexes au développement d’applications. Toutefois, le SaaS demeure relativement contraignant et une meilleure alternative, centrée sur le développeur serait bienvenue. C’est là qu’intervient le serverless.


Le serverless s’impose, poussé par les GAFA

Le serverless est une architecture, un modèle de développement qui permet aux développeurs de se focaliser entièrement sur leur mission, sans avoir à s’occuper des serveurs. L’anglicisme peut porter à confusion, le terme serverless ne sous-entend pas la découverte d’un moyen de faire l’impasse sur les serveurs. Détachés du pôle développement, ces derniers sont alors gérés par les fournisseurs de service cloud qui assurent également l’exécution d’une partie du code et la mise en échelle des applications. Le concept n’est pas nouveau en soi, l’entreprise américaine PiCloud en a dessiné les premiers contours en 2010 avant que le genre ne devienne plus connu grâce à Lambda, l’offre serverless estampillée Amazon Web Services. Les autres grands noms du web ont incessamment suivi la tendance, à l’image de Microsoft, Oracle ou encore Google.


BaaS, FaaS, Serverless ?

Selon les experts, le futur proche de l’hébergement appartient au serverless. On envisage pour 2025 un profit de 21 milliards USD sur l’ensemble du marché, 7 fois plus que les 3,14 milliards USD de 2017. Par abus, la communauté web à tendance à assimiler serverless et FaaS (Function-as-a-service). En vérité, il existe deux sous-modèles d’architecture serverless : Faas et Baas (Backend-as-a-service). Le premier est orienté sur la notion d’évènements. Le déploiement est entièrement géré sur une plateforme et les développeurs ont la possibilité de personnaliser au maximum les applications, ce qui n’est pas le cas pour le modèle BaaS. Ce dernier type repose grandement sur les interfaces API et offre de nombreux services/applications tiers. Le modèle FaaS est largement plus sollicité, d’où l’abus de langage.


Function-as-a-Service, niveau d’abstraction pour développement full serverless

Concrètement le modèle FaaS permet aux développeurs de créer, exécuter et gérer des paquets d'application en tant que fonctions, sans avoir à assurer la maintenance de leur propre infrastructure. Une fonction étant une « partie » de logiciel permettant d'exécuter une logique métier. Une application pouvant être composée de nombreuses fonctions.

Dans les faits, les applications modernes seront composées d'un mélange de solutions empruntés au FaaS et au PaaS : fonctions, microservices ainsi que services à long terme.

Les principaux avantages du Function-as-a-Service sont les suivants :

· Productivité et vitesse de développement améliorées

· Focus sur le métier car la gestion du serveur est déléguée

· Une mise à l'échelle simplifiée et une mise à l'échelle horizontale gérée par la plateforme

· Consommation et facturation des seules ressources nécessaires

· Compatibilité avec quasiment tous les langages de programmation

Si à l'origine, FaaS et serverless représentaient plus ou moins la même chose, le serverless s’est ensuite développé pour inclure un nombre plus grand de pratiques et de type d’architecture, permettant l'utilisation intensive des services communs, en plus de la logique métier personnalisée encodée dans le Function-as-a-Service.

Bref, que vous souhaitiez démarrer un nouveau projet avec LA technologie de pointe ou bien que vous visiez plutôt une réduction de vos coûts de gestion d’infra cloud, le serverless et le FaaS sont des options à envisager sérieusement.

Par Baptiste.casnedi