Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Cloud computing

Comprendre le Serverless Computing : Simplifier la Gestion d'Infrastructure

La gestion d'infrastructure ajoute une couche de complexité supplémentaire au flux de travail moderne de développement logiciel. Maintenir les serveurs en fonctionnement, gérer les mises à jour de sécurité et dimensionner les ressources prend du temps précieux aux équipes DevOps. Avec le serverless computing, toutes les opérations d'infrastructure sont gérées par le fournisseur de service. Ainsi, le serverless permet aux équipes de développement de se concentrer sur l'écriture de code plutôt que de passer trop de temps sur la gestion d'infrastructure.

Cet article explique ce qu'est le serverless computing et comment il se compare aux différents modèles de déploiement cloud. Nous explorerons également les avantages et inconvénients du serverless et discuterons de quelques cas d'utilisation courants.

Qu'est-ce que le Serverless Computing ?

Le serverless computing est une méthode de déploiement et d'exécution de code dans le cloud sans avoir à gérer le provisionnement de serveurs et la gestion d'infrastructure. Malgré son nom, le serverless repose toujours sur des serveurs cloud ou physiques pour l'exécution du code. Cependant, les développeurs ne se soucient pas de l'infrastructure sous-jacente. Cela est laissé au fournisseur serverless qui alloue dynamiquement les ressources de calcul nécessaires et les gère au nom de l'utilisateur.

Pour les développeurs, cela signifie zéro temps passé sur l'administration de serveurs, la maintenance, la mise à l'échelle des ressources ou la planification de capacité. Ils téléchargent simplement leur code et laissent le fournisseur exécuter la logique côté serveur basée sur différents événements ou requêtes. Contrairement aux modèles de facturation cloud familiers, les services serverless sont facturés en fonction du nombre de fois où le code est exécuté ou lorsqu'un certain événement est déclenché.

Comment Fonctionne le Serverless Computing ?

Dans un environnement serverless, le code est déclenché par des événements et exécuté en tant que fonction. C'est pourquoi le serverless est souvent associé aux « Functions-as-a-Service » ou FaaS, qui est un concept similaire. Le FaaS est un modèle cloud piloté par événements qui gère la logique côté serveur pour l'exécution du code sans aucune intervention de l'utilisateur. Ces événements peuvent être n'importe quoi, d'une simple requête HTTP, un appel API, à une requête de base de données ou un téléchargement de fichier.

Les fonctions sont exécutées dans des conteneurs sans état (stateless). Cela signifie que les ressources de calcul pour l'exécution d'une fonction sont provisionnées uniquement lorsqu'elle est invoquée. Aucune donnée n'est persistée en RAM ou écrite sur le disque. Une fois la requête satisfaite, l'état de l'application est réinitialisé et il n'y a pas de mémoire de la transaction. Une nouvelle requête appelle le provisionnement des ressources à partir de zéro et le code est exécuté sans aucune référence à l'invocation précédente.

Pour s'adapter à cet état sans état, les applications doivent être architecturées en tant que fonctions pouvant s'exécuter dans des conteneurs sans état. Cela est généralement réalisé via des microservices. Les grandes applications monolithiques sont décomposées en segments plus petits et interconnectées via une API. Les applications monolithiques peuvent encore s'exécuter en tant que fonctions uniques, mais ce n'est pas une pratique courante. Étant donné qu'un nouveau conteneur de calcul est provisionné à chaque requête, les grandes fonctions auront un impact négatif sur la vitesse et la durée d'exécution.

Les fonctions FaaS ne s'exécutent pas indéfiniment. Elles sont terminées après un certain temps après avoir été appelées. Dans la plupart des cas, les fonctions expirent après environ cinq minutes. Cela signifie que les applications qui exécutent des tâches de longue durée doivent être repensées pour tenir compte des limites de terminaison.

