Explorer l’informatique Serverless dans Azure

Image représentant l’informatique Serverless

L’informatique Serverless fait abstraction des serveurs, de l’infrastructure et des systèmes d’exploitation. Avec l’informatique Serverless, Azure gère l’infrastructure serveur et l’allocation/désallocation des ressources en fonction de la demande. L’infrastructure ne relève pas de votre responsabilité. La mise à l’échelle et les performances sont gérées automatiquement, et vous êtes facturé uniquement pour les ressources que vous utilisez. Il n’est même pas nécessaire de réserver de la capacité.

L’informatique Serverless repose sur trois idées : abstraction des serveurs, mise à l’échelle basée sur les événements et microfacturation.

  1. Abstraction des serveurs : L’informatique Serverless fait abstraction de vos serveurs d’exécution. Vous ne réservez jamais explicitement des instances de serveur, c’est la plateforme qui gère cela pour vous. Chaque exécution de fonction peut s’exécuter sur une instance de calcul différente, ce contexte d’exécution étant transparent pour le code. Avec une architecture serverless, vous déployez simplement votre code, qui s’exécute à son tour avec une haute disponibilité.

  2. Mise à l’échelle basée sur les événements : L’informatique Serverless est un excellent choix pour les charges de travail qui répondent à des événements entrants. Les événements incluent les déclencheurs par minuteurs (par exemple, si une fonction doit s’exécuter tous les jours à 10h00), HTTP (scénarios d’API et webhook), les files d’attente (par exemple, avec traitement des commandes) et bien plus encore. Au lieu d’écrire une application entière, le développeur crée une fonction qui contient à la fois le code et les métadonnées sur ses déclencheurs et ses liaisons. La plateforme planifie automatiquement la fonction pour qu’elle s’exécute et mette à l’échelle le nombre d’instances de calcul selon le débit d’événements entrants. Les déclencheurs définissent la façon dont une fonction est appelée tandis que les liaisons offrent un moyen déclaratif de se connecter aux services à partir du code.

  3. Microfacturation : L’informatique traditionnelle présente une notion de facturation par seconde, mais souvent, ce n’est pas aussi utile qu’il y paraît. Même si le site web d’un client n’enregistre qu’un seul accès par jour, celui-ci paie quand même une journée entière de disponibilité. Avec l’informatique Serverless, il paie uniquement pour le temps d’exécution de son code. Si aucune exécution de fonction active n’a lieu, rien n’est facturé. Par exemple, si le code s’exécute une fois par jour pendant deux minutes, une seule exécution et deux minutes de temps de calcul sont facturées.

Informatique Serverless dans Azure

Azure propose deux implémentations de calcul serverless :

  • Azure Functions, qui peut exécuter du code dans presque n’importe quel langage moderne.
  • Azure Logic Apps, qui est conçu dans un concepteur web et qui peut exécuter la logique déclenchée par les services Azure sans écrire de code.

Azure Functions

Azure Functions est le choix idéal lorsque vous vous préoccupez uniquement du code exécutant votre service, mais pas de la plateforme ou de l’infrastructure sous-jacentes. Elle est couramment utilisée quand vous avez besoin d’effectuer un travail en réponse à un événement, souvent par le biais d’une demande REST, d’une minuterie ou d’un message d’un autre service Azure, et que ce travail peut être accompli rapidement, en quelques secondes ou moins.

Azure Functions est automatiquement mis à l’échelle selon la demande et constitue donc un choix idéal lorsque la demande est variable. Par exemple, vous pouvez recevoir des messages d’une solution IoT utilisée pour surveiller un parc de véhicules de livraison. Vous recevrez probablement plus de données pendant les heures ouvrables.

Avec une approche basée sur une machine virtuelle, des frais vous seraient facturés même lorsque la machine virtuelle est inactive. Avec les fonctions, Azure exécute votre code lorsqu’il est déclenché et libère automatiquement les ressources lorsque la fonction est terminée. Dans ce modèle, vous êtes facturé uniquement pour le temps processeur utilisé pendant l’exécution de votre fonction.

