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

Qu'est-ce que l'informatique sans serveur ?

La gestion de l'infrastructure ajoute une couche supplémentaire de complexité au workflow de développement de logiciels moderne. Maintenir les serveurs opérationnels, s'occuper des mises à jour de sécurité et faire évoluer les ressources prend un temps précieux aux équipes DevOps. Avec l'informatique sans serveur, toutes les opérations d'infrastructure sont gérées par le fournisseur de services. En tant que tel, le sans serveur permet aux équipes de développement de se concentrer sur l'écriture de code plutôt que de consacrer trop de temps à la gestion de l'infrastructure.

Cet article explique ce qu'est l'informatique sans serveur et comment elle se compare aux différents modèles de déploiement cloud. Nous explorerons également les avantages et les inconvénients du sans serveur et parlerons de certains cas d'utilisation courants.

Qu'est-ce que l'informatique sans serveur ?

L'informatique sans serveur est une méthode de déploiement et d'exécution de code dans le cloud sans s'occuper du provisionnement du serveur et de la gestion de l'infrastructure. Malgré son nom, le serverless repose toujours sur des serveurs cloud ou physiques pour l'exécution de code. Cependant, les développeurs ne sont pas concernés par l'infrastructure sous-jacente. Cela est laissé au fournisseur sans serveur 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 consacré à l'administration du serveur, à la maintenance, à la mise à l'échelle des ressources ou à la planification des capacités. Ils téléchargent simplement leur code et laissent le fournisseur exécuter la logique côté serveur en fonction de différents événements ou demandes. Contrairement aux modèles de facturation cloud habituels, les services sans serveur sont facturés en fonction du nombre d'exécutions du code ou du déclenchement d'un certain événement.

Comment fonctionne l'informatique sans serveur ?

Dans un environnement sans serveur, le code est déclenché par des événements et exécuté en tant que fonction. C'est pourquoi le sans serveur est souvent associé aux "Functions-as-a-Service" ou FaaS, qui est un concept similaire. FaaS est un modèle cloud piloté par les é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 aller d'une simple requête HTTP à un appel d'API, en passant par une requête de base de données ou le téléchargement d'un fichier.

Les fonctions sont exécutées dans des conteneurs sans état. Cela signifie que les ressources de calcul pour l'exécution d'une fonction sont provisionnées uniquement lorsqu'elles sont appelées. Aucune donnée n'est conservée dans la RAM ou écrite sur le disque. Une fois la demande satisfaite, l'état de l'application est réinitialisé et il n'y a plus de mémoire de la transaction. Faire une nouvelle demande demande que les ressources soient provisionnées à 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. Ceci est généralement réalisé via des microservices. Les grandes applications monolithes sont décomposées en segments plus petits et interconnectées via une API. Les applications Monolith peuvent toujours fonctionner en tant que fonctions uniques, mais ce n'est pas une pratique courante. Sachant qu'un nouveau conteneur de calcul est provisionné à chaque requête, les fonctions volumineuses auront un impact négatif sur la vitesse et la durée d'exécution.

Les fonctions FaaS ne fonctionnent pas indéfiniment. Ils sont résiliés après un certain temps après avoir été appelés. 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 résiliation.

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

Il existe deux méthodes courantes pour initialiser une fonction :le démarrage à chaud et le démarrage à froid. Un démarrage averti 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 l'informatique sans serveur se compare-t-elle à BaaS, PaaS et IaaS ?

Comme pour toute tendance logicielle, il n'existe pas de définition officielle décrivant ce qu'est le sans serveur et ce qu'il n'est pas. C'est pourquoi l'informatique sans serveur est souvent confondue avec d'autres services cloud et modèles de déploiement. Le concept d'informatique sans serveur s'articule autour de deux domaines similaires :

Backend en tant que service — BaaS permet aux développeurs de se concentrer sur l'écriture d'interfaces frontend tout en déchargeant toutes les opérations backend sur un fournisseur de services. Ces tâches en coulisse impliquent généralement des services prêts à l'emploi d'authentification des utilisateurs, de stockage, de gestion de base de données et d'hébergement. De plus, les développeurs n'ont pas à gérer les serveurs exécutant leur backend, ce qui permet des déploiements d'applications plus rapides.

