Function as a Service (FaaS) représente une catégorie de services de cloud computing qui fournit une plate-forme permettant aux clients de développer, d'exécuter et de gérer des fonctionnalités d'application sans la complexité de la création et de la maintenance de l'infrastructure généralement associée au développement et au lancement d'une application. Ce modèle architectural est généralement associé à l'informatique sans serveur, où les développeurs peuvent se concentrer sur l'écriture du code de leur application et où le fournisseur de cloud gère l'environnement d'exécution.
Retracer l'histoire et les origines de la fonction en tant que service (FaaS)
La création du Function as a Service (FaaS) est fortement liée à l’évolution du cloud computing. La naissance du cloud computing au début des années 2000 a mis sous les projecteurs l’infrastructure en tant que service (IaaS) et la plate-forme en tant que service (PaaS). Cependant, les développeurs devaient toujours gérer les serveurs dans les deux modèles, mais dans une moindre mesure avec le PaaS.
La percée a eu lieu en 2014 lorsque Amazon Web Services (AWS) a introduit AWS Lambda comme première plateforme FaaS. Cela a complètement éliminé le besoin pour les développeurs de se soucier des serveurs. Lambda a permis aux développeurs d'exécuter leur code en réponse à des événements tels que des modifications apportées aux données dans un compartiment Amazon S3 ou des mises à jour dans une table Amazon DynamoDB. Cela a marqué un changement révolutionnaire dans la manière dont les applications pouvaient être créées et livrées.
Plonger plus profondément dans la fonction en tant que service (FaaS)
FaaS est une méthode sans serveur permettant d'exécuter des morceaux de code modulaires en périphérie. Au lieu de déployer une application ou un service entier, les développeurs peuvent exécuter de petites fonctions qui exécutent une tâche unique et définie. Ces fonctions sont « sans état » car elles sont conçues pour être de courte durée et s'exécuter dans un environnement sans état. Le fournisseur de cloud gère automatiquement les ressources dont il a besoin pour fonctionner et évoluer.
Les fonctions sont déclenchées par des événements tels que des requêtes HTTP, des opérations de base de données, des files d'attente, du stockage, etc. Le fournisseur exécute la fonction et renvoie le résultat une fois terminé avec succès. Une caractéristique clé du FaaS est que vous ne payez que pour le temps de traitement réel de la fonction et non pour l'infrastructure sous-jacente.
Démêler la structure interne et le mécanisme de fonctionnement du FaaS
Dans un modèle FaaS, la logique applicative est divisée en fonctions distinctes. Ceux-ci sont gérés par une plateforme sous-jacente et sont généralement apatrides. Dès réception d'un événement, la plate-forme active rapidement les ressources pour exécuter la fonction, traite l'événement, puis arrête les ressources une fois le traitement terminé.
- Déclencheur d'événement: Un événement tel qu'une requête HTTP, un téléchargement de fichier ou une opération de base de données déclenche la fonction.
- Initialisation de la fonction: Le fournisseur de cloud prépare la fonction pour l'exécution. Cela peut impliquer de démarrer un conteneur et d'y charger le code de fonction.
- Exécution: La fonction est exécutée avec les données d'événement fournies.
- Réponse: La fonction traite les données d'événement et renvoie un résultat. Il peut également interagir avec d’autres services ou bases de données dans le cadre de ce traitement.
- Fermer: Une fois l'exécution de la fonction terminée, le fournisseur de cloud arrêtera les ressources utilisées pour exécuter la fonction.
Principales fonctionnalités de la fonction en tant que service (FaaS)
- Piloté par les événements: Les fonctions sont exécutées en réponse à des événements ou à des déclencheurs.
- Apatride: Les fonctions ne conservent pas d'informations entre les exécutions.
- Évolutif: Le fournisseur cloud gère automatiquement la mise à l'échelle de la fonction.
- De courte durée: Les fonctions doivent démarrer rapidement, s'exécuter pendant une courte période, puis s'arrêter.
- Payer pour utilisation: Le prix est basé sur le temps de calcul réel utilisé par la fonction.
Différents types de fonctions en tant que service (FaaS)
Bien que le concept de base du FaaS reste le même, différents fournisseurs de cloud proposent des produits FaaS légèrement différents. Certains des plus populaires incluent :
Fournisseur | Produit FaaS |
---|---|
AWS | Lambda |
Google Cloud | Fonctions cloud |
Microsoft Azure | Fonctions Azure |
IBM | Fonctions cloud |
Oracle | Projet Fn |
Façons d'utiliser la fonction en tant que service (FaaS), problèmes et solutions
FaaS est particulièrement utile pour les applications qui doivent répondre à des informations en temps réel ou à des demandes sporadiques. Par exemple, il peut être utilisé pour le traitement de fichiers en temps réel, la transformation de données ou le traitement de flux d'événements. Cependant, il existe des défis potentiels liés aux délais d'exécution, à la gestion des états, aux tests et au débogage. Les solutions incluent une conception minutieuse du code de fonction pour respecter les délais d'exécution et l'utilisation de services cloud supplémentaires pour gérer l'état.
Comparaison avec des concepts similaires
Concept | Description |
---|---|
FaaS | Les développeurs fournissent le code de fonction. La plateforme gère automatiquement toute l’infrastructure. |
IaaS | Les développeurs gèrent les applications, les données, le runtime et le middleware. Le fournisseur gère la virtualisation, les serveurs, le stockage et la mise en réseau. |
PaaS | Les développeurs gèrent les applications et les données. Le fournisseur gère le runtime, le middleware, le système d'exploitation, la virtualisation, les serveurs, le stockage et la mise en réseau. |
Perspectives et technologies du futur liées au FaaS
FaaS est susceptible de continuer à évoluer avec l’écosystème sans serveur plus large. Les progrès de l’informatique de pointe pourraient voir le FaaS devenir plus répandu à la périphérie du réseau, plus près des sources de données. En outre, nous pourrions voir davantage d’environnements hybrides sans serveur dans lesquels FaaS est utilisé conjointement avec d’autres modèles de calcul pour différentes parties d’une application.
Le rôle des serveurs proxy dans la fonction en tant que service (FaaS)
Les serveurs proxy peuvent jouer un rôle dans FaaS en agissant comme intermédiaires pour les demandes des clients recherchant des ressources auprès d'autres serveurs. Ils peuvent améliorer les performances, assurer la sécurité et maintenir l’anonymat. Dans le contexte FaaS, un serveur proxy peut être utilisé pour gérer les requêtes qui déclenchent des fonctions, offrant des capacités supplémentaires de contrôle, de journalisation et de modification.