Le modèle de cloud computing Function as a Service (FaaS) vous permet de développer de petits morceaux de code appelés fonctions, qu'un fournisseur de services cloud exécute en réponse à des événements spécifiques. Dans ce modèle, vous vous concentrez entièrement sur la logique du code, tandis que l'environnement d'exécution sans serveur gère l'infrastructure. Le fournisseur de services cloud gère le matériel physique, le système d'exploitation et le logiciel serveur Web.
Cela diffère des applications traditionnelles basées sur des serveurs ou des architectures monolithiques. Dans ces anciens modèles, vous gérez généralement un serveur qui s'exécute en continu, même lorsque personne n'utilise votre application. Avec le modèle FaaS, la plate-forme exécute votre code uniquement lorsqu'un événement spécifique le déclenche. Cela permet de créer des applications de manière efficace, car vous ne consommez des ressources que lorsque cela est nécessaire.
Il est utile de comprendre où se situe le modèle FaaS par rapport aux autres modèles de services cloud tels que le PaaS (Platform as a Service) et l'IaaS (Infrastructure as a Service). Le modèle FaaS appartient à la catégorie plus large des solutions sans serveur, où le fournisseur gère les serveurs, mais il offre un niveau d'abstraction distinct. L'informatique sans serveur englobe tous les services (bases de données, stockage, calcul, etc.) pour lesquels le fournisseur gère les serveurs. Le modèle FaaS correspond spécifiquement à la partie calcul de l'informatique sans serveur qui exécute le code en réponse à des événements.
Caractéristique | FaaS (Functions as a Service) | PaaS (Platform as a Service) | IaaS (Infrastructure as a Service) |
Unité principale | Une seule fonction (petit extrait de code) | Application entière | Machines virtuelles (VM) |
Évolutivité | Scaling instantané par requête (y compris à zéro) | Plus lente, le scaling est basé sur les règles configurées | Autoscaling manuel ou préconfiguré |
Modèle tarifaire | Paiement par temps d'exécution (en millisecondes) | Paiement pour les ressources en cours d'exécution (temps d'activité) | Paiement des ressources allouées (taille/durée) |
Maintenance | Aucune (le fournisseur gère tout) | Faible (le fournisseur gère l'OS/l'environnement d'exécution) | Élevée (vous gérez l'OS, les mises à jour et les correctifs) |
Application idéale | Tâches basées sur des événements, code de liaison, traitement des données | Applications Web, services de longue durée | Anciennes applications, infrastructure personnalisée complexe |
Caractéristique
FaaS (Functions as a Service)
PaaS (Platform as a Service)
IaaS (Infrastructure as a Service)
Unité principale
Une seule fonction (petit extrait de code)
Application entière
Machines virtuelles (VM)
Évolutivité
Scaling instantané par requête (y compris à zéro)
Plus lente, le scaling est basé sur les règles configurées
Autoscaling manuel ou préconfiguré
Modèle tarifaire
Paiement par temps d'exécution (en millisecondes)
Paiement pour les ressources en cours d'exécution (temps d'activité)
Paiement des ressources allouées (taille/durée)
Maintenance
Aucune (le fournisseur gère tout)
Faible (le fournisseur gère l'OS/l'environnement d'exécution)
Élevée (vous gérez l'OS, les mises à jour et les correctifs)
Application idéale
Tâches basées sur des événements, code de liaison, traitement des données
Applications Web, services de longue durée
Anciennes applications, infrastructure personnalisée complexe
Le workflow FaaS peut être simple et efficace. Il repose souvent sur un modèle basé sur des événements dans lequel des actions déclenchent votre code.
Le modèle FaaS est polyvalent et s'intègre bien à de nombreuses architectures d'applications modernes.
Vous pouvez diviser les applications complexes en petits éléments indépendants qui communiquent par le biais d'événements.
Le modèle FaaS est idéal pour des tâches comme le redimensionnement d'une image immédiatement après son importation par un utilisateur ou le nettoyage des données à leur arrivée.
Vous pouvez utiliser des fonctions pour gérer la logique des applications mobiles ou traiter les données provenant d'appareils IoT.
Les tâches qui peuvent être divisées en de nombreux jobs simultanés de petite taille, comme l'encodage vidéo, s'exécutent très efficacement sur une solution FaaS.
Vous pouvez remplacer les tâches planifiées traditionnelles par des fonctions qui s'exécutent à des moments précis pour effectuer des opérations de maintenance ou générer des rapports.
L'adoption de la technologie cloud FaaS offre plusieurs avantages aux développeurs et aux entreprises.
Scaling automatique et instantané
Votre application peut gérer un pic soudain de trafic, passant d'un utilisateur à des milliers, sans que vous ayez besoin de configurer quoi que ce soit manuellement.
Meilleur contrôle des coûts (paiement à l'usage)
Vous ne payez que lorsque votre code est exécuté. Vous pouvez ainsi éviter les coûts liés aux serveurs inactifs et réaliser des économies significatives.
Accélération du développement
Les développeurs peuvent écrire du code et le déployer rapidement, sans perdre de temps à gérer les serveurs ni à configurer l'infrastructure.
Concentrez-vous sur le code d'application, et non sur la gestion de l'infrastructure
Les équipes peuvent consacrer leur énergie à créer de la valeur pour les clients plutôt qu'à corriger des serveurs ou à gérer des systèmes d'exploitation.
Haute disponibilité et résilience
Les plates-formes FaaS exécutent généralement votre code dans plusieurs zones. Ainsi, si une zone est indisponible, votre application continue de fonctionner.
Le "démarrage à froid" est l'un des problèmes les plus courants rencontrés par les développeurs avec les offres FaaS. Si votre fonction n'a pas été exécutée depuis un certain temps, le fournisseur de services cloud arrête l'environnement pour économiser des ressources. La prochaine fois qu'un événement déclenchera cette fonction, il y aura un léger délai pendant que le système configure l'environnement et charge le code. Ce délai, appelé "démarrage à froid", peut ralentir votre application.
Si votre application nécessite des réponses instantanées, vous pouvez suivre ces étapes pour réduire la latence.
Le terme "Function as a Service" décrit un modèle de cloud computing, et Cloud Run Functions est le produit Google Cloud qui concrétise ce concept. Il s'agit d'une solution FaaS évolutive avec paiement à l'usage qui vous permet d'exécuter du code, sans aucune gestion de serveur.
En choisissant Cloud Run Functions, vous adoptez une approche sans serveur dans laquelle Google Cloud gère l'infrastructure sous-jacente. Vous fournissez le code, et la plate-forme gère l'environnement d'exécution, les mises à jour du système d'exploitation et les fonctionnalités d'autoscaling. Grâce à cette intégration, vous pouvez déployer des fonctions à usage unique qui répondent à des événements (requêtes HTTP ou modifications de données, par exemple), sans avoir à provisionner la moindre machine virtuelle.
Ce service combine la simplicité du déploiement de fonctions avec la puissance de la technologie Cloud Run. Les développeurs peuvent créer des applications basées sur des événements à l'aide de langages tels que Python, Node.js, Go, Java, .NET et Ruby. Comme il s'exécute sur l'infrastructure robuste de Google, vos fonctions peuvent passer automatiquement de zéro à des milliers d'instances pour répondre à la demande.
Pour en savoir plus sur le modèle Functions as a Service et l'informatique sans serveur, vous pouvez consulter les ressources suivantes.
Commencez à créer des applications sur Google Cloud avec 300 $ de crédits et plus de 20 produits toujours sans frais.