Le concept informatique sans serveur est un modèle d'exécution en devenir qui tente de répondre aux besoins des logiciels modernes basés sur le cloud..
Dans cette vidéo de mon cours, Introduction à Serverless, je vais vous présenter l’architecture sans serveur. Nous allons parler de ses points clés et le comparer à d'autres modèles pour extraire la fonctionnalité de serveur du cloud..
Tout d'abord, dans un système sans serveur, il y a des serveurs. Espérons que cela ne vous surprendra pas. Il s'agit de savoir qui les gère.
Jetons un coup d'oeil à un diagramme très commun qui montre différents types de services.
À gauche, vous avez votre système traditionnel sur site. Tout est géré par vous, jusqu’à la machine physique et au réseau. Ensuite, vous avez différents niveaux d'abstraction.
Le premier niveau d'abstraction est l'infrastructure en tant que service. Ici, vous êtes responsable de tout depuis le système d'exploitation. Des exemples seraient DigitalOcean ou EC2 d'Amazon. Le fournisseur vous fournit une instance et à partir de ce moment-là, vous êtes seul..
La couche suivante de l'abstraction est le conteneur en tant que service. C'est aussi un joueur plutôt nouveau qui a beaucoup de traction en raison de la popularité de Docker. Dans un monde AWS, ce serait les services de conteneur EC2..
Ensuite, nous avons la plate-forme en tant que service, dans laquelle vous n'êtes pas responsable de la gestion des systèmes d'exploitation ou des conteneurs. Vous êtes seul responsable de votre application. Heroku, AWS Elastic Beanstalk et Google Compute Engine sont des exemples remarquables de cette catégorie..
Il y a quelques années, le graphique se serait terminé ici. Mais de nos jours, nous avons une nouvelle terminologie, c’est-à-dire, fonctionne comme un service. Au lieu d'exécuter une application qui a l'état, ce qui est vrai pour tous les frameworks Web traditionnels, même si vous utilisez REST et d'autres choses, vous avez un système qui utilise des conteneurs sans état qui sont déclenchés par des événements, éphémères et entièrement gérés par le service fournisseur.
C'est ce qu'on appelle sans serveur. Il existe un autre concept appelé back-end en tant que service qui est parfois également considéré comme faisant partie de l'architecture du serveur. Mais à mon avis, il s’agit plus d’un logiciel en tant que service, qui est essentiellement ce que vous essayez de construire..
Parlons donc davantage des fonctions en tant que service.
Comme son nom l'indique, vous en tant que développeur êtes responsable de l'écriture de fonctions exécutables déclenchées et exécutées par des événements. Cela peut être un téléchargement de fichier terminé vers S3 ou une demande via un point de terminaison API. Jusqu'ici, si simple. Pour bien comprendre le concept, cependant, je vais parler de quelques domaines clés qui définissent les fonctions en tant que service..
Le premier est l'état. Les fonctions sont très limitées lorsqu'il s'agit de préserver l'état. En général, vous devriez supposer que vous ne pouvez pas le faire du tout. Les fonctions suivent plus le principe du feu et oublient. Si vous souhaitez stocker quelque chose, faites-le avec un service externe, comme un stockage de fichiers, une base de données ou un serveur de cache..
La seconde est la durée d'exécution. Selon votre processus de déploiement, une application serveur peut s'exécuter pendant des heures ou des jours sans redémarrer. Il en va de même pour le traitement en arrière-plan. Avec les fonctions, le temps d'exécution est limité. Il n'est pas prévu que la fonction s'exécute pendant plus de quelques secondes et AWS Lambda, par exemple, met fin à chaque fonction qui n'a pas fini de s'exécuter après cinq minutes. Si vous avez une tâche très longue, alors les fonctions en tant que service peuvent ne pas être la meilleure solution.
Ensuite, nous avons la latence de démarrage. Cela peut prendre entre quelques millisecondes et quelques minutes. Bien sûr, cela dépend de la langue et du système que vous utilisez. En règle générale, une fonction Python ou JavaScript sur AWS démarre dans quelques millisecondes, mais si vous utilisez la machine virtuelle Java, le démarrage de la machine peut prendre un certain temps, en particulier si votre fonction n'a pas été exécutée au cours des dix dernières minutes, ou vous rencontrez une poussée soudaine d'exécution.
Cela pose des questions sur l'évolutivité et les coûts d'exécution, et la réponse que vous recherchez est la suivante: ne vous inquiétez pas. La mise à l'échelle est gérée par le fournisseur de services et le coût est simple.
Si vous exécutez une fonction dix fois, vous payez exactement pour ces dix invocations. Si vous courez 1 000 fois, vous payez 1 000. C'est un peu plus compliqué que ça, bien sûr, mais c'est l'essentiel.
Avoir un système sans serveur peut être très avantageux. C'est génial si vous avez un trafic incohérent, par exemple, une pointe en début d'heure ou très peu de demandes occasionnelles, car vous n'avez pas à allouer des ressources inactives la plupart du temps..
Pour récapituler, les systèmes sans serveur ont des serveurs, mais ils sont entièrement gérés par des fournisseurs de cloud. Les fonctions sont au cœur d'une architecture sans serveur et sont exécutées à l'aide de déclencheurs. La mise à l'échelle et la haute disponibilité sont déjà prises en charge par les fournisseurs de cloud. Si vous avez une demande très occasionnelle ou une recherche importante mais brève, sans serveur vous aide à réduire vos coûts..
Dans le cours complet, Introduction à Serverless, je vais vous montrer comment utiliser Amazon Web Services pour créer une application Web "sans serveur", dotée d'un back-end d'API REST. Vous verrez également comment gérer certains scénarios avancés, tels que l'intégration d'autres services AWS et l'orchestration de fonctions sensibles à l'état. En cours de route, vous allez créer un service Web génial pour convertir du texte en parole..
Vous pouvez suivre ce cours immédiatement avec un abonnement à Envato Elements. Pour un seul forfait mensuel, vous aurez accès non seulement à ce cours, mais également à notre bibliothèque croissante de plus de 1 000 cours vidéo et de livres numériques de premier plan sur l'industrie sur Envato Tuts.+.
De plus, vous obtenez maintenant des téléchargements illimités à partir de la vaste bibliothèque Envato Elements de plus de 400 000 ressources créatives. Créez avec des polices, des photos, des graphiques et des modèles uniques et livrez plus rapidement de meilleurs projets.