Connexion / Inscription Account

Applications cloud-native

Qu'est-ce que le FaaS ?

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

Le modèle FaaS permet aux développeurs de créer, exécuter et gérer ces paquets d'application en tant que fonctions, sans avoir à assurer la maintenance de leur propre infrastructure.

Le FaaS est une manière de mettre en œuvre l'informatique sans serveur, 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.

Cette plateforme est généralement hébergée dans le cloud, mais le modèle s'élargit pour inclure les déploiements sur site et hybrides.

L'informatique sans serveur permet aux développeurs de déléguer les tâches relatives à l'infrastructure, comme la gestion ou l'approvisionnement 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. 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 sans serveur, mais avec l'essor du paradigme du sans serveur, les développeurs cherchent des solutions qui permettent de prendre en charge la création de microservices sans serveur et de conteneurs sans état.

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

  • AWS Lambda
  • Google Cloud Functions
  • Microsoft Azure Functions (Open Source)
  • OpenFaaS (Open Source)

Comment fonctionne le FaaS ?

Le FaaS apporte aux développeurs l'abstraction nécessaire pour exécuter des applications 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, 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 sans serveur dans le cadre de workflows communs que les développeurs peuvent utiliser pour déployer des applications. 

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

Un fournisseur de cloud assure la disponibilité de votre fonction 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.

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 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é, 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 sans serveur ou une application qui intègre des composants de type microservices partiellement sans serveur et partiellement traditionnels.

Avantages du FaaS

  • 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
  • Possibilité de rédiger les fonctions dans quasiment tous les langages de programmation

Quelles sont les différences entre le FaaS et l'informatique sans serveur ?

À l'origine, le FaaS et l'informatique sans serveur représentent plus ou moins la même chose, mais l'informatique sans serveur s'est développée 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.

L'informatique sans serveur peut être utilisée 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 « 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 sans serveur.

Les solutions Kubernetes de base pour l'informatique sans serveur

Red Hat OpenShift Logo

Plateforme Kubernetes de conteneurs qui permet d'accélérer le déploiement d'applications cloud-native.

Red Hat OpenShift Application Runtimes logo

Sélection d'environnements d'exécution d'applications et de structures adaptés au développement d'applications cloud-native.

Vous ne savez pas encore tout sur le FaaS...