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

Java dans Windows Azure: l'exemple de Jonas

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Java dans Windows Azure: l'exemple de Jonas

palais des

congrès

Paris

7, 8 et 9

février 2012

Page 2: Java dans Windows Azure: l'exemple de Jonas

Guillaume SAUTHIERDéveloppeur JOnASBull

Stéphane WOILLEZConsultant Cloud ComputingMicrosoft

Java dans Windows

Azure

l’exemple de JOnAS

INT202

Page 3: Java dans Windows Azure: l'exemple de Jonas

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

Page 4: Java dans Windows Azure: l'exemple de Jonas

I. INTRODUCTION

Page 5: Java dans Windows Azure: l'exemple de Jonas

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

Page 6: Java dans Windows Azure: l'exemple de Jonas

www.interoperabilitybridges.com

Microsoft et l’Open Source

Page 7: Java dans Windows Azure: l'exemple de Jonas

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

Page 8: Java dans Windows Azure: l'exemple de 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

Page 9: Java dans Windows Azure: l'exemple de 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

Page 10: Java dans Windows Azure: l'exemple de Jonas

Mise en œuvre rapide

Démonstration

Page 11: Java dans Windows Azure: l'exemple de Jonas

II. INSTALLATION

Page 12: Java dans Windows Azure: l'exemple de Jonas

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

Page 13: Java dans Windows Azure: l'exemple de Jonas

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

Page 14: Java dans Windows Azure: l'exemple de Jonas

Package applicatif

Son contenu va être disponible sur la machine

hôte

Dossier ‘approot’

Page 15: Java dans Windows Azure: l'exemple de Jonas

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

Page 16: Java dans Windows Azure: l'exemple de Jonas

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>

Page 17: Java dans Windows Azure: l'exemple de Jonas

Configuration du service

Nombre d’instances du/des Roles

Certificats associés

Configuration des plugins

Couples clé/valeur

Fichier *.cscfg

Page 18: Java dans Windows Azure: l'exemple de Jonas

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>

Page 19: Java dans Windows Azure: l'exemple de Jonas

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

Page 20: Java dans Windows Azure: l'exemple de Jonas

Déploiement sur Azure

Démonstration

Page 21: Java dans Windows Azure: l'exemple de Jonas

III. INTEGRATION

Page 22: Java dans Windows Azure: l'exemple de Jonas

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

Page 23: Java dans Windows Azure: l'exemple de Jonas

Administrer JOnAS sur Azure

Démonstration

Page 24: Java dans Windows Azure: l'exemple de Jonas

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

Page 25: Java dans Windows Azure: l'exemple de Jonas

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>

Page 26: Java dans Windows Azure: l'exemple de Jonas

Application / SQL Azure

Démonstration

Essayez vous-même:

Page 27: Java dans Windows Azure: l'exemple de Jonas

IV. EVOLUTION

Page 28: Java dans Windows Azure: l'exemple 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

Evolutions de l’intégration de

JOnAS

Page 29: Java dans Windows Azure: l'exemple 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

Page 30: Java dans Windows Azure: l'exemple de Jonas

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

Page 31: Java dans Windows Azure: l'exemple de Jonas

QUESTIONS ?

Page 32: Java dans Windows Azure: l'exemple de Jonas

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

Page 33: Java dans Windows Azure: l'exemple de Jonas

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

Page 34: Java dans Windows Azure: l'exemple de Jonas