Le provisionnement et l'initialisation des conteneurs pour l'exécution de fonctions prennent également du temps. Cela est généralement mesuré en millisecondes. Cependant, les fonctions complexes peuvent prendre plusieurs secondes pour s'initialiser, entraînant une latence plus importante.

Il existe deux méthodes courantes pour initialiser une fonction — le démarrage à chaud (warm start) et le démarrage à froid (cold start). Un démarrage à chaud réutilise les ressources d'un événement précédent, tandis qu'un démarrage à froid déploie un nouveau conteneur. Le temps nécessaire pour initialiser et exécuter une fonction dépendra de la quantité de code, du langage de programmation, du nombre de bibliothèques utilisées par le script, ainsi que de nombreux autres facteurs. En termes de latence, un démarrage à froid prend plus de temps pour démarrer une fonction.

Comment le Serverless Computing se Compare-t-il au BaaS, PaaS et IaaS ?

Comme pour toute tendance logicielle, il n'y a pas de définition officielle qui décrit ce qu'est le serverless et ce qu'il n'est pas. C'est pourquoi le serverless computing est souvent confondu avec d'autres services cloud et modèles de déploiement. Le concept de serverless computing tourne autour de deux domaines similaires :

Backend-as-a-Service (BaaS) — Le BaaS permet aux développeurs de se concentrer sur l'écriture d'interfaces frontend tout en externalisant toutes les opérations backend à un fournisseur de service. Ces tâches en coulisses impliquent généralement l'authentification utilisateur prête à l'emploi, le stockage, la gestion de base de données et les services d'hébergement. De plus, les développeurs n'ont pas à gérer les serveurs exécutant leur backend, permettant des déploiements d'applications plus rapides.

Functions-as-a-Service (FaaS) — Ce modèle de service cloud serverless élimine la gestion d'infrastructure. Le fournisseur de service est chargé de déployer les ressources de calcul à la demande pour exécuter le code des utilisateurs. Cela se produit chaque fois qu'un événement ou une requête est déclenché. Les fonctions serverless s'exécutent dans des conteneurs sans état, ce qui signifie que les ressources de calcul sont déployées uniquement lorsque la fonction est invoquée.

Le principal point de confusion se situe entre Backend-as-a-Service et Platform-as-a-Service (PaaS). Le premier est une technique de serverless computing, tandis que le second est un modèle de déploiement cloud. Bien qu'ils partagent certaines caractéristiques de base, le PaaS n'est pas aligné avec les exigences du serverless.

Platform-as-a-Service (PaaS) — Avec le PaaS, les utilisateurs louent le matériel et les solutions logicielles nécessaires pour les charges de travail de développement auprès d'un fournisseur de service moyennant des frais d'abonnement. Cela permet aux développeurs de passer plus de temps à coder sans se soucier de la gestion d'infrastructure. D'autre part, le BaaS offre des fonctionnalités supplémentaires telles que l'authentification utilisateur prête à l'emploi, les bases de données gérées, les notifications par e-mail, etc. Le BaaS permet également aux développeurs de se concentrer uniquement sur la construction du frontend tout en intégrant divers services backend à la demande.

Infrastructure-as-a-Service (IaaS) — L'IaaS fait référence à une solution cloud en libre-service où le fournisseur héberge l'infrastructure au nom de l'utilisateur. Toutes les opérations de provisionnement et de gestion de serveurs, y compris l'installation de logiciels, sont gérées par l'utilisateur. Certains fournisseurs IaaS offrent également des solutions serverless mais en tant que produits distinctement différents.

Cas d'Utilisation Courants du Serverless Computing

Comme mentionné précédemment, le serverless n'est pas pour tout le monde. Mais si vos besoins correspondent à certains de ces cas d'utilisation, vous pourriez bénéficier du serverless.

Construction d'APIs

Sans serveurs à gérer, la construction d'APIs hautement évolutives et réactives est l'un des cas d'utilisation les plus populaires pour le serverless. La fonctionnalité d'auto-scaling du serverless garantit que les APIs seront toujours disponibles même sous un trafic intense. En plus de cela, l'utilisateur n'est pas facturé pour les ressources inactives lorsqu'il n'y a pas d'appels à l'API.

