Java sur Azure : VMware et Microsoft lancent Azure Spring Cloud
Dans le cadre de la conférence virtuelle SpringOne, Microsoft et Pivotal/VMware ont annoncé la disponibilité générale d’Azure Spring Cloud, un service à la demande entièrement managé pour déployer, opérer et passer à l’échelle des microservices Java développés avec le framework Spring.
En octobre 2019, Microsoft et Pivotal/VMware ont présenté en préversion Azure Spring Cloud, un service entièrement géré pour faciliter le déploiement de microservices sans avoir à paramétrer l’infrastructure sous-jacente.
Lors de la conférence SpringOne, les deux éditeurs annoncent la disponibilité générale de ce service. Pour rappel, Spring est un lui-même un framework server-side open source (sous licence Apache 2.0, la marque appartient à Pivotal/VMware) qui doit faciliter la construction et la définition d’une infrastructure Java.
Ici, Microsoft Azure et VMware combinent plusieurs composants : Spring Cloud, kpack et Azure Kubernetes Service (AKS).
Azure Spring Cloud est donc une distribution managée de Spring Cloud, une bibliothèque d’outils pour couvrir les patterns communs d’un système distribué (Gestion de configuration, découverte de service, passerelle de service, circuit breaker, distribution de messages, etc.). Il complète le framework Spring Boot qui n’implémentait pas les patterns spécifiques aux architectures de microservices. Spring permet ainsi de gérer des API, des intégrations et des flux de données.
Lier « élégamment » Spring Cloud et Kubernetes
Azure Spring Cloud est bâti par-dessus AKS, le service cloud d’orchestration de containers de Microsoft. Kpack, elle, est une librairie de contrôleurs pour Kubernetes conçue pour automatiser la création et la mise d’images de container (OCI) à partir du code source. Celui-ci extrait ce code source d’un dépôt comme GitHub, compile le code dans une image et l’envoie au registre de containers choisi par le développeur. Ce jeu de contrôleurs open source est maintenu par Pivotal/VMware et utilisé dans son offre Tanzu Build Service. Azure Spring Cloud doit donc permettre de déployer des applications standalone ou des microservices Spring Boot à l’échelle, grâce une option d’autoscaling.
Seulement, ici ces éléments sous-jacents ne sont pas exposés aux développeurs. « Presque toutes les entreprises utilisent Spring. Environ 60 % des nouvelles applications commerciales ont été développées en Java et une très bonne partie, probablement plus de 60 % d’entre elles, utilisent le framework Spring », déclare Craig McLuckie, Vice-Président R&D chez VMware (accessoirement cofondateur du projet Kubernetes et fondateur d’Heptio, racheté par VMware). « Maintenant, il faut se poser les bonnes questions : que voulez-vous utiliser dans ce framework ? Comment gérer l’ensemble des mécanismes opérationnels ? Comment gérer ce système Spring reposant sur une sorte de liaison tardive et d’injection de dépendances ? », ajoute-t-il.
C’est à ces questions auxquelles doit répondre Azure Spring Cloud en proposant un lien entre le framework et l’infrastructure Kubernetes. « Il s’agit de combler élégamment le fossé entre les capacités de Spring que les entreprises trouvent très convaincantes et ce Nouveau Monde de technologies d’infrastructure émergentes comme Kubernetes », assure Craig McLuckie.
En principe, les développeurs peuvent, à condition d’avoir installé JDK 8 et d’avoir un abonnement Azure, se concentrer sur le développement des applications basées sur des microservices.
Justement, Azure Spring Cloud semble destiné à une population de développeurs bien particulière : les bâtisseurs de microservices Java sur Azure.
La documentation fournit d’ailleurs un ensemble de tutoriels pour connecter Azure Spring Cloud à des services de bases de données (Azure Cosmos DB, MySQL, PostgreSQL), de monitoring (Azure App Insights, Azure Monitor), de protection des secrets (Azure Key Vault), de messagerie (Event Hub) ou encore de stockage. Microsoft Azure promet de faciliter les déploiements blue/green et les déploiements CI/CD avec cette solution tout en se connectant à des outils comme Jenkins.
Un partenariat « unique » pour les développeurs Java sur Azure
Cette attention pour les workloads Java, notamment les JVM, a gagné un nouvel élan chez Microsoft après le rachat de JClarity, un spécialiste britannique des environnements Java, en août 2019. La firme de Redmond a ses propres projets Java comme son service Hadoop géré HDInsight, et le jeu vidéo Minecraft. Surtout, elle accueille sur son cloud les workloads Java d’Adobe, de Daimler ou encore de la Société Générale. Selon les offres d’emploi et les profils Linkedin associés à la banque française, les développeurs utilisent bien le framework Spring, tout comme ceux de Daimler.
Rappelons qu’un groupe comme la Société Générale affiche une stratégie multicloud et multi environnement. La banque développe également des projets sur OpenShift de Red Hat sur le cloud d’IBM. Par ailleurs, OpenShift supporte les applications Spring Boot sans pour autant proposer d’offres dédiées.
Azure Spring Cloud est pour l’instant la seule version entièrement gérée du framework. Les responsables de la communauté Spring proposent des méthodologies et des configurations pour déployer Spring Cloud sur AWS et Alibaba Cloud, mais il n’y a pas de services cloud dédiés chez ces fournisseurs.
Selon Pat Gelsinger, PDG de VMware, ce partenariat avec Microsoft serait « unique », parce que les développeurs de Pivotal/VMware et ceux du géant du cloud ont pensé cette offre ensemble.
Cependant, la filiale de Dell EMC ne veut pas oublier son engagement dans une approche multicloud avec son portfolio de produits d’automatisation et d’orchestration d’applications Tanzu.
« Nous avons une très bonne relation avec AWS, mais nous avons entamé des partenariats avec d’autres hyperscalers dont IBM, Oracle, Google Cloud, ou encore Tencent. Avec Tanzu, nous voulons fournir une couche multicloud pour l’industrie » tient à rappeler Pat Gelsinger, lors de la conférence SpringOne.
Enfin, VMware met à profit des ponts taillés sur mesure du framework Spring vers les solutions Tanzu. Pivotal/VMware propose par exemple Spring Cloud Data Flow for VMware Tanzu, un outil pour automatiser le déploiement de pipelines ETL vers la PaaS Cloud Foundry. Il a également à son catalogue Spring Cloud Gateway for VMware Tanzu, afin, cette fois-ci, d’automatiser le déploiement de passerelles API développées à l’aide de Spring.