Dans le domaine du Cloud Computing, toute une gamme de solutions in­for­ma­tiques s’est dé­ve­lop­pée au cours des dernières années. Le fait qu’elles soient dis­po­nibles n’importe où et la flexi­bi­lité de leur uti­li­sa­tion comptent parmi les prin­ci­paux avantages offerts par ces solutions aux uti­li­sa­teurs. La solution la plus connue est le logiciel en tant que service, ou SaaS. Ce terme englobe tous les types de logiciels pouvant être utilisés avec une simple connexion Internet, sans qu’il y ait besoin d’une version locale.

La solution de Function as a Service, ou FaaS, désigne des paquets d’ap­pli­ca­tions mis au point, gérés et exécutés par des dé­ve­lop­peurs. Leur gestion ne nécessite aucune in­fras­truc­ture propre ; le four­nis­seur du service peut en mettre une à votre dis­po­si­tion. Les fonctions sont ensuite dé­ve­lop­pées de façon isolée dans des « con­te­neurs ». Le FaaS est utilisé pour le trai­te­ment des données ou les ap­pli­ca­tions mobiles, par exemple. Découvrez les domaines d’ap­pli­ca­tion du Function as a Service, la manière dont les dé­ve­lop­peurs peuvent en tirer parti et les avantages comme les in­con­vé­nients de cette solution de Cloud Computing.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Qu’est-ce que le FaaS ?

Le Function as a Service est un service de Cloud Computing per­met­tant de dé­ve­lop­per et de mettre en service des ap­pli­ca­tions. Sa par­ti­cu­la­rité ? Le serveur sur lequel l’ap­pli­ca­tion s’exécute et l’in­fras­truc­ture du service sont tous deux hébergés par le four­nis­seur. Ainsi, toutes les tâches connexes telles que la main­te­nance ou les mises à jour ré­gu­lières ne sont pas du ressort des dé­ve­lop­peurs. Cela leur permet de se consacrer uni­que­ment à la pro­gram­ma­tion de leur code, afin de lui donner la forme des paquets d’ap­pli­ca­tions requis. Le terme « Function » (fonction) est utilisé pour décrire les com­po­sants logiciels qui ne sont souvent exécutés que le temps de quelques secondes. Les ap­pli­ca­tions se composent gé­né­ra­le­ment d’une ou plusieurs de ces fonctions. Avec le FaaS, il est également possible de combiner des com­po­sants de mi­cro­ser­vice cons­ti­tués d’une multitude de fonctions.

Vous pouvez accéder à de nom­breuses solutions FaaS depuis le Cloud, mais certaines ar­chi­tec­tures FaaS s’utilisent également lo­ca­le­ment ; elles sont alors ins­tal­lées et hébergées dans des centres de données dédiés. Le four­nis­seur facture l’uti­li­sa­tion de sa solution FaaS sur la base de la puissance de calcul né­ces­saire et de l’espace utilisé pour le stockage des données.

Comment utiliser le Function as a Service ?

Le Function as a Service permet aux dé­ve­lop­peurs de mettre en œuvre des solutions d’in­for­ma­tique sans serveur. Pour ce faire, une logique com­mer­ciale est écrite à l’intérieur d’un conteneur, celui-ci étant en­tiè­re­ment géré par l’in­ter­mé­diaire d’une pla­te­forme dédiée. Cette pla­te­forme s’utilise gé­né­ra­le­ment à partir du Cloud, mais ce modèle convient également aux dé­ploie­ments locaux et hybrides.

Sa par­ti­cu­la­rité ? Le FaaS cor­res­pond à un système réactif, contrôlé par des évé­ne­ments. Ces évé­ne­ments se dé­clenchent en fonction d’oc­cur­rences bien précises (comme un clic sur un bouton) en­traî­nant l’appel de la fonction définie à cet effet. Une fois l’appel effectué, le service attend la gé­né­ra­tion d’une nouvelle oc­cur­rence. Le fonc­tion­ne­ment d’une solution FaaS repose avant tout sur le lancement direct et sur l’exécution d’une réaction face à cette oc­cur­rence. Le té­lé­char­ge­ment d’un fichier image peut par exemple dé­clen­cher une réaction en­traî­nant au­to­ma­ti­que­ment la con­ver­sion du fichier dans un certain format.

Une in­fras­truc­ture capable de demander l’exécution de la logique Function as a Service doit nor­ma­le­ment être dis­po­nible à tout moment, sans nécessité de mise en œuvre de processus per­sis­tants en arrière-plan. Cela se répercute de façon positive sur les pos­si­bi­li­tés de mise à l’échelle : le four­nis­seur de services de Cloud assure la dis­po­ni­bi­lité des fonctions définies et la bonne af­fec­ta­tion des res­sources à la seconde près. Si les demandes entrantes diminuent, l’ap­pli­ca­tion descend d’un échelon en matière de mise à l’échelle. Avec le FaaS, toutes les res­sources utilisées sont facturées ; il n’y a donc aucun temps de veille.

