Présentation d’Azure Functions 2.0

Publié le 24 septembre, 2018

Principal PM Manager, Azure Functions

Aujourd’hui, nous sommes très heureux d’annoncer la disponibilité générale d’Azure Functions 2.0. Il s’agit d’une étape déterminante ouvrant diverses possibilités, toutes axées sur la simplification, comme jamais auparavant, de la création d’applications sans serveur hautement évolutives.

Azure Functions 2.0 est un service capable de gérer vos charges de travail les plus exigeantes, prêt pour la production et adossé à notre Contrat de niveau de service (SLA) garantissant un temps de disponibilité de 99,95 %. Nous vous encourageons vivement à entreprendre tout nouveau développement sur la version 2.0, ainsi qu’à recommander aux clients de mettre à niveau leurs applications 1.0 existantes vers la version 2.0 afin de bénéficier de tous les avantages de cette nouvelle version. Pour des instructions spécifiques, voir nos conseils pour la mise à niveau vers la version 2.0.

Que contient cette version ?

Functions 2.0 fait progresser le produit sur les plans de l’expérience utilisateur, des fonctionnalités de développement et de la robustesse de la plateforme. Les modifications les plus importantes ont trait à l’hôte du runtime, désormais portable, multiplateforme et plus efficace. Cela débouche sur un vaste éventail d’options pour la génération et l’exécution de vos applications.

Plus de plateformes, plus d’options

Le service Azure Functions est désormais exécutable dans davantage d’environnements, y compris localement sur un ordinateur Mac ou Linux. Combiné à l’intégration avec VS Code, ce service conduit à une expérience de développement sans serveur de premier ordre sur toute plateforme. Le runtime fonctionne aussi excellemment en dehors du service Azure Functions, et peut être exécuté n’importe où. Consultez nos ressources de support pour Azure Functions sur Kubernetes et Azure Functions sur IoT Edge. D’autres options d’hébergement sont également en bonne voie. Ne manquez pas de consulter la section « Étapes suivantes » ci-dessous pour en savoir plus.

Déclencheur HTTP

Optimisé pour votre compte

Functions 2.0 est plus performant que jamais, notamment grâce aux améliorations générales de l’hôte, à la prise en charge de davantage de langages runtimes modernes, et à la possibilité d’exécuter du code à partir d’un fichier de package.

Les développeurs .NET peuvent désormais créer des fonctions à l’aide de .NET Core 2.1. En plus du gain en performances significatif, cela signifie que vous pouvez développer et exécuter vos fonctions .NET dans plus d’emplacements. Nous avons également apporté des modifications majeures au fonctionnement de la résolution de l’assembly, en donnant aux fonctions leurs propres contextes de chargement. Cela signifie que vous ne devriez pas rencontrer autant de conflits mais que, le cas échéant, il sera plus facile de les résoudre.

Les langages non-NET fonctionnent désormais à partir d’un modèle de worker de langage, et la première pile à en tirer profit est JavaScript. Functions 2.0 prend désormais en charge les nœuds 8 et 10, et les utilisateurs doivent s’attendre à voir de meilleures performances en général. L’approche du worker permet une prise en charge de version et une itération améliorées, et c’est la façon dont nous allons désormais activer de nouveaux langages (ne manquez pas la section « Étapes suivantes » de ce billet pour plus de détails sur le prochain).

v1vsv2

Modèle de programmation puissant

Par rapport au runtime 1.0, l’un des changements majeurs est celui du mode de fonctionnement des liaisons et intégrations. Désormais, à l’exception de la prise en charge du HTTP et du minuteur, toutes les liaisons sont ajoutées en tant qu’extensions. Il s’agit de simples packages installables avec les outils Functions, qui fournissent toujours l’excellent modèle de programmation auquel vous êtes habitué. La modification apportée aux packages d’extension découplés permet que les versions des liaisons (et de leurs dépendances) soient gérées indépendamment du runtime principal. Cela signifie que vous avez davantage de contrôle sur votre application et son mode d’exécution, d’autant plus que les services dont elle dépend continuent d’évoluer.