De plus, Azure Functions peut être utilisé sans état (valeur par défaut), où les fonctions se comportent alors comme si elles étaient redémarrées chaque fois qu’elles répondent à un événement, ou avec état (« Durable Functions »), où un contexte est passé par le biais de la fonction pour suivre une activité précédente.

Si les fonctions sont une composante clé de l’informatique Serverless, elles constituent aussi une plateforme de calcul généraliste qui permet d’exécuter n’importe quel type de code. Dès lors que les besoins de l’application du développeur changent, vous pouvez déployer le projet dans un environnement non serverless qui vous offre une souplesse pour gérer la mise à l’échelle, l’exécuter sur des réseaux virtuels et même isoler complètement les fonctions.

Azure Logic Apps

Les applications logiques Azure sont similaires aux fonctions : elles permettent aussi de déclencher une logique basée sur un événement. Alors que les fonctions exécutent du code, les applications logiques exécutent des workflows conçus pour automatiser des scénarios métier et créés à partir de blocs de logique prédéfinis. Chaque workflow d’application logique commence par un déclencheur, qui s’active quand un événement spécifique se produit ou quand de nouvelles données disponibles répondent à des critères spécifiques. De nombreux déclencheurs incluent des fonctionnalités de planification élémentaires qui permettent aux développeurs de spécifier la fréquence d’exécution des charges de travail. Chaque fois que le déclencheur s’active, le moteur Logic Apps crée une instance d’application logique qui exécute les actions du workflow. Ces actions peuvent également inclure des conversions de données et des contrôles de flux, comme des instructions conditionnelles, des instructions de basculement, des boucles et la création de branches.

Vous créez des workflows d’application logique à l’aide d’un concepteur visuel sur le portail Azure ou dans Visual Studio. Les workflows sont conservés sous forme d’un fichier JSON avec un schéma de workflow connu.

Azure fournit plus de 200 connecteurs et blocs de traitement différents pour interagir avec divers services, y compris les applications d’entreprise les plus courantes. Vous pouvez également créer des connecteurs personnalisés et définir les étapes du workflow si le service avec lequel vous devez interagir n’est pas couvert. Vous utilisez ensuite le concepteur visuel pour lier les connecteurs et les blocs, passer des données via le workflow afin d’effectuer un traitement personnalisé, tout cela sans écrire de code la plupart du temps.

Par exemple, supposons qu’un ticket arrive dans ZenDesk. Vous pouvez :

  1. Détecter l’intention du message avec Cognitive Services
  2. Créer un élément dans SharePoint pour suivre le problème
  3. Si le client ne figure pas dans votre base de données, ajoutez-le à votre système CRM Dynamics 365
  4. Envoyer un e-mail de suivi pour accuser réception de la demande

Toutes ces actions peuvent être effectuées dans un concepteur visuel. Ainsi, vous pouvez visualiser facilement le flux logique, ce qui est idéal pour un rôle d’analyste d’entreprise.

Functions et Logic Apps

Functions et Logic Apps peuvent créer des orchestrations complexes. Une orchestration est une collection de fonctions ou d’étapes exécutées pour accomplir une tâche complexe. Avec Azure Functions, vous écrivez du code pour effectuer chaque étape, tandis qu’avec Logic Apps, vous utilisez une interface graphique utilisateur pour définir les actions et les relations entre-elles.

Vous pouvez mélanger et associer les services lorsque vous créez une orchestration, en appelant des fonctions à partir d’applications logiques et inversement. Il existe certaines différences entre ces deux solutions.

- Functions Logic Apps
État Normalement sans état, mais Durable Functions fournit un état Avec état
Développement Orienté code (impératif) Orienté concepteur (déclaratif)
Connectivité Environ une douzaine de types de liaison intégrés, écriture de code pour les liaisons personnalisées Grande collection de connecteurs, Enterprise Integration Pack pour les scénarios B2B, intégration de connecteurs personnalisés
Actions Chaque activité est une fonction Azure ; écriture de code pour les fonctions de l’activité Grande collection d’actions prédéfinies
Surveillance Azure Application Insights Portail Azure, Log Analytics
Gestion API REST, Visual Studio Portail Azure, API REST, PowerShell, Visual Studio
Contexte d’exécution Exécution possible en local ou dans le cloud Exécution uniquement dans le cloud.