Jonas, serveur d'application J2EE, a récemment été porté par Bull, avec l'aide de Microsoft, sur Windows Azure. Au-delà de la mixité des environnements Java et Microsoft, cette session démontrera par l'exemple la grande ouverture de Windows Azure à des technologies peu habituées à s'éxécuter en environnement Windows.
2. Java dans Windows
Azure
l’exemple de JOnAS
INT202
Guillaume SAUTHIER Stéphane WOILLEZ
Développeur JOnAS Consultant Cloud Computing
Bull Microsoft
3. Agenda de la session
Introduction
Quelques rappels sur Windows Azure
Introduction à JOnAS
JOnAS: install, config et lancement
Démo
Installation
Installer des composants logiciels dans Azure
Déployer JOnAS dans Windows Azure Démo
Intégration
Administration de JOnAS dans Azure
Démo
Intégration avec SQL Azure
Démo
Evolutions
Evolutions prévues de l’intégration de JOnAS dans Azure
Conclusion
Questions
5. Windows Azure
Windows Azure, c’est quoi ?
• Une plate forme de cloud computing public à l’échelle mondiale
• L’hébergement d’ applications internes, B2B, ou publiques
• Des SLA de production en très haute disponibilité
• Des services d’interconnectivités applicatives multiples
Votre DataCenter
• Un haut niveau de sécurité à vos applications et données
CLoud
• Une réduction importante des couts de projets et d’hébergement
Clusters applicatifs
Des services automatisés
Le choix du/des Datacenters pour vos applications Bases de données
qui vous hébergent Machines virtuelles
Stockage
Six Datacenters CDN
(Europe, US, Asie)
24 Points de présence du Cache distribué
CDN
VPN
Service Bus
Le choix du langage et de l’outil de programmation
Reporting
Contrôle d’accès
MarketPlace
9. OW2 JOnAS / Déploiements
Grands comptes
Groupe France Telecom
Ministère de l’intérieur
Ministère de l’écologie
Intégrations
Ubuntu 11.10
Projets collaboratifs
Compatible One
4CaaST
12. Installer des composants dans
Azure
Permet d’utiliser des fonctions d’un progiciel ou d’un
module
Il faut automatiser l’installation des composants
Deux mécanismes d’installation sont disponibles :
1. L’intégration du composant dans le package applicatif
2. La création d’un master de VM personnalisé (VMROLE)
Si l’installateur du composant supporte l’automatisation et
n’est pas trop long, on l’intègre dans le package applicatif
Si le composant est compliqué à installer, ou nécessite
une intervention humaine, on utilise le VMRole
DEMONSTRATION
13. Déployer JOnAS dans Azure
Les indispensables
Une Java Virtual Machine
Un JOnAS
Une application
Un script d’initialisation
En quelques lignes
Le package applicatif contient les binaires (JVM, …)
La définition de service fournit les méta-données
Description des Roles, Endpoints et Environnement
Le script initialise et lance JOnAS dans la VM
Génération du package avec Eclipse et le plugin Azure
14. Dossier ‘approot’
Package applicatif
Son contenu va être disponible sur la machine
hôte
15. Fichier *.csdef
Définition du service
Nommage
Description des Roles
Nommage
Taille de la machine virtuelle
Pointeur sur le script de démarrage
Variables d’environnement
Description des Endpoints
Activation de modules/plugins
17. Fichier *.cscfg
Configuration du service
Nombre d’instances du/des Roles
Certificats associés
Configuration des plugins
Couples clé/valeur
18. Fichier *.cscfg: config de
service
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ServiceConfiguration
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
osFamily="2"
osVersion="*"
serviceName="WindowsAzureProject">
<Role name="Main">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled"
value="true"/>
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled"
value="true"/>
<!-- NOTE: replace the following settings with your own -->
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername"
value="bull"/>
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword"
value="...."/>
<Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration"
value="2039-12-31T23:59:59.0000000-08:00"/>
</ConfigurationSettings>
<Certificates>
<Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"
thumbprint="E05B79E3F7DFA2AD1D7845A7A8CC2A5F43D073A4"
thumbprintAlgorithm="sha1"/>
</Certificates>
</Role>
</ServiceConfiguration>
19. Script d’initialisation
SET BLOB_URL=http://jonas.blob.core.windows.net
IF NOT EXIST "ow2-jonas-5.2.2-light.zip" cscript /nologo "utildownload.vbs" "%BLOB_URL%/demo/ow2-jonas-5.2.2-light.zip"
IF NOT EXIST "jdk1.7.0_02.zip" cscript /nologo "utildownload.vbs" "%BLOB_URL%/demo/jdk1.7.0_02.zip"
@REM Prepare directory (shorter names)
rd "C:%ROLENAME%"
mklink /D "C:%ROLENAME%" "%ROLEROOT%approot"
cd /d "C:%ROLENAME%"
@REM Unpack Java SDK + OW2 JOnAS
IF NOT EXIST "jdk1.7.0_02" cscript /nologo "utilunzip.vbs" "jdk1.7.0_02.zip" "%CD%"
IF NOT EXIST "ow2-jonas-5.2.2" cscript /nologo "utilunzip.vbs" "ow2-jonas-5.2.2-light.zip" "%CD%"
@REM Set required environment variables
SET JONAS_ROOT=C:%ROLENAME%ow2-jonas-5.2.2
SET JAVA_HOME=C:%ROLENAME%jdk1.7.0_02
SET PATH=%PATH%;%JAVA_HOME%bin;%JONAS_ROOT%bin
@REM Overwrite some JOnAS files
COPY /Y "conf*" "%JONAS_ROOT%conf"
COPY /Y "libext*" "%JONAS_ROOT%libext"
@REM Place application's modules in the deploy/ directory
COPY /Y "deploy*" "%JONAS_ROOT%deploy"
@REM Spawn a JOnAS process and exit the current shell
@REM ------------------------------------------------------------
%JONAS_ROOT%binjonas.bat start
22. Administration de JOnAS dans
Azure
Rencontre avec jonas-admin
La console d’administration web de JOnAS
Expérience utilisateur améliorée avec Flex
Modulaire et évolutive
Gestion des Classloaders
Gestion des fuites de connexions
Système d’audit des applications
Console OSGi
Documentation
…
24. Intégration avec SQL Azure
Une application gère son modèle de donnée avec JPA
C’est la couche ORM
Independence vis-à-vis de la base sous jacente avec JDBC
JOnAS a besoin d’un driver JDBC
SQL Server JDBC Driver v4 supporte SQL Azure
Fourniture d’une DataSource (XML)
Connectée sur l’URL de la base de donnée
Utilisant le driver JDBC adéquat
Avec informations de connexion
Gestion du pool de connexions
Notes
Penser à créer une nouvelle base en plus de ‘master’ (droits)
Configurer le firewall pour pouvoir accéder à la base
Username de la forme: [login]@[server]
28. Evolutions de l’intégration de
JOnAS
Windows Azure Market Place
OW2 JOnAS disponible sur étagère
Administration
Module jonas-admin dédié à Azure
Topologie du cluster
Interactions avec le portail de management Azure
JOnAS/Azure Manager
Déploiement et mises à jour d’applications Java EE
Synchronisées sur l’ensemble du cluster
Evolutions / additions au plugins Eclipse
Déploiement des applications sur le cloud en 1 clic
29. JOnAS sur Azure, Combien ca
coute
● Modèle de facturation à la consommation
● Il existe aussi des forfaits et des accords entreprise
● Tous les prix sont publics, il existe un outil d’estimation de coût en ligne
● Un exemple : Un cluster de 2 serveurs JOnAS, bi-cœurs 3.5Go de
mémoire, utilisant 500Go de stockage avec 1 million de transactions et 1 To de
bande passante coute 390€ par mois, prix liste.
JOnAS 390€
NLB par mois
prix liste
1 Tera Octets 2 VMs - 2 x 1.6GHz Stockage 500GB
de trafic 3.5 Go Mémoire 1 million d’accès
http://www.microsoft.com/windowsazure/offers/
http://www.microsoft.com/windowsazure/pricing-calculator/
30. Conclusion
Windows Azure sait héberger des environnements autres
que .NET
JOnAS, serveur Java EE OSGi Open Source tourne
parfaitement dans Azure
JOnAS bénéficie des services d’automatisation de la plate
forme
JOnAS fonctionne très bien avec SQL Azure
Bull délivre des services de support pour les
environnements de production JOnAS sur Azure
http://support.bull.com/ols/product/applications/Environnement-j2ee/help/kbf/g/eofjonas
32. Des ressources Windows Azure
gratuites
Testez Windows Azure Abonnés MSDN, vous
gratuitement pendant bénéficiez de
90 jours Windows Azure
http://aka.ms/ http://aka.ms/
tester-azure-90j activer-azure-msdn
33. Pour aller plus loin
Prochaines sessions des Dev Camps
Chaque semaine, les 10
Live Open Data - Développer des applications riches avec le
février
DevCamps 2012
16
Meeting protocole Open Data
ALM, Azure, Windows Phone, HTML5, OpenData février
Live
Meeting
Azure series - Développer des applications sociales sur
la plateforme Windows Azure
2012
http://msdn.microsoft.com/fr-fr/devcamp
17
Live Comprendre le canvas avec Galactic et la librairie
février
Meeting three.js
2012
Téléchargement, ressources 21
février
Live La production automatisée de code avec CodeFluent
Meeting Entities
et toolkits : RdV sur MSDN 2012
2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour
http://msdn.microsoft.com/fr-fr/ 2012 Meeting Windows Phone 7, iOS et Android
6 mars Live
Nuget et ALM
2012 Meeting
Les offres à connaître 9 mars
2012
Live
Meeting
Kinect - Bien gérer la vie de son capteur
90 jours d’essai gratuit de Windows 13 mars
2012
Live
Meeting
Sharepoint series - Automatisation des tests
Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre
www.windowsazure.fr 2012 Meeting plateforme de développement
15 mars Live Azure series - Développer pour les téléphones, les
2012 Meeting tablettes et le cloud avec Visual Studio 2010
Jusqu’à 35% de réduction sur Visual 16 mars Live Applications METRO design - Désossage en règle d'un
Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript
20 mars Live Retour d'expérience LightSwitch, Optimisation de
www.visualstudio.fr 2012 Meeting l'accès aux données, Intégration Silverlight
23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans
2012 Meeting votre application
Notes de l'éditeur
Géo DRP = Capacité de construire une application répartie sur plusieurs datacenters Azure, permettant la continuité de service, même si un datacenter disparait.CDN = Content Delivery Network. Un réseau de serveurs de cache répartis sur le globe, et permettant la réplication géographique des applications et données pour une très grande montée en charge.