Sites Web et Applications

Le déploiement de sites web et d'applications web sur une plateforme serverless ne nécessite aucune configuration d'infrastructure préalable. Cela réduit considérablement le temps nécessaire pour lancer une application web pleinement fonctionnelle. La fonctionnalité d'auto-scaling joue également un rôle important ici car l'utilisateur n'a pas à se soucier du provisionnement de plus de serveurs pour supporter les augmentations de demande. En conséquence, il est beaucoup plus facile de maintenir 100% de disponibilité.

Applications Multi-Langages

Avec le serverless, une seule application peut être écrite en plusieurs langages. Le serverless permet aux développeurs de décomposer une application monolithique en parties plus petites et de les exécuter en tant que microservices. Ces microservices communiquent ensuite entre eux via une API. Chaque segment d'une application peut être écrit en utilisant un langage de programmation différent.

Pipelines CI/CD

L'automatisation est la clé pour exécuter des pipelines de développement, de test et d'intégration réussis. Le serverless permet aux développeurs de tester automatiquement le code et de corriger les bugs plus rapidement. Puisque le serverless est basé sur les événements, les utilisateurs peuvent définir des événements pour déclencher des tests automatisés sans aucune intervention manuelle.

Quels Sont les Avantages du Serverless Computing ?

Comparé au cloud computing traditionnel orienté serveur, le serverless computing abstrait les opérations d'infrastructure. Tout fonctionne out-of-the-box ce qui garantit des livraisons de code plus rapides et une évolutivité automatisée à un prix inférieur.

Voici les trois avantages les plus courants du serverless :

Auto-Scaling

Le fournisseur serverless met à l'échelle les ressources d'infrastructure en fonction de la demande. Les opérations de mise à l'échelle sont effectuées de manière dynamique et automatique sans aucune intervention des développeurs.

Time-to-Market Accéléré

Sans avoir besoin de provisionner des clusters de serveurs complexes, les développeurs peuvent se concentrer davantage sur l'atteinte d'une vélocité de publication plus élevée. Cela accélère le temps nécessaire pour publier du code en production ou implémenter des changements de code incrémentaux, résultant en une livraison plus rapide des applications aux clients.

Coûts Optimisés

Puisque tout est provisionné à la demande, les organisations n'ont jamais à payer pour de l'espace de stockage inutilisé, du temps de calcul ou du réseau. La consommation des services serverless est généralement mesurée en millisecondes et facturée en conséquence.

Quels Sont les Inconvénients du Serverless Computing ?

Comme pour toute solution logicielle, le serverless a aussi ses inconvénients. Mais selon l'application que vous construisez, vous pourriez ne pas être si préoccupé par certains de ces inconvénients du serverless.

Latence

Lors de l'exécution d'une fonction, les fournisseurs serverless déploient automatiquement les ressources nécessaires à chaque invocation. Selon la taille de la charge de travail, les conteneurs sont généralement provisionnés en millisecondes mais peuvent même prendre plusieurs secondes. La latence peut être réduite via des « warm starts » qui réutilisent des instances d'une exécution précédente.

Durée d'Exécution

Le temps d'exécution d'une fonction serverless est limité et s'arrête après une certaine période. Cela est généralement d'environ cinq minutes après l'invocation mais varie selon les fournisseurs. Les limites d'exécution sont un inconvénient majeur pour les applications qui initient des processus de longue durée. Atténuer ce problème est possible en segmentant le code en morceaux plus petits et en les exécutant en tant que microservices.

Vendor Lock-In

Les fournisseurs utilisent généralement des technologies propriétaires pour activer leurs services serverless. Cela peut causer des problèmes pour les utilisateurs qui souhaitent migrer leurs charges de travail vers une autre plateforme. Lors du passage à un autre fournisseur, des modifications du code et de l'architecture de l'application sont inévitables.

