Qu'est-ce que Functions as a Service (FaaS) ?

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.

FaaS, PaaS et IaaS

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.

  • Le modèle FaaS se concentre sur le code basé sur des événements. Vous déployez une seule fonction qui effectue une tâche spécifique en réponse à un événement, comme l'importation d'un fichier. La plate-forme gère automatiquement le scaling, souvent jusqu'à zéro en cas d'inactivité.
  • Le modèle PaaS fournit une plate-forme pour créer et exécuter des applications complètes. Bien qu'il vous évite également d'avoir à gérer le matériel et les systèmes d'exploitation, il exécute généralement votre application en continu en attendant les requêtes des utilisateurs. Il est plus adapté aux applications Web complètes qu'aux déclencheurs d'événements individuels.
  • Le modèle IaaS offre le plus haut degré de contrôle, mais nécessite le plus de gestion. Vous louez des machines virtuelles (VM) et de l'espace de stockage, mais vous êtes responsable de la gestion du système d'exploitation, des environnements d'exécution et des middlewares.

Comparaison des modèles de services cloud

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

Fonctionnement du modèle Functions as a Service

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.

  1. Déploiement de code : vous écrivez un petit extrait de code, ou une fonction, qui exécute une tâche unique, puis vous l'importez dans votre fournisseur de services cloud.
  2. Déclenchement d'un événement : un événement se produit (par exemple, clic d'un utilisateur sur un bouton, importation d'un fichier dans un espace de stockage ou message placé en file d'attente).
  3. Allocation des ressources : le fournisseur de services cloud reconnaît l'événement et provisionne instantanément l'environnement d'exécution nécessaire.
  4. Exécution de la fonction : votre code s'exécute, effectue sa tâche et produit un résultat, comme le traitement de données ou l'envoi d'une notification.
  5. Désactivation et facturation : une fois la tâche terminée, les ressources sont libérées immédiatement, et seules les millisecondes pendant lesquelles votre code s'est exécuté vous sont facturées.

Cas d'utilisation courants du modèle FaaS

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.

Principaux avantages de l'adoption du modèle FaaS

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.

Problème courant pour les développeurs : le "démarrage à froid"

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.

Réduire les démarrages à froid

Si votre application nécessite des réponses instantanées, vous pouvez suivre ces étapes pour réduire la latence.

  1. Réduisez la taille de votre code : examinez votre code et supprimez les bibliothèques ou dépendances volumineuses qui ne sont pas strictement nécessaires. Plus votre fonction est petite, plus elle se charge rapidement.
  2. Utilisez le chargement différé : structurez votre code de sorte qu'il ne charge les variables ou les connexions importantes que lorsqu'elles sont réellement nécessaires dans la logique de la fonction, plutôt que de les charger immédiatement au démarrage de la fonction.
  3. Configurez un nombre minimal d'instances : la plupart des grands fournisseurs de services cloud vous permettent de définir un nombre minimal d'instances. Cela permet de garder au moins une instance de votre fonction en attente et prête à l'emploi à tout moment, ce qui élimine le délai de démarrage.
  4. Choisissez un environnement d'exécution plus rapide : certains langages de programmation, comme Go ou Python, démarrent généralement plus vite que d'autres, comme Java. Si la vitesse est essentielle, envisagez d'écrire les fonctions sensibles à la latence dans un langage plus léger.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.

FaaS et Cloud Run Functions

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.

Autres ressources

Pour en savoir plus sur le modèle Functions as a Service et l'informatique sans serveur, vous pouvez consulter les ressources suivantes.

Passez à l'étape suivante

Commencez à créer des applications sur Google Cloud avec 300 $ de crédits et plus de 20 produits toujours sans frais.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud