Voici un résumé en français, en texte et en images de l’épisode 122 du Cloud Cover Show, que je vous engage à regarder. L’épisode est disponible à cette adresse: http://channel9.msdn.com/Shows/Cloud+Cover/Episode-122-Java-on-Windows-Azure

Dans cet épisode, Nick Harris est rejoint par Martin Sawicki, Program Manager au sein de MS Open Tech, une filiale de Microsoft entièrement dédiée aux relations avec le monde de l'Open Source. Le focus de Martin ces dernières années a été de créer un ensemble de plugins et de librairies permettant aux développeurs Java de mieux utiliser la plateforme Windows Azure.

Martin nous présente tout d'abord le Windows Azure Java Developer Center, qui regroupe les documentations et pointeurs vers les articles, SDKs et documentations dédiés aux développeurs Java.

image

Depuis ce centre, l'on peut trouver trois grandes façons d'utiliser Windows Azure avec Java: utiliser les services Windows Azure depuis Java, sans forcément y héberger son application ; utiliser des machines virtuelles pour déployer son application Java ; et finalement utiliser le Platform As A Service (PaaS) pour mieux utiliser les capacités de la plateforme.

Services Windows Azure: notre SDK Java vous permet d'accéder au Blob Storage, au Service Bus, les Media Services, etc., sans forcément héberger l'application dans Windows Azure. On peut par exemple imaginer externaliser le stockage de données sans pour autant déplacer l'application.

image

Infrastructure As A Service: récemment nous avons travaillé avec Oracle sur un partenariat vous permettant d'utiliser les logiciels Oracle comme WebLogic ou le JDK Java sur des machines virtuelles Windows Azure. Nous avons une documentation détaillée sur MSDN présentant les bonnes pratiques de déploiement des solutions Oracle dans Windows Azure. Pour démarrer une machine virtuelle pré-installée avec Oracle Database, Oracle WebLogic ou la plateforme Java, il suffit de se rendre dans le portail d'administration et de choisir l'un des modèles standard proposés par Oracle. L'on trouvera des images basées sur Windows mais également sur Oracle Linux. Tous ces modèles seront directement supportés par Oracle.

image

Et finalement, Martin rentre dans les détails du support Platform As A Service pour Java. Là aussi, le centre de développement Java est un bon point de départ, il suffit de suivre le lien vers le tutoriel "Windows Azure Plugin for Eclipse".

Martin démontre alors l'utilisation du plugin depuis Eclipse. L'idée est de partir d'une simple application Java de type "hello world", sans aucune spécificité Windows Azure, et de la déployer dans Windows Azure avec un minimum d'effort et de complexité grâce au plugin pour Eclipse.

Ce plugin s'installe simplement via la fonction "Install New Software" intégrée à Eclipse, et est nommé "Windows Azure Toolkit for Eclipse". Le plugin ajoute des fonctions spécifiques à Azure dans la barre de commandes d'Eclipse. La première fonction intéressante est "Create Windows Azure Deployment Project", qui ouvre un assistant permettant de définir l'environnement dans lequel l'application Java va s'exécuter:

  • Le JDK à utiliser, soit un JDK local, soit un JDK préinstallé de type OpenJDK, fourni par notre partenaire Azul Systems.
  • Le serveur d'application à utiliser, du type Tomcat, Jetty, jBoss, etc. Là aussi l'on peut choisir une installation locale, ou bien pointer vers un package Zip à télécharger et installer.
  • Finalement, le WAR de l'application à déployer.

image

Le plugin assemble alors automatiquement le projet avec toutes ses dépendances. L'on peut alors le tester dans l'émulateur Windows Azure en local afin de vérifier que tout se passe bien. Puis il est temps de déployer le projet dans Windows Azure grâce à la fonction "Publish". L'assistant de publication vous permet de choisir le Cloud Service de destination, ainsi que les réglages habituels comme l'OS à utiliser, le slot de déploiement (Staging/Production), ainsi éventuellement que l'accès RDP.

image

Martin montre alors les fonctionnalités plus avancées du plugin:

  • Ajout d'un cache distribué compatible memcached permettant d'ajouter du cache mémoire facilement.
  • Remote Debugging depuis Eclipse.
  • Configuration des Endpoints.
  • Variables d'environnement.
  • Gestion de l'affinité de sessions: cette option va automatiquement déployer et configurer ARR pour établir l'affinité de sessions par cookies, qui est fréquemment requise par les applications Java.
  • Ajout de local storage si l'application a besoin de plus d'espace de stockage en local sur les machines.

Le plugin facilite également l'intégration des fonctions Windows Azure dans le projet Java d'origine: l'on peut facilement ajouter des librairies pour l'accès à SQL Database, au Service Bus via AMQP avec Apache Qpid, l'accès au Storage, et finalement l'intégration de l'authentification via Windows Azure Access Control Service.