Le terme cloud recouvre en fait une grande variété de services. La diversité des cas d’usages exige en effet de faire appel à différents modèles ou services d’informatique en nuage tels que le PaaS, l’IaaS ou le SaaS. Le FaaS fait partie de ces approches spécifiques du cloud répondant à des objectifs précis. Pour vous aider à mieux comprendre son fonctionnement, ses avantages et inconvénients, mais aussi ses cas d’usages, nous vous proposons cet article dédié.
Définition du FaaS (Function-as-a-Service)
Le FaaS (Function-as-a-Service) ou fonction en tant que service désigne un modèle de cloud utilisé par les développeurs pour créer, exécuter ou gérer des fonctions sans devoir se préoccuper de l’infrastructure technique sous-jacente.
Les professionnels du développement peuvent alors mettre à profit ce type de plateforme pour développer efficacement des applications en toute sérénité. Ce type de service est généralement intégré à des offres de cloud public proposées par des fournisseurs tels que IBM, AWS ou Google.
Fonctionnement du FaaS
Le développeur d’une fonction FaaS doit créer un morceau de code informatique. Ce dernier intègre ensuite une fonction et les dépendances nécessaires. Ensuite, ce package est déployé sur les plateformes cloud. Dès qu’un événement déclenche la fonction en question, la plateforme exécute le code et mobilise pour ce faire les ressources nécessaires. Lors de ce processus, le fournisseur de services cloud prend en charge l’exécution du code informatique, la mise à l’échelle, la gestion des ressources ainsi que la sécurisation des données.
Quelles sont les différences entre le FaaS et le serverless ?
Le terme serveless est utilisé pour nommer une approche du développement offrant l’opportunité au développeur de créer et d’exécuter des applications sans se soucier de l’architecture matérielle nécessaire. Ainsi, le serverless intègre le FaaS, mais ne s’y limite pas.
En effet, l’approche de cloud computing sans serveur (serverless) peut aussi être mise à profit pour exploiter une base de données distante ou le stockage et le partage de document d’entreprise.
Avantages et inconvénients du FaaS
Comme toute solution, le FaaS (Function-as-a-Service) présente des forces et des faiblesses. Afin d’assurer un déploiement réussi d’un processus mettant à profit cette approche du cloud, nous vous listons donc de manière détaillée les avantages et inconvénients qu’il est nécessaire de prendre en considération en amont de votre projet FaaS.
Avantages du FaaS
- Accélération des processus : L’équipe de développement gagne du temps, car elle n’a pas à se soucier de l’infrastructure technique.
- Évolutivité de la solution : Les fonctions s’exécutent à la demande et s’adaptent automatiquement à la charge de travail.
- Optimisation des coûts : Selon vos besoins, vous ne payez et consommez que les ressources informatiques nécessaires à votre projet.
- Simplicité de fonctionnement : En utilisant cette approche du conteneur stateless, les développeurs améliorent leur productivité.
- Polyvalence de développement : Les fonctions peuvent être écrites dans quasiment n’importe quel langage informatique, ce qui accroît nettement votre agilité.
Inconvénients du FaaS
- Verrouillage du fournisseur : Votre code peut être dépendant de la plateforme FaaS (Function-as-a-Service) que vous choisissez.
- Complexité du débogage : La phase de débogage des fonctions peut être plus délicate que dans le cadre du développement traditionnel d’application.
- Réalisation des tests : La phase de test des applications est complexe, car il est difficile d’intégrer du code FaaS au sein d’un environnement de test local.
- Fonctions limitées : Les fonctions développées avec le FaaS sont conçues pour des tâches courtes et sans état.
- Dépendance aux évènements : Toutes les fonctions écrites via ce type de cloud ne peuvent s’exécuter qu’en réponse à un évènement.
Les cas d’utilisation du FaaS
Les services cloud répondent à une très grande variété de cas d’usages tels que le transfert de document ou la collaboration en ligne. Le FaaS ne fait pas exception et peut lui aussi être mis à profit dans des situations très variées.
Développement & déploiement de logiciels
Le FaaS est idéal pour développer et déployer ce qu’on appelle des microservices. Ces derniers sont des composants logiciels indépendants et légers qui communiquent entre eux. Une équipe peut aussi exploiter le potentiel de ce type de cloud pour créer et tester des prototypes ou bien encore réaliser des fonctions ponctuelles telles que l’envoi d’emails de notification ou le traitement des paiements par carte bancaire.
Fonctionnalités à la demande
Parfait pour gérer et optimiser le développement de solutions intermittentes, le FaaS peut être utilisé pour créer des fonctions qui vont ensuite interagir avec des API externes. Ceci permet notamment de réaliser de la reconnaissance d’image ou de la traduction en ligne. Cette approche du cloud prend aussi tout son sens lors du traitement de données par lots afin de déclencher des fonctions permettant de traiter des fichiers CSV ou bien encore analyser ou générer des rapports.
Sites internet interactifs
Dans le cadre du développement Web, le FaaS peut aussi tirer son épingle du jeu. Les chats en direct ou les systèmes de recommandations sont autant de fonctionnalités qui peuvent reposer sur des fonctions basées sur les événements. Le FaaS peut aussi faire office de Backend pour des applications dynamiques et évolutives en gérant les requêtes utilisateurs via des API RESTful.
Internet des objets (IoT)
L’internet des objets repose sur une multitude de capteurs et un grand volume de données provenant de ces capteurs. L’approche Function-as-a-Service va alors être utilisée pour déclencher des fonctions spécifiques dès que certaines données de capteur seront réceptionnées. Ce processus permet un traitement et une analyse des données en temps réel.
Automatisation des workflows
Enfin, le cloud FaaS est très pertinent dans le cadre de l’utilisation des workflows. Vous pouvez automatiser des workflows complexes impliquant de nombreuses étapes et approbations. De plus, cette approche peut aussi s’intégrer parfaitement à des workflows métiers existants permettant d’automatiser le transfert de documents via un dossier partagé en ligne à certaines étapes clés d’un processus.