Azure ajoute constamment de nouveaux services, et le modèle de package nous permet également de les intégrer plus rapidement. Un ajout récent est Azure SignalR Service, service entièrement géré qui vous permet de vous concentrer sur la création d’expériences web en temps réel sans vous soucier de la configuration, de l’hébergement, de la mise à l’échelle ou de l’équilibrage de charge de votre serveur SignalR. Azure Functions comprend désormais une extension pour ce service, une liaison open source hébergée par Microsoft Azure dans ce dépôt GitHub . Pour commencer à créer des applications sans serveur en temps réel, consultez la documentation de référence sur la liaison SignalR Service.

Développement plus facile

Azure Functions dispose de puissants outils natifs dans Visual Studio, VS Code et VS pour Mac, ainsi que d’une interface de ligne de commande exécutable à côté de n’importe quelle expérience d’édition de code. Si vous n’avez pas encore exploré ces options, nous vous encourageons vivement à les examiner, car elles auront une incidence immédiate sur votre productivité.

Les applications sans serveur pouvant impliquer différents composants, elles deviennent rapidement difficiles à observer et à surveiller. Dans Functions 2.0, nous étendons notre intégration avec Azure Application Insights afin d’apporter davantage de visibilité au traçage distribué. Les dépendances sont suivies automatiquement, et les connexions inter-ressources sont automatiquement corrélées dans un éventail de services, qui sera bientôt élargi. Tous cela est visualisé dans la cartographie d’application, qui vous permet de comprendre les interactions entre les composants et d’analyser les exécutions individuellement pour diagnostiquer d’éventuels problèmes.

FunctionsAppMap

Avec Azure Functions 2.0, nous investissons également dans l’amélioration de l’expérience de DevOps. Notre nouveau centre de déploiement marque une étape dans cette voie, en regroupant les options de création et de déploiement au sein d’une expérience unifiée. Vous pouvez accéder au Centre de déploiement sous « Fonctionnalités de la plateforme » pour votre application de fonction (Function App), et configurer facilement votre source préférée pour que votre code soit déployé immédiatement dans Functions.

Centre de déploiement

Cette focalisation accrue sur les expériences de DevOps commence avec la création de votre première fonction. L’expérience de prise en main proposée dans le portail Azure met désormais en évidence vos options de développement et de déploiement, et vous aide à tout configurer. Créez simplement une application de fonction sur le portail. Vous serez ensuite guidé dans toutes les étapes nécessaires au déploiement de votre première fonction 2.0.

Azure Functions

Étapes suivantes

Nous sommes également ravis de dévoiler notre feuille de route à court terme. Azure Functions 2.0 jette les bases de plusieurs innovations importantes. Vous trouverez ci-dessous un bref aperçu des options d’hébergement et de prise en charge des langages qui seront prochainement disponibles.

Linux sans serveur

Dans le cadre de notre engagement à enrichir les piles de développement et les options d’hébergement pour Azure Functions, nous investissons dans un hébergement Linux sans serveur (optimisé par Service Fabric Mesh), en commençant par une préversion du plan Consommation de Functions ajoutée au système d’exploitation Linux. Cela ouvre aux développeurs pour Linux et Mac une voie royale et naturelle vers l’hébergement sur la plateforme offrant le plus d’affinité avec leur pile de développement, tout en tirant pleinement parti des vertus de l’approche sans serveur. Pour figurer parmi les premiers à découvrir le code et à partager vos commentaires, inscrivez-vous à la préversion Linux.

Prise en charge de Python

Nous développons activement la prise en charge pour Python 3.6 basée sur le runtime Functions 2.0, le nouveau modèle de worker de langage et la plateforme d’hébergement Linux. Les fonctions Python sont naturellement adaptées aux manipulations de données, à l’apprentissage automatique, à l’automatisation et aux scénarios de script. La création de ces scénarios sans serveur peut vous libérer du fardeau de gérer l’infrastructure sous-jacente, et vous permettre de progresser plus rapidement en vous concentrant sur la résolution de vos problèmes métier. Cette capacité est actuellement disponible en préversion privée. Nous vous invitons à l’essayer et à nous faire part de vos commentaires.

Gardez le contact

Avec tant de publications actuelles et à venir, nous aimerions sincèrement que vous nous fassiez part de vos commentaires. Vous pouvez contacter l’équipe sur Twitter et GitHub. Nous suivons également activement StackOverflow et UserVoice. Ne manquez pas de nous indiquer vos fonctionnalités favorites dans Functions 2.0 et, si vous assistez à Microsoft Ignite cette semaine, passez donc nous voir.