Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java dans Windows Azure, l'exemple de JOnAS

1,214 views

Published on

Windows Azure est une plateforme IaaS qui n'est pas réservée exclusivement aux application .NET. Cette session explore et explique comment déployer le serveur d'application JOnAS sur le cloud de Microsoft

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Java dans Windows Azure, l'exemple de JOnAS

  1. 1. palais des congrès Paris 7, 8 et 9 février 2012
  2. 2. Guillaume SAUTHIER Développeur JOnAS Bull Stéphane WOILLEZ Consultant Cloud Computing Microsoft Java dans Windows Azure l’exemple de JOnAS INT202
  3. 3. 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
  4. 4. I. INTRODUCTION
  5. 5. 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 Datacenters qui 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
  6. 6. www.interoperabilitybridges.com Microsoft et l’Open Source
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. Mise en œuvre rapide Démonstration
  11. 11. II. INSTALLATION
  12. 12. 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
  13. 13. 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
  14. 14. Package applicatif  Son contenu va être disponible sur la machine hôte Dossier ‘approot’
  15. 15. 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
  16. 16. 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>
  17. 17. Configuration du service  Nombre d’instances du/des Roles  Certificats associés  Configuration des plugins  Couples clé/valeur Fichier *.cscfg
  18. 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. 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
  20. 20. Déploiement sur Azure Démonstration
  21. 21. III. INTEGRATION
  22. 22. 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
  23. 23. Administrer JOnAS sur Azure Démonstration
  24. 24. 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
  25. 25. 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>
  26. 26. Application / SQL Azure Démonstration Essayez vous-même:
  27. 27. IV. EVOLUTION
  28. 28. 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
  29. 29. ● 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 liste Stockage 500GB 1 million d’accès 2 VMs - 2 x 1.6GHz 3.5 Go Mémoire NLB JOnAS 1 Tera Octets de trafic JOnAS sur Azure, Combien ca coute
  30. 30. 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
  31. 31. QUESTIONS ?
  32. 32. 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
  33. 33. Chaque semaine, les DevCamps ALM, Azure, Windows Phone, HTML5, OpenData http://msdn.microsoft.com/fr-fr/devcamp Téléchargement, ressources et toolkits : RdV sur MSDN http://msdn.microsoft.com/fr-fr/ Les offres à connaître 90 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

×