Build 2019 – Jour 3 – Azure Functions, Windows Terminal & Web Assembly

20190507_120058.jpg

Cette dernière journée a été marquée par quelques présentations un peu moins intéressantes, mais je traite dans cet article des sujets qui sont en plein effervescence. Alors au menu : Azure Functions, Windows Terminal et Web Assembly (Wasm).

Azure Functions

Les Azure functions sont au coeur de l’offre de service serverless de Azure. Elles offrent la possibilité d’exécuter du code sans se soucier de l’infrastructure sous-jacente. L’élasticité (scaling) et la gestion des ressources est la sous la responsabilité d’Azure. Suffit de fournir un script ou un bout de code et Azure nous permet de l’exécuter.

Les gros avantages de cette plateforme sont son modèle de micro-facturation et son architecture pilotée par les événements (Event-driven architecture, EDA). Vous êtes facturés seulement lorsque le code s’exécute. C’est l’avantage que propose la plupart des plateformes serverless. Pour ce qui est de l’EDA, elle est facilitée, car Azure permet de déclencher des functions à partir d’une multitude d’événements déjà pré-configurés. Il peut s’agir d’un message qui a été ajouté dans une file de messages ou encore d’un changement de données dans CosmosDB. Bref, les possibilités sont grandes et les coûts sont presques négligeables dans certains cas.

Durable functions

J’ai appris durant la conférence que l’offre des Durable Function n’était pas seulement pour permettre l’exécution plus longue de certaines fonctions. En fait, ce modèle de programmation ouvre la porte à différents scénarios d’orchestration ou de coordination entre les éléments serverless. Certains patrons sont intégrés de belle manière au langage de programmation et permettent de définir des workflows simples à l’aide seulement d’Azure Functions. C’est donc une alternative simple aux applications Logic Apps.

20190508_143352

Pour plus de détails

Nouveautés

La plus grande nouveauté est sans doute KEDA qui permet, entre autres, de déployer des Azure Functions dans Kubernetes directement. Le projet permettra de tirer profit de plusieurs événements provenants de Kubernetes ou de l’extérieur des clusters pour effectuer la gestion automatique du scaling et de l’exécution de nos Azure Functions.

Par ailleurs, certaines fonctionnalités sont très récentes pour les Azure Functions comme l’ajout d’un plan Premium, le support du langage PowerShell et le support de l’injection de dépendances.

20190508_144740.jpg

Windows Terminal

20190508_102026.jpg

Microsoft a annoncé qu’il travaillait sur un nouveau terminal et sur une nouvelle console de ligne de commande qui sera aussi open-source. C’est littéralement du code de Windows qui se retrouve sur GitHub! À titre d’exemple, voici les principaux ajouts qui seront fait prochainement :

  1. Ctrl+Scroll : Ajuster le zoom
  2. Ctrl+Shift+Scroll : Ajuster la transparence de la fenêtre
  3. Amélioration du copier-coller
  4. Fichier de profil en JSON pouvant être partagés et distribués pour conserver nos personnalisations
  5. Support des onglets

Le code est déjà disponible sur GitHub et ils accepteront les Pull Requests éventuellement, ce qui veut dire qu’on peut tous participer au développement de Windows ! Après seulement 48 heures, le dépôt comptait déjà plus de 25 000 étoiles. Je prévois un problème de capacité du côté de Microsoft quand viendra le temps de gérer les demandes. Pour vous mettre l’eau à la bouche, voici le vidéo qui a été présenté pour illustrer la direction qu’ils veulent prendre.

Web Assembly

Ça fait déjà un petit moment que je tente de créer un buzz dans ma région autour de cette nouvelle technologie qui, selon moi, va littéralement révolutionner plusieurs paradigmes dans le web et même dans d’autres sphères de l’informatique.

Jérome Laban est le CTO de la plateforme Uno et travaille pour nventive à Montréal. Il nous présentait les dernières avancées de Web Assembly (WASM) dans le monde .NET. Microsoft travaille à créer un framework SPA en .NET avec Blazor, mais d’autres initiatives sont en cours également comme Uno et Ooui.

Il existe deux façons d’afficher des éléments visuels dans le navigateur présentement :

  1. Utiliser les canvas HTML 5 pour dessiner des pixels
  2. Générer du HTML

Dépendemment des scénarios d’utilisation, une approche peut être plus adaptée que l’autre. Avec l’utilisation des canvas, il a été possible d’exécuter une version de Windows 2000 dans le navigateur (lien). Du côté de Uno platform, ils ont optés pour l’approche de génération HTML.

20190508_091308

Pour ceux qui veulent tester WASM avec un projet .NET, le paquet nuget Uno.Wasm.Bootstrap vous permet d’ajouter des outils de compilation qui génèrent des artéfacts permettant d’exécuter votre application .NET dans le navigateur.

20190508_085312.jpg

La démo de la fin qui générait du code à l’aide de Roslyn directement dans la navigateur était aussi très impressionnante. Une petite application console qui utilisait EF Core et SQLite a été compilée dans le navigateur pour ensuite être exécutée localement.

Pour ceux qui n’ont pas encore regardé les possibilités de WASM, vous devez absolument le faire!

Conclusion

C’est ce qui met fin à mon aventure à la conférence Build 2019. Encore une fois, une expérience incroyable qui s’est terminée avec un party dans le stade de football des Seahawks de la NFL.

Microsoft continue sa stratégie d’être de plus en plus ouvert afin d’être le plus inclusif possible en intégrant des produits open-source de plus en plus et en continuant d’être transpartent sur ses projets comme c’est le cas avec Windows Terminal. C’est aussi un élément qui ressort de manière générale quand on discute avec les gens des équipes de réalisation. Ils veulent avoir du feedback sur ce qu’ils développent. On voit bien qu’ils ont pris le virage agile et DevOps très au sérieux. Ce sont tous ces types de rétroactions qui leur permettent de demeurer au devant des autres compagnies.

Comme dirait le monsieur avec le polo rouge : There’s never been a better time to be a developer.

Laisser un commentaire