Cloud Cybersécurité

Definition Serverless Computing

Definition Serverless Computing

⌚: 6 minutes

Le serverless computing est un paradigme de conception et de déploiement d’applications pilotées par les événements, dans lequel les ressources informatiques sont fournies sous forme de services en Cloud évolutifs. Dans les déploiements d’applications traditionnels, les ressources informatiques du serveur représentent des coûts fixes et récurrents, quelle que soit la quantité de travail informatique réellement effectuée par le serveur. Dans un déploiement informatique sans serveur, le client du Cloud ne paie que pour l’utilisation du service ; il n’y a jamais de coût associé aux temps d’inactivité et d’arrêt.

Le serverless computing n’élimine pas les serveurs, mais cherche plutôt à mettre l’accent sur l’idée que les considérations relatives aux ressources informatiques peuvent être reléguées à l’arrière-plan pendant le processus de conception. Les développeurs peuvent ajouter du code, créer des applications dorsales, créer des routines de traitement des événements et traiter les données, tout cela sans se soucier des serveurs, des machines virtuelles ou des ressources informatiques sous-jacentes, car le matériel et l’infrastructure sont tous gérés par le fournisseur.

L’expression « informatique sans serveur » est souvent associée au mouvement NoOps et le concept peut également être appelé « informatique Cloud sans serveur », « fonction en tant que service » (FaaS) ou « exécution en tant que service » (RaaS).

 

Comment fonctionne le serverless computing

Avec le serverless computing, les développeurs n’ont pas à s’occuper de la gestion des instances de machines dans le Cloud. Au lieu de cela, ils peuvent exécuter du code sur des serveurs en Cloud sans avoir à configurer ou à entretenir les serveurs. La tarification est basée sur la quantité réelle de ressources consommées par une application, plutôt que sur des unités de capacité achetées à l’avance.

En général, si les développeurs hébergent leurs applications sur des serveurs virtuels basés dans le Cloud , ils doivent configurer et gérer ces serveurs, y installer des systèmes d’exploitation, les surveiller et mettre à jour les logiciels en permanence.

Avec le modèle sans serveur, un développeur peut écrire une fonction dans son langage de programmation préféré et la poster sur une plateforme sans serveur. Le fournisseur de services en Cloud gère l’infrastructure et le logiciel et mappe la fonction à un point d’extrémité API, en mettant à l’échelle de manière transparente les instances de la fonction à la demande.

 

Le rôle du serverless computing dans la transformation numérique

Le serverless computing joue un rôle important dans la transformation numérique. Tout d’abord, il permet aux développeurs d’être plus productifs en les aidant à se concentrer sur l’écriture de code ayant une valeur commerciale, sans avoir à se soucier de l’infrastructure sous-jacente qui supportera le code. Quelle que soit l’industrie ou la taille de l’entreprise, une stratégie de serverless computing peut contribuer à accroître la productivité des développeurs en éliminant les frais de gestion.

Les caractéristiques d’un environnement de développement logiciel sans serveur sont les suivantes :

  • Gestion sans serveur
  • L’adaptation automatique pour répondre à l’évolution de la demande de trafic
  • Une sécurité intégrée gérée

Les organisations devraient rechercher des plateformes sans serveur qui les aident à développer des applications de bout en bout, en exploitant des services de bases de données, de stockage, de messagerie, d’analyse de données, d’apprentissage automatique et d’assistants intelligents.

Certains services en Cloud sans serveur offrent une évolutivité et des économies, mais créent des complexités supplémentaires, comme des temps d’exécution limités ou le verrouillage des fournisseurs, ce qui est également une considération importante lors du choix d’une architecture sans serveur.

Les développeurs sont souvent confrontés à un compromis difficile entre la facilité d’utilisation et la rapidité du sans serveur VS  la flexibilité et la portabilité des conteneurs. C’est pourquoi la plupart des organisations bénéficient d’une approche de type « full stack », plutôt que de limiter le serverless aux fonctions de calcul.

 

Avantages et inconvénients du serverless computing

Parmi les avantages du serverless computing, on peut citer :

  • Rentabilité – Les utilisateurs et les développeurs n’ont qu’à payer pour le temps d’exécution du code sur une plateforme de calcul sans serveur. Ils n’ont pas à payer pour des machines virtuelles inactives.
  • Facile à déployer – Les développeurs peuvent déployer des applications en quelques heures ou quelques jours plutôt qu’en plusieurs semaines ou mois.
  • Évolution automatique – Les fournisseurs de services en Cloud gèrent l’augmentation ou la diminution de la taille des applications lorsque le code ne tourne pas.
  • Productivité accrue des développeurs – Les développeurs peuvent passer la majeure partie de leur temps à écrire et à développer des applications, au lieu de s’occuper des serveurs et des temps d’exécution.

