Download - Java dans Windows Azure: l'exemple de Jonas
palais des
congrès
Paris
7, 8 et 9
février 2012
Guillaume SAUTHIERDéveloppeur JOnASBull
Stéphane WOILLEZConsultant Cloud ComputingMicrosoft
Java dans Windows
Azure
l’exemple de JOnAS
INT202
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 AzureDémo
Evolutions Evolutions prévues de l’intégration de JOnAS dans Azure
Conclusion
Questions
Agenda de la session
I. INTRODUCTION
Le choix du langage et de l’outil de programmation
Six Datacenters
(Europe, US, Asie)
24 Points de présence du
CDN
Le choix du/des Datacentersqui vous hébergent
Des services automatisés pour vos applications
Clusters applicatifs
Bases de données
Machines virtuelles
Stockage
CDN
Cache distribué
VPN
Service Bus
Reporting
Contrôle d’accès
MarketPlace
Votre DataCenter
CLoud
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
• Un haut niveau de sécurité à vos applications et données
• Une réduction importante des couts de projets et d’hébergement
Windows Azure
www.interoperabilitybridges.com
Microsoft et l’Open Source
Serveur d’application Java EE / OSGiTM
Certifié Java EE 5
Preview Java EE 6
Preview OSGi Enterprise R4.3
OpenSource : LGPL
Consortium OW2
Principal contributeur : Bull
Partenariats
OW2 JOnAS
Dédié aux applications d’entreprise
3 Tiers : Présentation/Métier/Données
Présentation : Servlet 3.0 / JSP 2.2 / JSF 2.0
Métier : EJB 3.0
Données : JPA 2.0 / JDBC 4.0 / JCA 1.5 (EIS)
Transactions : JTA 1.1
Sécurité : LDAP, …
Interopérabilité
Webservices SOAP, REST
Utilisabilité
Serveur à la bonne taille (modularité)
Support IDE : Eclipse / Netbeans
OW2 JOnAS
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
OW2 JOnAS / Déploiements
Mise en œuvre rapide
Démonstration
II. INSTALLATION
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
Installer des composants dans
Azure
DEMONSTRATION
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
Déployer JOnAS dans Azure
Package applicatif
Son contenu va être disponible sur la machine
hôte
Dossier ‘approot’
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
Fichier *.csdef
Fichier *.csdef : définition de
service<?xml version="1.0" encoding="utf-8" standalone="no"?><ServiceDefinition xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"
name="WindowsAzureProject"><WorkerRole name="Main" vmsize="Medium">
<Startup><!-- Sample startup task calling startup.cmd from the role's approot folder --><Task commandLine="util/.start.cmd startup.cmd"
executionContext="elevated"taskType="background"/>
</Startup><Runtime executionContext="elevated">
<EntryPoint><!-- Sample entry point calling run.cmd from the role's approot folder --><ProgramEntryPoint commandLine="run.cmd" setReadyOnProcessStart="true"/>
</EntryPoint><Environment>
<Variable name="YOUR_ENV_VARIABLE" value="[unused]"/></Environment>
</Runtime><Imports>
<Import moduleName="RemoteAccess"/><Import moduleName="RemoteForwarder"/>
</Imports><Endpoints>
<InputEndpoint localPort="9000" name="http" port="80" protocol="tcp"/></Endpoints>
</WorkerRole></ServiceDefinition>
Configuration du service
Nombre d’instances du/des Roles
Certificats associés
Configuration des plugins
Couples clé/valeur
Fichier *.cscfg
Fichier *.cscfg: config de
service<?xml version="1.0" encoding="utf-8" standalone="no"?><ServiceConfigurationxmlns="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>
Script d’initialisation
SET BLOB_URL=http://jonas.blob.core.windows.netIF NOT EXIST "ow2-jonas-5.2.2-light.zip" cscript /nologo "util\download.vbs" "%BLOB_URL%/demo/ow2-jonas-5.2.2-light.zip"IF NOT EXIST "jdk1.7.0_02.zip" cscript /nologo "util\download.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 "util\unzip.vbs" "jdk1.7.0_02.zip" "%CD%"IF NOT EXIST "ow2-jonas-5.2.2" cscript /nologo "util\unzip.vbs" "ow2-jonas-5.2.2-light.zip" "%CD%"
@REM Set required environment variables SET JONAS_ROOT=C:\%ROLENAME%\ow2-jonas-5.2.2SET JAVA_HOME=C:\%ROLENAME%\jdk1.7.0_02SET PATH=%PATH%;%JAVA_HOME%\bin;%JONAS_ROOT%\bin
@REM Overwrite some JOnAS filesCOPY /Y "conf\*" "%JONAS_ROOT%\conf"COPY /Y "lib\ext\*" "%JONAS_ROOT%\lib\ext"
@REM Place application's modules in the deploy/ directoryCOPY /Y "deploy\*" "%JONAS_ROOT%\deploy"
@REM Spawn a JOnAS process and exit the current shell@REM ------------------------------------------------------------%JONAS_ROOT%\bin\jonas.bat start
Déploiement sur Azure
Démonstration
III. INTEGRATION
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
…
Administration de JOnAS dans
Azure
Administrer JOnAS sur Azure
Démonstration
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]
Intégration avec SQL Azure
Exemple de DataSource
<datasources xmlns="http://jonas.ow2.org/ns/datasource/1.0"></datasource>
<datasource-configuration><name>jdbc_1</name><url>jdbc:sqlserver://rvdzir6adn.database.windows.net:1433;database=pastebean;
encrypt=true;hostNameInCertificate=*.database.windows.net</url><classname>com.microsoft.sqlserver.jdbc.SQLServerDriver</classname><username>jonas@rvdzir6adn</username><password>*****</password><mapper>rdb.sqlserver</mapper>
</datasource-configuration>
<connectionManager-configuration><connchecklevel>0</connchecklevel><connteststmt>SELECT 1</connteststmt><connmaxage>1440</connmaxage><maxopentime>60</maxopentime><initconpool>10</initconpool><minconpool>10</minconpool><maxconpool>100</maxconpool><pstmtmax>100</pstmtmax><maxwaittime>5</maxwaittime><maxwaiters>100</maxwaiters><samplingperiod>30</samplingperiod>
</connectionManager-configuration></datasource>
</datasources>
Application / SQL Azure
Démonstration
Essayez vous-même:
IV. EVOLUTION
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
Evolutions de l’intégration de
JOnAS
● 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.
http://www.microsoft.com/windowsazure/offers/
http://www.microsoft.com/windowsazure/pricing-calculator/
390€
par mois
prix listeStockage 500GB1 million d’accès
2 VMs - 2 x 1.6GHz3.5 Go Mémoire
NLB
JOnAS
1 Tera Octetsde trafic
JOnAS sur Azure, Combien ca
coute
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
Conclusion
http://support.bull.com/ols/product/applications/Environnement-j2ee/help/kbf/g/eofjonas
QUESTIONS ?
Des ressources Windows Azure
gratuites
Testez Windows Azure
gratuitement pendant
90 jours
http://aka.ms/
tester-azure-90j
Abonnés MSDN, vous
bénéficiez de
Windows Azure
http://aka.ms/
activer-azure-msdn
Chaque semaine, les
DevCampsALM, Azure, Windows Phone, HTML5, OpenDatahttp://msdn.microsoft.com/fr-fr/devcamp
Téléchargement, ressources
et toolkits : RdV sur MSDNhttp://msdn.microsoft.com/fr-fr/
Les offres à connaître90 jours d’essai gratuit de Windows
Azure
www.windowsazure.fr
Jusqu’à 35% de réduction sur Visual
Studio Pro, avec l’abonnement MSDN
www.visualstudio.fr
Pour aller plus loin
10
février
2012
Live
Meeting
Open Data - Développer des applications riches avec le
protocole Open Data
16
février
2012
Live
Meeting
Azure series - Développer des applications sociales sur
la plateforme Windows Azure
17
février
2012
Live
Meeting
Comprendre le canvas avec Galactic et la librairie
three.js
21
février
2012
Live
Meeting
La production automatisée de code avec CodeFluent
Entities
2 mars
2012
Live
Meeting
Comprendre et mettre en oeuvre le toolkit Azure pour
Windows Phone 7, iOS et Android
6 mars
2012
Live
MeetingNuget et ALM
9 mars
2012
Live
MeetingKinect - Bien gérer la vie de son capteur
13 mars
2012
Live
MeetingSharepoint series - Automatisation des tests
14 mars
2012
Live
Meeting
TFS Health Check - vérifier la bonne santé de votre
plateforme de développement
15 mars
2012
Live
Meeting
Azure series - Développer pour les téléphones, les
tablettes et le cloud avec Visual Studio 2010
16 mars
2012
Live
Meeting
Applications METRO design - Désossage en règle d'un
template METRO javascript
20 mars
2012
Live
Meeting
Retour d'expérience LightSwitch, Optimisation de
l'accès aux données, Intégration Silverlight
23 mars
2012
Live
Meeting
OAuth - la clé de l'utilisation des réseaux sociaux dans
votre application
Prochaines sessions des Dev Camps