En pratique, deux types d’ap­pli­ca­tions sont par­ti­cu­liè­re­ment adaptés à une mise en œuvre FaaS : les charges de travail dont l’exécution est rare, mais aussi les tran­sac­tions im­pli­quant des volumes im­por­tants.

Quelle est la dif­fé­rence entre le FaaS et le SaaS ?

La plus grande dif­fé­rence entre le FaaS et le SaaS réside dans le niveau des ap­pli­ca­tions de ces deux services de Cloud. Alors que le FaaS s’inscrit dans le mi­cro­cosme de l’en­vi­ron­ne­ment ap­pli­ca­tif et se limite à des fonctions simples, le logiciel en tant que service (SaaS) met des ap­pli­ca­tions complètes à la dis­po­si­tion de ses uti­li­sa­teurs.

Ces deux types de services ont toutefois un point commun : l’uti­li­sa­teur n’a pas à prévoir de serveur dédié pour les utiliser. Libéré de ses tâches de gestion et de main­te­nance, celui-ci peut allouer les res­sources ainsi libérées à d’autres projets et dé­ve­lop­pe­ments.

Google Drive ou Slack sont de parfaits exemples de solutions SaaS ; ces outils sont d’ailleurs utilisés par un grand nombre d’en­tre­prises pour leurs tâches quo­ti­diennes. Le plus souvent, les solutions SaaS sont clai­re­ment définies en ce qui concerne l’étendue de leurs fonctions. Ainsi, les dé­ve­lop­peurs ne peuvent exercer aucune influence sur d’éven­tuelles fonctions sup­plé­men­taires. En revanche, les dé­ve­lop­peurs utilisant le FaaS peuvent spécifier in­di­vi­duel­le­ment les fonctions sou­hai­tées selon les exigences exis­tantes.

Function as a Service : quels avantages et quels in­con­vé­nients ?

Avantages des solutions FaaS

  • Dé­ve­lop­pe­ment plus rapide : les dé­ve­lop­peurs gagnent du temps en n’ayant plus besoin de con­fi­gu­rer ou de gérer leurs serveurs. Toutes les capacités dis­po­nibles peuvent ainsi être allouées à l’écriture de logiques d’ap­pli­ca­tion, ce qui permet de dé­ve­lop­per celles-ci plus ra­pi­de­ment.
  • Évo­lu­ti­vité au­to­ma­tique : les solutions de FaaS sont évo­lu­tives par nature. Cela signifie qu’il n’est pas né­ces­saire de réfléchir à l’avance aux charges de travail (exprimées en volumes de données appelés ou en volumes d’uti­li­sa­tion). Toute mise à l’échelle né­ces­saire est au­to­ma­ti­que­ment prise en charge par le four­nis­seur, qui facture celle-ci à la seconde.
  • Struc­tures de coûts efficaces : pour les solutions Function as a Service, seules les fonctions appelées par les uti­li­sa­teurs sont facturées. Les res­sources éven­tuel­le­ment mises en réserve par l’uti­li­sa­teur n’en­traî­nent donc aucun coût sup­plé­men­taire.
  • Charge ad­mi­nis­tra­tive minimale : dans le cadre d’une solution FaaS, l’hé­ber­ge­ment du serveur ainsi que la gestion et la main­te­nance de l’in­fras­truc­ture du serveur ne relèvent pas de la res­pon­sa­bi­lité du dé­ve­lop­peur.
  • Liberté de pro­gram­ma­tion : il est gé­né­ra­le­ment possible d’utiliser les solutions FaaS avec tous les prin­ci­paux langages de pro­gram­ma­tion. Pour leur bonne mise en œuvre, aucune con­nais­sance sup­plé­men­taire n’est donc né­ces­saire dans ce domaine.

In­con­vé­nients des solutions FaaS

  • Pos­si­bi­li­tés de con­cep­tion limitées : comme l’in­fras­truc­ture et sa gestion relèvent de la res­pon­sa­bi­lité du four­nis­seur, les dé­ve­lop­peurs doivent tra­vail­ler à partir des systèmes déjà existants. Si vous souhaitez dé­ter­mi­ner vous-même l’in­fras­truc­ture de votre serveur tout en éco­no­mi­sant des res­sources pour la main­te­nance, n’hésitez pas à vous ren­seig­ner sur la solution Backend as a Service (BaaS).
  • Com­plexité accrue pour les tests : en fonction de votre four­nis­seur, il n’est pas toujours simple de trans­fé­rer votre code FaaS dans un en­vi­ron­ne­ment de test local. Pour tester votre ap­pli­ca­tion, vous pouvez donc avoir à utiliser davantage de res­sources.
Aller au menu principal