Tous les fournisseurs de cloud vendent leurs solutions "sans serveur". La promesse est que sans serveur va remplacer la façon dont les développeurs développent actuellement leurs logiciels et que les opérations les gèrent en production.
Qu'est-ce que "sans serveur"? Où peut-on en apprendre plus à ce sujet et comment l'utiliser aujourd'hui?
terminology
serverless
Evgeny
la source
la source
Réponses:
L'article de Wikipedia sur l' informatique sans serveur fournit une introduction décente au sujet:
L'idée est qu'un développeur ne devrait pas du tout avoir à se soucier de l'infrastructure du serveur . Le fournisseur de cloud gère les serveurs physiques, le système d'exploitation utilisé et toutes les difficultés traditionnelles liées à l'exécution d'un serveur.
L'informatique sans serveur change votre architecture et vous empêche de penser à ce que font les machines à quelles fonctions . AWS Lambda est l'exemple qui vous vient à l'esprit: vous payez et exécutez des fonctions , sans aucune mention du type d'infrastructure physique en cours d'exécution ci-dessous. Il existe également des hôtes sans serveur concurrents tels que Azure Functions (ou vous pouvez simplement rechercher si cela ne vous intéresse pas).
Il n'y a pas beaucoup d'avantages à utiliser sans serveur (bien que vous ayez besoin d'écrire d'une manière légèrement différente de celle à laquelle vous êtes habitué dans certains cas, car c'est une architecture totalement différente):
L’évolutivité est essentiellement gratuite: comme vous ne payez que pour exécuter une fonction, le fournisseur de cloud peut facilement dédier davantage de matériel au besoin pour exécuter votre code. Vous pouvez également potentiellement évoluer à mesure que la demande augmente, plutôt que de payer un taux fixe, que votre application soit utilisée une fois ou des millions de fois.
Le logiciel et le matériel du serveur ne doivent plus être gérés par un développeur - le fournisseur de cloud le gère. Si vous avez déjà utilisé quelque chose comme Arch sur un serveur, vous saurez à quel point il est facile d’effacer un paquet critique et de tout casser!
Cela permet aux développeurs de se concentrer sur leurs points forts: le code . La plupart des développeurs ne seront probablement pas excellents à la fois en infrastructure de serveur et en programmation - sans serveur élimine simplement un problème de l'équation.
la source
Martin Fowler a un bon aperçu:
https://martinfowler.com/articles/serverless.html
TL; DR
"Serverless" décrit le développement d’applications et l’architecture qui conçoit des applications dans lesquelles l’infrastructure est éphémère , ce qui signifie qu’elles tendent à être basées sur des conteneurs et peuvent «aller et venir» selon un mécanisme d’échelle dynamique. Cela prescrit l'utilisation d'architectures sans état qui dépendent de technologies distribuées (telles que les magasins de clés / valeurs).
la source
'Serverless', comme beaucoup de choses dans notre espace, est en train de devenir un terme surchargé. Mais généralement, cela signifie: "Fonctionnellement, notre architecture ne dépend pas du provisionnement ou de la maintenance en cours d'un serveur".
La première instance qui nous vient à l’esprit est une application javascript à une seule page, qui utilise un stockage local et qui est stockée sur un site comme Amazon S # ou Github Pages (ou tout autre site statique - c’est là des exemples courants). Imaginez quelque chose comme une application de type «faire» ou «faire avancer les choses» qui fonctionne entièrement dans votre navigateur. Votre navigateur utilise un service tel que S3 pour télécharger le code. Les éléments que vous stockez sont tous stockés dans la mémoire de stockage locale de votre navigateur. Il n'y a pas de serveur que vous maintenez pour cela.
La seconde instance, plus compliquée (et celle qui a popularisé le terme 'sans serveur'), utilise un service comme AWS Lambda. Permettez-moi de vous expliquer ceci en présentant le problème qu'il résout:
À plusieurs reprises au cours de ma carrière, j'ai résolu un problème commercial pour un client avec un peu plus que du code ruby qui effectuait un extrait, une transformation et un chargement périodiques (généralement écrit sous forme de tâche de travail). Une fois résolu, je l’automatiserais typiquement avec cron. Ensuite, le problème devient «Où dois-je héberger cette chose qui fonctionne une fois par heure? Pour certains clients, nous configurions un serveur dans leur infrastructure existante. Pour d'autres, nous avions configuré une instance EC2, même si celle-ci était inactive 99% du temps. Dans l'un ou l'autre de ces cas, il existe un serveur nécessitant un provisionnement, des correctifs, une surveillance, une mise à jour, etc.
Avec Amazon Lambda, je peux prendre cette tâche de rake et l'exécuter sur leur service en tant que pure fonction. Je peux même le programmer. Ce client n'aurait plus besoin d'une infrastructure pour une chose aussi simple, une fois par heure.
Avec 'serverless', il y a toujours un serveur, tout comme avec 'cloud', il y a toujours un ordinateur. Il y a juste un niveau d'abstraction qui prend certaines responsabilités environnementales pour vous.
la source
Toutes les bonnes réponses déjà. Je passais en revue le blog « Penser sans serveur - Comment les nouvelles approches répondent aux besoins modernes en traitement de données dans HighScalability», où je suis tombé sur cette excellente explication de ce que signifie sans serveur:
Et, une expérience supplémentaire de mon expérience personnelle dans la création d’une infrastructure sans serveur est la suivante:
Comme par exemple: stockez les fichiers dans une file d'attente AWS SQS. Une fois que le nombre de messages dans la file d'attente atteint 10, déclenchez un événement vers Lambda.
la source
En plus d’expliquer simplement la définition du terme sans serveur, les origines du terme et son histoire donnent également un aperçu de sa signification. Le concept est né avec le JAWS cadre par Austen Collins , qui a obtenu plus tard rebaptisé comme Serverless . Je l'ai d'abord appris lors de la session AWS re: Invent 2015 , qui peut aider à dater le concept. C'est ce qui a en fait été appelé Serverless, qui s'est ensuite rapidement étendu à d'autres systèmes de cloud computing:
la source