Qu'est-ce qu'une fonction sans serveur ?
Published: 2024-02-07 14:13:44

Définition des fonctions sans serveur
-------------------------------------

Les fonctions sans serveur sont des fonctions programmatiques à usage unique qui sont hébergées sur une infrastructure gérée par des [sociétés de cloud computing](https://www.pubnub.com/solutions/enterprise-software/). Ces fonctions sont invoquées via Internet et sont conçues pour automatiser les flux de travail, réduire la latence et fournir des capacités informatiques à la demande. Ces architectures sans serveur sont maintenues par des équipes d'ingénieurs pour garantir un temps de disponibilité quasi parfait, des instances redondantes dans le monde entier et une évolutivité à tout volume de demande réseau entrant.

**Qui crée les fonctions sans serveur ?**
-----------------------------------------

Les fonctions sans serveur sont créées par des développeurs de logiciels qui font passer le code de leurs produits sur des plateformes sans serveur afin de tirer parti des avantages de l'informatique sans serveur. Ce ne sont pas les sociétés de cloud computing elles-mêmes qui créent ces fonctions, mais leurs clients.

**Quel est l'avantage des fonctions et services sans serveur ?**
----------------------------------------------------------------

Les fonctions et services sans serveur offrent de nombreux avantages, notamment une meilleure maintenance du code, un hébergement rentable et la tranquillité d'esprit résultant de leur exécution sur une infrastructure gérée. Ce paradigme devient rapidement populaire en raison de ces avantages, et le déploiement d'un nouveau code est **plus rapide, plus simple et facilement automatisé**.

### **Quel est un exemple de fonction sans serveur ?**

Tous les principaux fournisseurs de cloud proposent des fonctions serverless :

-   [PubNub Functions](https://www.pubnub.com/docs/serverless/functions/overview)
    
-   Google Cloud Functions
    
-   AWS Lambda
    
-   Azure Functions
    

**Infrastructure sans serveur : Architecture monolithique vs. architecture microservice**
-----------------------------------------------------------------------------------------

Les fonctions sans serveur peuvent être considérées comme des microservices, un concept populaire dans l'environnement sans serveur. Le passage des plateformes monolithiques aux microservices encapsulés suscite un engouement croissant dans la communauté des développeurs de logiciels.

Pourquoi les entreprises utilisent-elles des fonctions et des architectures sans serveur ?
------------------------------------------------------------------------------------------

Historiquement, les monolithes ont de grandes bases de code unifiées, qui nécessitent un déploiement complet de l'ensemble de la plateforme pour tout envoi de nouveau code. Cela inclut les nouvelles fonctionnalités, mais aussi les corrections de bugs sur une seule ligne.

Les monolithes peuvent être pratiques dans certaines situations, mais lorsque la base de code d'une plateforme atteint le stade où l'équipe de développement est nombreuse, certaines tâches deviennent encombrantes.

Une architecture de microservices améliore la maintenabilité des bases de code et améliore l'expérience globale du développeur pour les équipes de développement de logiciels. Les microservices permettent à une grande organisation d'ingénierie de se segmenter en équipes autonomes faiblement couplées. Chaque équipe peut concentrer son attention sur quelques microservices qui fonctionnent indépendamment du reste de la plateforme. Il est à noter que si les microservices peuvent être maintenus de manière quelque peu indépendante, ils n'en restent pas moins des acteurs d'une équipe unifiée.

Grâce à l'architecture des microservices, les nouveaux développeurs peuvent être intégrés rapidement aux projets d'ingénierie, car ils n'ont pas besoin de comprendre en profondeur un monolithe entier pour commencer à apporter des contributions substantielles. Un autre avantage des microservices est que le déploiement de petites mises à jour de code pour des services uniques n'entraîne que peu ou pas de temps d'arrêt pour les clients. Lorsqu'un monolithe a besoin de mises à jour de code, cela peut signifier que tous les clients subissent un temps d'arrêt pendant la durée d'une fonction de déploiement sans serveur.

![](https://www.pubnub.com/cdn/3prze68gbwl1/asset-17suaysk1qa1jko/0d543200d97bf5ea3eb3d71a4ba3037e/monolith-microservices.png)

**Fonctions sans serveur et fonctions en tant que service (FaaS)**
------------------------------------------------------------------

Les éléments magiques des fonctions sans serveur sont la mise à l'échelle automatique et les déploiements de code redondants. Cela signifie qu'un développeur d'applications peut se préoccuper d'une seule chose : écrire un excellent code d'application. Les fournisseurs d'hébergement en nuage appellent cette offre de produits "Functions-as-a-Service", ou [FaaS](https://www.pubnub.com/learn/glossary/what-is-serverless-compute/) en abrégé.

Avec l'hébergement d'applications classique, les développeurs de logiciels doivent constamment se poser les questions suivantes lorsqu'ils écrivent leur code :

-   Mes serveurs répondront-ils à toutes les demandes des clients, avec une très faible latence, quel que soit l'emplacement physique de chaque client ?
    
-   Est-ce que je crée une marge d'erreur humaine dans mon processus de déploiement du code ?
    
-   Mes serveurs peuvent-ils faire face à des augmentations soudaines du volume des demandes sans être surchargés ?
    
-   Mes serveurs peuvent-ils faire face à des augmentations soudaines du volume des demandes sans gaspiller beaucoup d'argent ?
    
-   Dois-je surveiller en permanence l&#8217infrastructure de mon application ? J'aime bien dormir 8 heures par nuit.
    

**Ces questions ne s'appliquent pas lorsqu'un système logiciel est construit sur une plateforme avec des fonctions sans serveur**.

Le code des fonctions sans serveur devrait avoir une logique entièrement sans état, de sorte que les instances redondantes ne causeront pas d'incohérences pour les clients. Les fournisseurs d'hébergement en nuage ont généralement de nombreux points de présence dans le monde entier. Cela signifie que les serveurs sur lesquels tourne une application sont les plus proches de tous les utilisateurs finaux possibles. Le fournisseur d'hébergement cloud déploiera de manière redondante une fonction sans serveur dans des centres de données du monde entier, au même moment. C'est une bonne chose pour les clients d'un développeur, car leurs demandes côté client seront traitées avec le moins de latence possible. Toute la logique de mise en réseau est mise en œuvre par le fournisseur de cloud.

**Google et AWS Serverless Functions avec les plateformes d'hébergement cloud**
-------------------------------------------------------------------------------

Les fournisseurs d'hébergement cloud qui proposent des fonctions Serverless utilisent les meilleures pratiques standard de l'industrie pour le déploiement automatisé du code. Cela signifie qu'il n'y a aucun risque qu'une erreur humaine casse un service pendant le déploiement et cela permet d'expédier rapidement le nouveau code, avec peu ou pas de temps d'arrêt pour un produit web.

L'une des caractéristiques les plus précieuses de l'hébergement Serverless Function est l'autoscaling (mise à l'échelle automatique). Les fournisseurs d'hébergement cloud ont fait des coûts des serveurs inactifs une chose du passé pour leurs clients. Grâce à des logiciels comme Kubernetes, les services peuvent programmer la mise à l'échelle de leur infrastructure de manière automatisée. Ce nouveau type d'infrastructure "élastique" rend l'hébergement plus efficace, ce qui se traduit par d'importantes économies pour les entreprises qui achètent de l'hébergement en nuage.

**Fournisseurs FaaS et exemples de fonctions sans serveur**
-----------------------------------------------------------

Les sociétés d'hébergement en nuage proposent des plateformes FaaS à la pointe de la technologie. Les coûts des serveurs diminuent pour les consommateurs du monde entier, car les grandes entreprises technologiques construisent de plus en plus de fermes de serveurs. Cependant, tous les services FaaS ne se valent pas. Les plateformes FaaS ne sont pas comme la compagnie de téléphone. Chaque plateforme a des scénarios uniques dans lesquels elle brille.

### **Fonctions sans serveur AWS Lambda**

AWS[Lambda](https://aws.amazon.com/lambda/) est un environnement de fonctions sans serveur sur Amazon Web Services. Les langages de programmation pris en charge sont Java, Go, PowerShell, Node.js, C#, Python, Ruby, Rust et PHP. Il est idéal pour les opérations de calcul à la demande comme le traitement de fichiers.

### **Azure Functions Fonctions sans serveur**

[Azure Functions](https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview) est un environnement de fonctions sans serveur sur Microsoft Azure. Les langages de programmation pris en charge sont C#, F#, Java, Python, JavaScript et TypeScript. Il est idéal pour créer des API à usage unique afin d'ajouter des fonctionnalités à une plateforme, par exemple en fournissant un point de terminaison pour stocker en toute sécurité les données d'une application.

### **Google Cloud Serverless Functions**

[Google Cloud Functions](https://cloud.google.com/functions/) est un environnement de fonctions sans serveur sur Google Cloud Platform. Les langages de programmation pris en charge sont JavaScript, Python, Go, .NET (C#), Ruby et PHP. Google Cloud Functions fournit un calcul sans serveur qui interagit succinctement avec d'autres services Google Cloud et applications clientes. Elles sont idéales pour les scénarios dans lesquels le traitement des données est essentiel, comme l'extraction de données pertinentes à partir d'images et de vidéos.

### **Fonctions**

[Functions](https://www.pubnub.com/products/functions/) est un environnement sans serveur qui permet d'exécuter des fonctions à la périphérie, en transformant, enrichissant et filtrant les messages lorsqu'ils transitent par le réseau PubNub à l'aide de JavaScript. Cette plateforme sans serveur diffère fondamentalement des autres car le gestionnaire d'événements de Function s'exécute en réponse à un événement de PubNub, par exemple lorsqu'un message est publié avec l'[API Pub/Sub de PubNub](https://www.pubnub.com/docs/serverless/functions/overview).

Un développeur peut exécuter du code sur un message PubNub en transit après sa publication, mais avant que le message n'atteigne un abonné. Il existe d'autres configurations d'exécution, notamment le non-blocage après la publication et un point d'accès à l'API REST auquel on peut accéder comme à un serveur Node.js. L'état peut être géré à l'aide d'un [KV-Store](https://www.pubnub.com/docs/serverless/functions/functions-apis/kvstore-module) construit dans l'environnement des fonctions. Il existe également un catalogue d'intégrations tierces open source sur le [PubNub Functions Catalog](https://www.pubnub.com/integrations/).

**Quel fournisseur sans serveur dois-je utiliser pour mon service ?**
---------------------------------------------------------------------

La réponse à cette question dépend du type de service qui doit être construit. Comme vous pouvez le voir avec les fournisseurs décrits ci-dessus, il y a différents langages de programmation qui sont utilisables, en fonction du cloud. L'élément le plus important à prendre en compte lors de la sélection d'un fournisseur est le suivant : quels sont les attributs critiques pour mon service ?

Les plus grandes entreprises de cloud (AWS, Azure, Google) proposent des solutions d'informatique sans serveur évolutives et rentables, conçues pour répondre à une grande variété de cas d'utilisation avec leurs produits de cloud génériques. Ces plateformes sans serveur simplifient la gestion de l'infrastructure et offrent une évolutivité à la demande pour les applications. Cependant, des entreprises comme PubNub se spécialisent dans la résolution de points douloureux spécifiques pour les développeurs, en particulier dans les cas d'utilisation en temps réel. Grâce à son environnement serverless unique, PubNub excelle par rapport aux produits serverless génériques exclusivement dans les scénarios en temps réel.

Les fonctions sans serveur de PubNub offrent une exécution à latence incroyablement faible, ce qui en fait la solution idéale pour les applications en temps réel telles que le chat, la localisation GPS, la signalisation IoT, les jeux multijoueurs, et bien plus encore. Ces fonctions, qui automatisent l'exécution du code de l'application en réponse à des événements, sont faciles à construire et à déployer, réduisant ainsi le temps de mise sur le marché. De plus, PubNub prend désormais en charge JavaScript et TypeScript pour le développement de fonctions, offrant ainsi plus de flexibilité aux développeurs.

Si vos cas d'utilisation impliquent des calculs lourds, nécessitent des langages qui ont besoin d'un accès au système d'exploitation et ne sont pas sensibles à la latence, vous trouverez peut-être que les offres étendues sans serveur des grands hébergeurs de cloud comme AWS, Azure et Google sont plus adaptées. Ces fournisseurs prennent en charge un large éventail de langages de programmation, notamment Node.js, Python, Java, Rust, PHP, .NET (C#), Ruby, etc.

Pour une comparaison complète de PubNub Functions et d'AWS Lambda, consultez notre [article de blog](https://www.pubnub.com/blog/comparing-pubnub-functions-vs-aws-lambda-functions/) qui fournit des informations approfondies sur le choix du bon fournisseur serverless pour votre entreprise.

Il convient également de noter que lorsqu'il s'agit d'applications sans serveur, la sécurité est un aspect crucial à prendre en compte. Soyez assuré que l'environnement serverless de PubNub donne la priorité à la sécurité des données, en offrant des mécanismes d'authentification robustes et des points d'extrémité d'API sécurisés pour protéger vos données.

En conclusion, que vous soyez une startup à la recherche d'une solution serverless rentable ou une [entreprise établie](https://www.pubnub.com/Solutions/Enterprise/) cherchant à tirer parti de la puissance de l'architecture serverless pour les applications critiques, la compréhension des forces et des capacités des différents fournisseurs serverless peut vous aider à prendre une décision éclairée.

Comment PubNub peut-il vous aider ?
===================================

Cet article a été publié à l'origine sur [PubNub.com.](https://www.pubnub.com/blog/what-is-a-serverless-function/)

Notre plateforme aide les développeurs à construire, fournir et gérer l'interactivité en temps réel pour les applications web, les applications mobiles et les appareils IoT.

La base de notre plateforme est le réseau de messagerie en temps réel le plus grand et le plus évolutif de l'industrie. Avec plus de 15 points de présence dans le monde, 800 millions d'utilisateurs actifs mensuels et une fiabilité de 99,999 %, vous n'aurez jamais à vous soucier des pannes, des limites de concurrence ou des problèmes de latence causés par les pics de trafic.

Découvrez PubNub
----------------

Découvrez le [Live Tour](https://www.pubnub.com/tour/introduction/) pour comprendre les concepts essentiels de chaque application alimentée par PubNub en moins de 5 minutes.

S'installer
-----------

Créez un [compte PubNub](https://admin.pubnub.com/signup/) pour un accès immédiat et gratuit aux clés PubNub.

Commencer
---------

La [documentation PubNub](https://www.pubnub.com/docs) vous permettra de démarrer, quel que soit votre cas d'utilisation ou votre [SDK](https://www.pubnub.com/docs).