Introduction à l'informatique sans serveur
Une introduction aux notions de base de l'informatique sans serveur [Q & A-style].
Vous vous dirigez vers une conférence de développeurs de logiciels pour un court vol dans l'un de ces petits avions à réaction régionaux. Alors que vous ne pouvez pas attendre pour arriver à la conférence, le vol est ennuyeux. Comme la plupart du temps, vous devrez probablement mettre vos écouteurs et écouter quelque chose d'insensé, attendant juste que l'avion atterrisse.
Ce vol sera différent, cependant. Parce que je suis co-passager et coïncidence, assis à côté de vous. Non seulement suis-je un orateur à la conférence, je suis connu pour bricoler beaucoup avec les technologies Xamarin et Azure – c'est ce que je fais! C'est votre chance de choisir mon cerveau et d'apprendre autant que possible pendant ce court vol. Vous formulez un plan. Tout d'abord, vous aurez envie de comprendre l'informatique sans serveur très médiatisée, puis creusez dans Azure Functions, et enfin comprendre comment tirer parti de ces services cloud pour vos applications mobiles. Vous prenez des notes lorsque vous commencez une session de questions-réponses rapide; clairement, je ne dors pas sur ce vol.
J'entends toujours le terme «informatique sans serveur».
Pour les développeurs, l'informatique sans serveur signifie que vous écrivez fonctions individuelles compactes qui font une chose – et courent dans le nuage. Ces fonctions sont déclenchées par un événement externe. Cet événement peut être un enregistrement inséré dans une base de données, un fichier chargé dans le stockage BLOB, un intervalle de temporisation écoulé ou même une simple requête HTTP.
OK, revenons un instant en arrière. Puisque nous avons du code qui tourne dans le nuage et réagit aux événements externes, ce n'est vraiment pas "sans serveur", n'est-ce pas?
Bon, les serveurs sont toujours impliqués! Ce qui a changé – à partir d'autres types de cloud computing – est que l'idée et la propriété du serveur ont été absentes.
Attendez, attendez. Quels sont les autres types de cloud computing?
Heureux que vous ayez demandé avant d'être trop loin devant moi!
Vous pouvez considérer le cloud computing comme une évolution du datacenter sur site. Dans le bon vieux temps, vous aviez une salle de serveur bourrée d'ordinateurs puissants. Vous deviez comptabiliser le logiciel du serveur, le tenir à jour, le sauvegarder, etc. Vous deviez également prendre soin du matériel physique du serveur, de la RAM, du disque dur, du processeur, etc. De plus, vous devez également vous assurer que les salles de serveurs sont sécurisées et correctement ventilées, parmi une tonne d'autres choses que j'oublie probablement!
Ensuite, le cloud computing est apparu et a fait abstraction de l'idée de données sur site centres dans le nuage
C'est ici que toutes les choses "en tant que service" entrent en jeu, n'est-ce pas?
Correct!
Tout d'abord, il y a Infrastructure as a Service (IaaS) . Pensez-y comme une machine virtuelle dans le nuage. Vous êtes toujours responsable du logiciel du serveur, de sa mise à jour et de ses sauvegardes; ainsi que les spécifications matérielles de la machine virtuelle. Mais maintenant vous êtes libre de toute maintenance matérielle physique. Et bien sûr, vous devez toujours écrire / héberger vos applications et installer n'importe quel logiciel de support sur le serveur dont vous avez besoin.
Ensuite, il y a Platform as a Service (PaaS) . C'est un niveau d'abstraction supérieur à IaaS – le fournisseur de cloud s'occupe du serveur, du logiciel de support et du matériel. Vous hébergez vos applications en plus de cette configuration ou plate-forme préexistante. Vous prenez toujours soin de la configuration de base du serveur et d'autres choses comme la mise à l'échelle.
Au-delà, vous arrivez à Fonction en tant que service (FaaS) . C'est l'informatique sans serveur! C'est un niveau d'abstraction supérieur à PaaS, maintenant vous ne vous inquiétez même pas de la plate-forme ou de la mise à l'échelle. Tout ce que vous devez faire est de mettre en place votre logique d'application – et votre code va être appelé en réponse à des événements – et le fournisseur de cloud prend soin de tout le reste. Vous pouvez littéralement vous concentrer uniquement sur la logique métier que vous devez exécuter en réponse à quelque chose d'intéressant – pas d'inquiétude sur l'hébergement.
Le dernier niveau est Software as a Service (SaaS ). Ici, l'application est déjà écrite pour vous et tout ce que vous faites est de modifier certains paramètres de l'application. Des choses comme Google Docs ou Office 365 en sont des exemples
Ainsi, le fournisseur de cloud s'occupe du matériel, du système d'exploitation, des logiciels de support et de la mise à l'échelle.
Tout d'abord, vous n'avez pas besoin de vous soucier du câblage de la plomberie entre le service à l'origine de l'événement et l'environnement d'exécution sans serveur. Le fournisseur de cloud utilisera le mécanisme pour appeler votre fonction en réponse à l'événement auquel vous avez choisi de faire réagir la fonction.
Comme les fonctions sans serveur sont invoquées en réponse aux événements, la chose qui a provoqué l'événement est automatiquement transmise fonction. En d'autres termes, si une goutte de données est insérée dans un conteneur de stockage, une fonction est déclenchée, vous n'avez pas besoin de vous inquiéter de la possibilité de déclencher la fonction, et vous n'avez pas besoin de vous soucier de la transmission de cette tâche. fonction. Tout cela sera géré pour vous. Tout ce que vous devez faire est de définir des valeurs de configuration
Cela semble assez cool, mais que se passe-t-il si je veux agir sur une ressource complètement différente de celle qui a déclenché la fonction?
aucun problème! Il existe des fournisseurs de cloud qui fournissent des liaisons à certains de leurs autres services qui ne sont pas impliqués dans l'événement qui a déclenché la fonction sans serveur. Les références à ces services sont transmises en tant que paramètres à votre fonction sans serveur.
En d'autres termes, vous n'avez pas besoin de vous préoccuper de la plomberie entre les services du fournisseur de cloud. Tant que le fournisseur de cloud le supporte, tout ce que vous avez à faire est de configurer des valeurs de configuration
Mais combien cela coûte-t-il?
C'est l'autre chose intéressante. Vous ne payez que le temps d'exécution de la fonction sans serveur. Donc, si vous avez une fonction qui est déclenchée par une requête HTTP, et que vous recevez rarement des requêtes sur votre fonction, vous payez rarement. (Bien que ce ne soit pas le cas, n'est-ce pas?)
Dans le modèle PaaS, où vous avez un service REST en attente d'appels, des frais mensuels vous sont facturés, peu importe l'utilisation. Donc, l'informatique sans serveur peut avoir beaucoup de sens sur le plan financier
Alors, quels sont les scénarios dans lesquels je voudrais utiliser serverless?
Le premier qui me vient à l'esprit est celui d'un simple web API Vous pouvez créer une suite de fonctions sans serveur qui attendent que les requêtes HTTP arrivent (et qui peuvent être configurées pour écouter les différents verbes HTTP), puis via le pouvoir de liaison, elles peuvent accéder aux autres services du fournisseur de cloud tels qu'un
Un autre serait un backend pour les applications mobiles. Dites qu'un utilisateur prend une photo dans une application client mobile. l'application peut alors invoquer une fonction sans serveur pour obtenir une clé pour placer la photo dans le stockage BLOB dans le cloud. Lorsque ce BLOB est inséré dans le stockage, une autre fonction sans serveur pourrait être invoquée, ce qui redimensionne la photo en une vignette. Encore une autre fonction pourrait être invoquée pour faire des notifications push pour alerter les amis qu'une nouvelle photo a été téléchargée. Vous obtenez le flux de travail.
Cool! Comment en apprendre plus?
Faire une recherche; Il existe une mine d'informations sur Internet sur les bases de l'informatique sans serveur. Une fois que vous décidez que vous êtes prêt à sauter à bord, il existe plusieurs grands fournisseurs de cloud offrant l'informatique sans serveur en tant que service:
Je sais que vous travaillez pour Microsoft. Dis-m'en plus sur les Fonctions Azure.
Bien sûr! Je peux vous donner une introduction rapide au développement de fonctions de cloud sans serveur avec les fonctions Azure. Vous verrez certains des événements qui les déclenchent ainsi que certaines des liaisons à d'autres services Azure auxquels ils ont accès!
Oh, je vois que l'hôtesse de l'air descend dans l'île avec des boissons. Prenons une petite pause, puis nous reviendrons avec le reste de la série!
Les commentaires sont désactivés en mode aperçu.
Source link