Les inconvénients du serverless computing sont notamment les suivants :

  • Verrouillage des fournisseurs – Il peut être difficile de changer de fournisseur de cloud computing car la manière dont les services sans serveur sont fournis peut varier d’un fournisseur à l’autre.
  • Manque d’efficacité pour les applications de longue durée – L’utilisation de tâches longues peut parfois coûter beaucoup plus cher que l’exécution d’une charge de travail sur une machine virtuelle ou un serveur dédié.
  • Latence – Il y a un retard dans le temps qu’il faut à une plateforme évolutive sans serveur pour traiter une fonction pour la première fois, souvent connu sous le nom de « cold start ».
  • Le débogage est plus difficile – Comme une instance sans serveur crée une nouvelle version d’elle-même à chaque fois qu’elle tourne, il est difficile d’accumuler les données nécessaires pour déboguer et réparer une fonction .

 

Cas d’utilisation du serverless computing

Il existe un certain nombre de cas d’utilisation du serverless computing, notamment :

  • L’informatique événementielle – Pour les scénarios qui impliquent de nombreux appareils accédant à divers types de fichiers, comme les téléphones portables et les PC qui téléchargent des vidéos, des fichiers texte et des images.
  • Traitement des données de l’internet des objets (IoT) – le serverless computing permet de combiner et d’analyser des données provenant de divers appareils, puis de déclencher les événements souhaités, offrant ainsi un moyen très fonctionnel et moins coûteux de gérer l’IdO.
  • Tâches d’arrière-plan pour les applications mobiles ou les sites web – Une fonction sans serveur peut prendre une requête, par exemple pour des informations provenant d’une base de données d’utilisateurs, à partir du front end du site ou de l’application, récupérer les informations et les remettre à l’avant.
  • Processus d’arrière-plan à volume élevé – La fonction sans serveur peut être utilisée pour transférer des données vers un stockage à long terme, les convertir, les traiter et les analyser, et transférer les mesures vers un service d’analyse.
  • Les fournisseurs et langues du serverless computing sont nombreux

Parmi les principaux fournisseurs d’informatique sans serveur, on trouve :

  • Google Cloud Functions. Publié par Google en 2017, il prend en charge JavaScript, Python et Go de Node.js, mais permet un temps d’exécution illimité pour les fonctions. Google Cloud Functions peut également interagir avec de nombreux autres services Google, permettant aux développeurs de créer et de gérer rapidement des applications d’entreprise complexes sans pratiquement aucune considération pour les serveurs sous-jacents.
  • IBM Cloud Functions. Basé sur Apache OpenWhisk, il prend en charge JavaScript (Node.js), Swift et Cloudflare Workers, qui exécute des fonctions écrites en JavaScript ainsi que tout langage pouvant être compilé en WebAssembly.
  • AWS Lambda. Introduit en 2014, il s’agit d’une offre FaaS d’Amazon Web Services (AWS). Les fonctions Lambda d’AWS peuvent être écrites en Java, Go, PowerShell, Node.js JavaScript, C#, Python et Ruby.
  • Fonctions Azure de Microsoft. Microsoft a lancé Azure Functions en 2016 pour concurrencer AWS Lambda. Il prend en charge Bash, Batch, C#, F#, Java, JavaScript (Node.js), PHP, PowerShell, Python et TypeScript.

 

Outils de développement

Il existe un certain nombre d’outils de fournisseurs tiers que les développeurs peuvent utiliser lorsqu’ils travaillent avec du serverless computing, notamment :

  • LambCI – Un paquet qui peut être téléchargé sur AWS Lambda pour apporter une intégration continue (CI) au serverless computing.
  • Clay – Un registre pour les microservices qui peut être utilisé pour créer instantanément un HTTPS
  • Node Lambda – Créé en 2009 en tant que projet open source, il s’agit d’un outil en ligne de commande qui aide les développeurs JavaScript à partager des modules de code conditionnés. Il permet aux développeurs d’exécuter et de déployer localement leurs applications Node.js sur AWS Lambda.
  • Gordon – Une plateforme open source qui permet aux développeurs de créer, câbler et déployer des fonctions AWS Lambda en utilisant CloudFormation.
  • Back& – Une plateforme unique qui permet aux développeurs d’exécuter des applications multi-cloud et sans serveur. Elle fournit une base de données comme un service (DBaaS), une fonction comme un service (FaaS), une sécurité comme un service (SaaS) et une intégration comme un service (IaaS).

Ecrire un commentaire