Jump to section

Le FaaS, qu'est-ce que c'est ?

Copier l'URL

Le FaaS (Function-as-a-Service) est un service de cloud computing qui permet aux développeurs de créer, de calculer, d'exécuter et de gérer des paquets d'application en tant que fonctions, sans avoir à assurer la maintenance de leur propre infrastructure.

Le FaaS est un modèle d'exécution basé sur les événements qui s'exécute dans des conteneurs stateless. Les fonctions proposées « as-a-Service » gèrent les états et la logique côté serveur grâce à des services assurés par un fournisseur.

Les solutions FaaS sont disponibles sur les principaux clouds publics et peuvent être provisionnées sur site. Elles apportent ainsi de nouvelles capacités intéressantes pour le développement d'applications d'entreprise. Téléchargez le guide stratégique pour vous préparer à mettre en œuvre une approche serverless avec le FaaS.

Voici quelques exemples de FaaS fréquemment utilisés :

  • IBM Cloud Functions
  • AWS Lambda d'Amazon
  • Google Cloud Functions
  • Microsoft Azure Functions (Open Source)
  • OpenFaaS (Open Source)

Le FaaS est une manière de mettre en œuvre le serverless, où les développeurs écrivent une logique métier qui est ensuite exécutée dans des conteneurs Linux entièrement gérés par une plateforme.

Généralement, cette plateforme est hébergée dans le cloud et utilise des services de cloud computing, mais ce modèle évolue pour inclure les déploiements sur site et hybrides.

Le serverless permet aux développeurs de déléguer les tâches relatives à l'infrastructure, comme la gestion ou le provisionnement des serveurs ainsi que l'allocation des ressources, à une plateforme (telle que Red Hat® OpenShift®), afin de se concentrer sur la rédaction du code et fournir de la valeur ajoutée.

Une fonction est un bout de logiciel qui permet d'exécuter une logique métier sur un système d'exploitation. Les applications peuvent être composées de nombreuses fonctions.

L'utilisation d'un modèle FaaS est une manière de créer une application avec une architecture serverless, mais avec l'essor du paradigme du serverless, les développeurs cherchent des solutions qui permettent de prendre en charge la création de microservices serverless et de conteneurs stateless.

Le FaaS apporte aux développeurs l'abstraction nécessaire pour exécuter des applications web en réponse à des événements, sans avoir à gérer de serveurs. Par exemple, le téléchargement d'un fichier peut déclencher l'utilisation d'un code qui permet de convertir le fichier dans plusieurs formats.

L'infrastructure FaaS est généralement dimensionnée à la demande par le fournisseur de services, principalement grâce à un modèle d'exécution basé sur les événements. Elle est ainsi disponible quand vous en avez besoin, sans que vous ayez besoin d'exécuter constamment des processus serveur en arrière-plan, comme sur une plateforme PaaS

La frontière qui sépare le PaaS et le FaaS s'estompe avec le temps, puisque les solutions modernes de PaaS fournissent des capacités serverless dans le cadre de workflows communs que les développeurs peuvent utiliser pour déployer des applications. 

Dans les faits, les applications dans leur intégralité seront composées d'un mélange de ces solutions : fonctions, microservices et services à long terme.

Un fournisseur assure la disponibilité de votre fonction depuis une interface de programmation d'application (API) et gère l'allocation des ressources. Puisque ces fonctions sont basées sur les événements, et non sur les ressources, il est facile de les faire évoluer et cela renforce l'efficacité et la valeur.

Pour profiter de certains de ces avantages, vous devez accepter quelques contraintes architecturales, telles que des limites de temps pour l'exécution des fonctions. Celles-ci doivent donc démarrer et s'exécuter rapidement. 

Les fonctions démarrent en quelques millisecondes et traitent des demandes individuelles. Si votre fonction fait l'objet de plusieurs demandes simultanées, le système crée autant de copies de la fonction que nécessaire pour répondre à ces demandes.

Lorsque la demande diminue, l'application évolue à la baisse automatiquement. La mise à l'échelle dynamique du FaaS est un avantage qui le rend économique, puisque le fournisseur ne facture que les ressources utilisées, et non les périodes d'inactivité.

Si votre PaaS est exécuté sur site, sa nature dynamique permet également d'augmenter la densité de votre plateforme. Vous pouvez alors exécuter davantage de charges de travail et optimiser les fonctionnalités et la consommation des ressources.

Un service basé sur les événements avec une mise à l'échelle horizontale peut jouer parfaitement le rôle d'une fonction, tout comme les applications RESTful

Le FaaS fonctionne très bien pour les transactions à volume élevé et les charges de travail occasionnelles, telles que la génération de rapports, le traitement des images, ou n'importe quelle tâche planifiée. Le traitement des données, les services IoT et les applications mobiles ou web sont des cas d'utilisation communs du FaaS.

Le FaaS vous permet de créer une application entièrement serverless ou une application qui intègre des composants de type microservices partiellement serverless et partiellement traditionnels afin de tirer parti des avancées technologiques et des systèmes d'orchestration de conteneurs comme Kubernetes.

  • Amélioration de la productivité des développeurs et accélération du développement
  • Gestion du serveur déléguée
  • Mise à l'échelle simplifiée et mise à l'échelle horizontale gérée par la plateforme
  • Consommation et paiement des ressources nécessaires uniquement et selon les besoins
  • Possibilité de rédiger les fonctions dans quasiment tous les langages de programmation

À l'origine, le FaaS et le serverless représentent plus ou moins la même chose, mais le serverless s'est développé pour inclure un plus grand nombre de pratiques et de schémas architecturaux, qui permettent l'utilisation intensive des services communs, en plus de la logique métier personnalisée encodée dans le FaaS.

Le serverless peut être utilisé par les microservices et même par les applications traditionnelles, à condition qu'elles puissent être conteneurisées et qu'elles respectent les exigences en matière de mise à l'échelle dynamique et de gestion des états. 

L'expression « serverless » ou « sans serveur » peut également qualifier des services gérés, tels que les bases de données et les systèmes de messagerie dont l'exploitation ne nécessite pas l'intervention d'un développeur ou d'un administrateur, puisque le système est géré par un fournisseur de cloud ou une entreprise tierce.  

L'association du FaaS et des services back-end communs (bases de données, messagerie et authentification), connectés principalement à travers une architecture basée sur les événements, fournit les meilleurs avantages pour les développeurs serverless

Pour aller plus loin

ARTICLE

Stateful et stateless : quelle est la différence ?

Les qualificatifs « stateful » ou « stateless » dépendent de la durée pendant laquelle l'état de l'interaction avec un élément est enregistré ainsi que de la manière dont cette information doit être stockée.

ARTICLE

Quarkus, qu'est-ce que c'est ?

Quarkus est une pile Java native pour Kubernetes conçue pour les machines virtuelles Java (JVM) et la compilation native, qui permet d'optimiser Java spécifiquement pour les conteneurs.

ARTICLE

Le serverless ou informatique sans serveur, qu'est-ce que c'est ?

Le serverless est un modèle de développement cloud-native qui permet aux développeurs de créer et d'exécuter des applications sans avoir à gérer des serveurs.

En savoir plus sur les applications cloud-native

Produits

Une plateforme d'applications d'entreprise comprenant un ensemble unifié de services testés conçus pour distribuer des applications sur votre choix d'infrastructure.

Ressources

Formations

Formation gratuite

Développement d'applications cloud-native avec des architectures de microservices