Fonctions en tant que service — Ce modèle de service cloud sans serveur supprime la gestion de l'infrastructure. Le fournisseur de services est chargé de déployer des ressources de calcul à la demande pour exécuter le code des utilisateurs. Cela se produit chaque fois qu'un événement ou une demande est déclenché. Les fonctions sans serveur s'exécutent dans des conteneurs sans état, ce qui signifie que les ressources de calcul ne sont déployées que lorsque la fonction est invoquée.

Le principal point de confusion est entre Backend-as-a-Service et Platform-as-a-Service (PaaS). La première est une technique d'informatique sans serveur, tandis que la seconde est un modèle de déploiement cloud. Même s'ils partagent certaines caractéristiques de base, le PaaS n'est pas aligné sur les exigences du sans serveur.

Plate-forme en tant que service — Avec PaaS, les utilisateurs louent les solutions matérielles et logicielles nécessaires aux charges de travail de développement auprès d'un fournisseur de services moyennant des frais d'abonnement. Il permet aux développeurs de passer plus de temps à coder sans se soucier de la gestion de l'infrastructure. D'autre part, 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. BaaS permet également aux développeurs de se concentrer uniquement sur la création du frontend tout en intégrant divers services backend à la demande.

Infrastructure en tant que service — IaaS fait référence à une solution cloud en libre-service où le fournisseur héberge l'infrastructure pour le compte de l'utilisateur. Toutes les opérations d'approvisionnement et de gestion du serveur, y compris l'installation du logiciel, sont gérées par l'utilisateur. Certains fournisseurs d'IaaS proposent également des solutions sans serveur, mais en tant que produits distincts.

Cas d'utilisation courants de l'informatique sans serveur

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 sans serveur.

Construire des API

Sans serveur à gérer, la création d'API hautement évolutives et réactives est l'un des cas d'utilisation les plus populaires du sans serveur. La fonction de mise à l'échelle automatique du sans serveur garantit que les API seront toujours disponibles même en cas de trafic important. De plus, l'utilisateur n'est pas facturé pour les ressources inactives lorsqu'il n'y a aucun appel à l'API.

Sites Web et Applications

Le déploiement de sites Web et d'applications Web sur une plate-forme sans serveur ne nécessite aucune configuration d'infrastructure préalable. Cela réduit considérablement le temps nécessaire pour lancer une application Web entièrement fonctionnelle. La fonctionnalité de mise à l'échelle automatique joue également un rôle important ici, car l'utilisateur n'a pas à se soucier de provisionner davantage de serveurs pour prendre en charge les augmentations de la demande. Par conséquent, il est beaucoup plus facile de maintenir une disponibilité à 100 %.

Applications multilingues

Avec le serverless, une seule application peut être écrite dans plusieurs langues. Serverless permet aux développeurs de diviser 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 à l'aide d'un langage de programmation différent.

Pipelines CI/CD

L'automatisation est essentielle à la réussite des pipelines de développement, de test et d'intégration. Le sans serveur permet aux développeurs de tester automatiquement le code et de corriger les bogues plus rapidement. Étant donné que le sans serveur est basé sur des é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 de l'informatique sans serveur ?

Par rapport au cloud computing traditionnel orienté serveur, l'informatique sans serveur fait abstraction des opérations d'infrastructure. Tout fonctionne prêt à l'emploi, ce qui garantit des versions de code plus rapides et une évolutivité automatisée à un prix inférieur.

Voici les trois avantages les plus courants du sans serveur :

Auto-scaling

Le fournisseur sans serveur adapte 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.

Délai de mise sur le marché plus rapide

Sans avoir besoin de provisionner des clusters de serveurs complexes, les développeurs peuvent se concentrer davantage sur l'obtention d'une vitesse de publication plus élevée. Cela accélère le temps nécessaire pour publier le code en production ou mettre en œuvre des modifications de code incrémentielles, ce qui se traduit par une livraison plus rapide des applications aux clients.

