Développez des Microservices sur Azure avec AppServices

Cellenza organisait un Tech’Event le 18 Juin 2015 autour de Microsoft Azure App Services avec un focus sur Azure Logic App, Azure API App et les Microservices. Pour ceux qui n’ont pas eu la chance d’assister à cet évènement, voici un « petit recap’ » des sujets abordés. Le support de présentation sera très prochainement disponible sur Slideshare.

Vue d’ensemble : Azure App Services, Logic App et API App

Azure App Services est une nouvelle offre de service Cloud Microsoft qui intègre les outils et l’environnement permettant de créer, déployer et exploiter rapidement des apps Web et Mobile (sur tout plateforme). Cette solution facilite l’intégration continue et les approches DevOps.

Azure App Services

Comme l’illustre la figure ci-dessus, Azure App Services consiste en 4 solutions :

  • Wep Apps reprend (et remplace) les fonctionnalités d’Azure Web Site et permet de construire des applications web scalables.
  • Mobile Apps reprend également les fonctionnalités d’Azure Mobile Services et permet de construire des Apps multiplateformes.
  • Logic Apps est une solution inédite permettant d’automatiser vos processus métier transverses impliquant à la fois des applications SaaS ou des applications à demeure grâce aux nombreuses fonctionnalités d’intermédiation et connectivité fournies.
  • Enfin, API Apps est également une nouvelle solution permettant d’implémenter, « hoster », exposer et consommer des Web API à travers le Cloud.

Ces 4 solutions fournissent les ingrédients pour construire des applications métier modernes mêlant à la fois Front-end Web et Mobile, workflow et intégration avec le Back-end et enfin, exposition des fonctionnalités sous forme d’API.

Durant ce Tech’Event, nous avons donc fait un focus sur Azure Logic Apps et Azure API Apps qui traitent des problématiques d’intégration d’applications d’entreprise (Saas ou à demeure) et d’automatisation de processus métier.

Architecture Microservices

Mais que vient faire ce pattern d’architecture dans une présentation sur App Service me diriez-vous ? La réponse est simple, Microsoft s’est basé sur ce pattern pour construire Logic App et API Apps. Pour paraphraser la désormais célèbre définition de Martin Fowler, les Microservices sont « une approche de conception pour développer une application comme une somme de petits services, s’exécutant dans leur propre processus et communicant à travers des mécanismes « lightweight » tel qu’Http. Les services sont découpés et construits autour de domaines métiers et sont indépendamment déployables via un mécanisme de release automatisé. La gouvernance de ces services en mode centralisée, est réduite à son strict minimum. Lesquels pourront être écrits dans des langages de programmation différents et utiliser des solutions de stockage de données hétérogènes »… Ouf ! Ok ! Mais quel est le rapport avec App Services ?

API App a été pensé comme une implémentation de microservice offrant des services de connectivité (connecteur Twitter, Facebook, SAP, Oracle) ou d’intermédiation (fonction de transformation, validation, enrichissement, transcodification, EDI, BRE …). Chacun de ces services est consommable en http(s)/JSON et s’exécute de manière autonome.

Logic App vient composer et orchestrer ces API pour automatiser des processus métiers et/ou mettre en place des flux d’intégration inter-applicative (EAI/EDI).

Service, Composition, Http ? Du SOA réchauffé ? Nous ne rentrerons pas dans ce débat pour le moment mais la filiation entre SOA et Microservices est indéniable. C’est pourquoi nous considérons ce dernier comme la « SOA Mature » ou encore la « SOA Agile », tirant profit des expériences réussies (ou non…) de mise en œuvre de la SOA, ajoutant à cela l’adoption des méthodes agiles (SCRUM et DevOps) apportant maturité, pragmatisme et efficacité à la façon de penser des architectures de « service ».

Pour aller plus loin sur ce sujet, je vous conseille le Tech’Trend « Back » de Xebia qui est une très belle introduction sur le sujet partant des souffrances actuelles des applications monolithiques et présentant les recettes d’un SI flexible, adaptable et « under control ». Si vous souhaitez aller encore, vous pouvez lire « Building Microservices » de Sam Newman aux éditions O’Reilly.

Azure Logic Apps

Comme cité précédemment, Logic Apps est une solution Azure Cloud permettant d’automatiser des processus métier et/ou de mettre en place des solutions d’intégration.

