Java dans Windows Azure, l'exemple de JOnAS
-
Author
guillaume-sauthier -
Category
Technology
-
view
1.141 -
download
2
Embed Size (px)
Transcript of Java dans Windows Azure, l'exemple de JOnAS

palais des congrès Paris
7, 8 et 9 février 2012

Guillaume SAUTHIERDéveloppeur JOnASBullStéphane WOILLEZConsultant Cloud
ComputingMicrosoft
Java dans Windows Azurel’exemple de JOnASINT202

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
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 applicatifsBases de donnéesMachines virtuellesStockageCDNCache distribué
VPNService BusReporting
Contrôle d’accèsMarketPlace
Votre DataCenterCLoud
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
Windows Azure SDK for JavaWindows Azure SDK for PHPWindows Azure Tools for EclipseWindows Azure Command-line Tools for PHPAppFabric SDK for JavaAppFabric SDK for PHPAppFabric SDK for Ruby
Eclipse Tools for SilverlightJava Restlet Extension for ODataOData SDK for PHPSQL Server Reporting Services SDK for PHPBing Library for PHPBing 404 plugin for WordPressEclipse Modernization for Windows
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 moduleIl faut automatiser l’installation des composants Deux mécanismes d’installation sont disponibles :
1. L’intégration du composant dans le package applicatif2. 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 VMGé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"?><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>

Script d’initialisationSET 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 [email protected] ------------------------------------------------------------%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>[email protected]</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
jonas-azure.cloudapp.net/pastebeanEssayez 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 clusterEvolutions / 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 moisprix liste
Stockage 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 .NETJOnAS, serveur Java EE OSGi Open Source tourne parfaitement dans AzureJOnAS bénéficie des services d’automatisation de la plate formeJOnAS 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 Meeting Nuget et ALM
9 mars 2012
Live Meeting Kinect - Bien gérer la vie de son capteur
13 mars 2012
Live Meeting Sharepoint 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