Coûts optimisés

Étant donné que tout est provisionné à la demande, les entreprises n'ont jamais à payer pour l'espace de stockage, le temps de calcul ou la mise en réseau inutilisés. La consommation de services sans serveur est généralement mesurée en millisecondes et facturée en conséquence.

Quels sont les inconvénients de l'informatique sans serveur ?

Comme pour toute solution logicielle, le sans serveur présente également des inconvénients. Mais selon l'application que vous construisez, vous ne serez peut-être pas si préoccupé par certains de ces inconvénients du sans serveur.

Latence

Lors de l'exécution d'une fonction, les fournisseurs sans serveur déploient automatiquement les ressources nécessaires à chaque appel. Selon la taille de la charge de travail, les conteneurs sont généralement provisionnés en quelques millisecondes, mais peuvent même prendre plusieurs secondes. La latence peut être réduite grâce à des "démarrages avertis" qui réutilisent les instances d'une exécution précédente.

Durée d'exécution

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

Verrouillage du fournisseur

Les fournisseurs utilisent généralement des technologies propriétaires pour activer leurs services sans serveur. Cela peut entraîner des problèmes pour les utilisateurs qui souhaitent migrer leurs charges de travail vers une autre plate-forme. Lors du passage à un autre fournisseur, les 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. Ceci est caché à l'utilisateur et relève du domaine du fournisseur de services. Ainsi, les opérations de sécurité relèvent également du fournisseur. L'utilisateur est impuissant en cas d'attaque, s'appuyant 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 sans serveur sont plus sujettes aux vulnérabilités en raison d'une surface d'attaque accrue.

Quel est l'avenir de l'informatique sans serveur ?

L'informatique sans serveur 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, notamment les démarrages à froid. Les fournisseurs doivent réduire le temps nécessaire à l'exécution d'une fonction après un certain temps d'inactivité. La résolution de ce problème réduira la latence et garantira une expérience utilisateur fluide.

Serverless s'appuie actuellement sur des conteneurs sans état pour l'exécution des fonctions. L'avenir du sans serveur consiste à permettre aux applications avec état de tirer parti des avantages du sans serveur. Cela permettra aux développeurs de créer des applications avec état sans se soucier de la gestion des données backend.

En termes de DevOps, le serverless conduira à l'expansion de NoOps. Cette tendance conduira à des fournisseurs sans serveur gérant toutes les opérations d'infrastructure au nom du client. Dans un tel contexte, les entreprises n'ont pas besoin d'avoir des équipes opérationnelles internes.

Dans les années à venir, Kubernetes devrait devenir la base du sans serveur. Grâce à la prise en charge de la mise en réseau, de la mise à l'échelle automatique agile et des déploiements multicloud, la portabilité de Kubernetes améliore l'informatique sans serveur de plusieurs manières. L'exécution de certaines classes d'applications sans serveur n'est pas pratique car les fournisseurs de services limitent parfois leur comportement. Avec Kubernetes, les développeurs pourront surmonter ces limitations et créer des plates-formes sans serveur en fonction de leurs besoins spécifiques.

Conclusion

Même si son nom suggère l'absence de serveurs, l'informatique sans serveur repose toujours sur des serveurs cloud ou physiques. Il s'agit d'un modèle informatique 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 sans serveur s'articule 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 sans serveur n'est pas une solution miracle pour tous les problèmes de développement actuels. Il est principalement destiné aux applications non monolithiques qui utilisent une architecture basée sur des microservices.


Cloud computing

  1. Informatique sans serveur :la dernière offre « as a Service »
  2. Quels sont les meilleurs cours de cloud computing ?
  3. Quelle est la relation entre le Big Data et le cloud computing ?
  4. Les plus gros obstacles à une adoption sans serveur plus large
  5. Cloud computing vs sur site
  6. Qu'est-ce que l'acier A2 ?
  7. Qu'est-ce que l'Edge Computing et pourquoi est-ce important ?
  8. Qu'est-ce que l'informatique quantique ?
  9. Quel est le code SH pour la pompe hydraulique ?