Sécurité

Les utilisateurs ont peu de contrôle sur la configuration de l'instance exécutant leur code. Cela est caché à l'utilisateur et relève du domaine du fournisseur de service. En tant que tel, les opérations de sécurité relèvent également des mains du fournisseur. L'utilisateur est impuissant si une attaque se produit, comptant uniquement sur le fournisseur pour atténuer les dommages et récupérer le système. Les applications qui ont plusieurs points d'entrée dans un environnement serverless sont plus sujettes aux vulnérabilités en raison d'une surface d'attaque accrue.

Quel Avenir pour le Serverless Computing ?

Le serverless computing est encore une technologie relativement nouvelle. Son avenir dépend de la capacité des fournisseurs de services à résoudre certains des inconvénients énumérés ci-dessus — le plus important étant les cold starts. Les fournisseurs doivent réduire le temps nécessaire pour exécuter une fonction après qu'elle ait été en état d'inactivité pendant un certain temps. Résoudre ce problème diminuera la latence et garantira une expérience utilisateur fluide.

Le serverless repose actuellement sur des conteneurs sans état pour l'exécution des fonctions. L'avenir du serverless évolue vers la possibilité pour les applications avec état (stateful) de tirer parti des avantages du serverless. Cela permettra aux développeurs de construire des applications avec état sans se soucier de la gestion des données backend.

En termes de DevOps, le serverless mènera à l'expansion du NoOps. Cette tendance conduira les fournisseurs serverless à gérer toutes les opérations d'infrastructure au nom du client. Dans un tel contexte, il n'y a pas besoin pour les entreprises d'avoir des équipes d'opérations internes.

Dans les années à venir, Kubernetes devrait devenir la base du serverless. Avec le support du réseau, de l'auto-scaling agile et des déploiements multi-cloud, la portabilité de Kubernetes améliore le serverless computing à bien des égards. L'exécution de certaines classes d'applications en serverless est impraticable car les fournisseurs de services limitent parfois leur comportement. Avec Kubernetes, les développeurs pourront surmonter ces limitations et construire des plateformes serverless basées sur leurs besoins spécifiques.

Conclusion

Même si le nom suggère l'absence de serveurs, le serverless computing repose toujours sur des serveurs cloud ou physiques. C'est un modèle de calcul qui élimine les opérations d'infrastructure, permettant aux développeurs de se concentrer sur l'écriture et le déploiement d'applications. Le modèle serverless tourne autour de deux domaines clés : Backend-as-a-Service et Functions-as-a-Service.

Le premier fournit aux utilisateurs une architecture backend prête à l'emploi, tandis que le second permet d'exécuter des applications dans des conteneurs sans état. Ces conteneurs sont provisionnés automatiquement en fonction d'événements ou de déclencheurs. En tant que tel, le serverless n'est pas une solution miracle pour tous les problèmes de développement actuels. Il est principalement orienté vers les applications non monolithiques qui emploient une architecture basée sur les microservices.

Cloud computing

  1. L'informatique sans serveur : la nouvelle génération d'innovation « as a Service »
  2. Meilleurs cours Cloud Computing 2026 : des fondamentaux AWS au MicroMasters du Maryland
  3. Big Data et Cloud Computing : Comment ils fonctionnent ensemble
  4. Principaux Défis Limitant l'Adoption du Serverless — Ce Qu'il Faut Savoir
  5. Cloud Computing vs On-Premise : quelle infrastructure convient le mieux à votre entreprise ?
  6. Qu'est-ce que l'acier A2 ? Une nuance d'acier à outils polyvalente et rentable pour applications industrielles et menuiserie
  7. Edge Computing expliqué : Pourquoi c'est crucial pour les entreprises modernes
  8. Qu'est-ce que l'informatique quantique ? Guide pour débutants
  9. Code HS pour pompe hydraulique : classification et utilisation