Pour se lancer, une souscription Azure, un bon navigateur et c’est parti ! En effet, l’implémentation et le déploiement d’une Logic App se fait en premier lieu depuis le portail Azure. Nous n’allons pas rentrer dans les détails d’implémentation dans cet article mais le principe est le suivant :

  1. On déclare et configure les API Apps que l’on souhaite utiliser.
  2. On les utilise dans notre Logic App pour implémenter notre workflow.
  3. On sauvegarde et on execute.

Dans le cadre de notre session, nous avons implémenté un processus assez simple répondant aux besoins suivants :

  • Cellenza Training dispense des formations BizTalk Server, Azure Logic App, etc.
  • Pour connaître les dates de la prochaine session de formation BizTalk Server, envoyez @Cellenza #TrainingSessionBTS et nous vous communiquerons par Tweet la prochaine session de formation.
  • Dans le même temps, les commerciaux de Cellenza seront informés de l’interêt que vous portez à telle ou telle formation.

Azure Logic App

Comme l’illustre la capture d’écran ci-dessous, avec Logic App, on ne code pas mais on dessine. En effet,  il s’agit de glisser/paramétrer les API Apps pour implémenter l’enchainement des étapes de sa logique applicative/fonctionnelle. Les personnes venant de BizTalk Server ne seront pas dépaysées. Néanmoins, l’expérience de développement sur le portail Azure (aussi New soit-il) n’est pas connue pour être une référence. C’est pourquoi, Microsoft fournit les extensions pour pouvoir créer des Logic App à partir de Visual Studio 2013+ moyennant l’installation de l’Azure SDK v2.6.

Logic App dans Visual Studio

Azure API Apps

Azure API Apps offre un environnement pour construire rapidement et exécuter des Web API. Ces API’s sont ainsi disponibles au sein de la Marketplace azure ou au sein d’une Marketplace privée pour des API’s à usage interne.

Microsoft met ainsi à disposition plusieurs dizaines d’API prêtes à l’emploi comme l’illustre le schéma ci-dessous. Les API « Connectors » fournissent un service d’interfaçage à la plupart des réseaux sociaux, des applications SaaS d’entreprises et autres applications On Premise. Les API « Protocols » fournissent des connecteurs techniques ((s)FTP(s), http, …). Les API « BizTalk Services » exposent l’ensemble des fonctionnalités d’intermédiation BizTalk Services sous forme de service.

Azure API App

Microsoft fournit également le SDK permettant d’implémenter rapidement ces API et les héberger sur Azure API Apps.

Dans le cadre de notre session, Laurent Yin nous a montré comment il était facile de créer une API encapsulant l’appel à des Web Services exposées par notre CRM Maison.

Quels cas d’usages et quel avenir pour BizTalk ?

Azure Logic App est une solution d’intégration et d’automatisation de business processus assez facile à utiliser et nécessitant peu d’effort de montée en compétences contrairement à une solution comme BizTalk Server. Du fait de son jeune âge (toujours en Beta à date), Logic App est préconisé pour des scénarios d’intégration simple avec un challenge sur le Time To Market. Il permet également d’adresser facilement les scénarios d’intégration avec les réseaux sociaux du fait de ces API App Twitter, Facebook, etc.

Cependant, pour le moment, nous ne considérons pas Azure Logic App comme une alternative à une plateforme d’intégration On Premise tel que BizTalk Server qui est à même de prendre en charge des scénarios d’intégration beaucoup plus complexes.

BizTalk Server + Azure Logic App seraient à même de former une plateforme d’intégration étendue : BizTalk Server pour l’intégration des applications à demeure, Logic App pour les scénarios digitaux et l’intégration des applications SaaS et enfin Azure Service Bus qui formerait le pont entre Azure et la plateforme on premise.

BizTalk Server reste donc une solution adaptée à la plupart des scénarios d’intégration on premise avec une base client solide de 11 000 clients à travers le monde). Microsoft continuera à la faire évoluer et annonce une prochaine version en 2016.

En ce qui concerne Azure BizTalk Services (MABS), il est fort à parier qu’Azure Logic App ait signé son arrêt de mort. En effet, toutes les fonctionnalités pertinentes MABS ont été réécrites sous forme d’API App  et aucune roadmap n’est fournit par Microsoft pour cette solution.

Ce Recap vous a donné envie ? Restez connectés, nous allons prochainement lancer une série d’articles dans laquelle nous entrerons plus en détail sur Logic App et API App à travers le scénario présenté plus haut.

Pas de commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *