51
Déployer sur terre et dans les nuages Alexis Hassler septembre 2012

JBoss AS 7 : Déployer sur terre et dans les nuages

Embed Size (px)

DESCRIPTION

Présentation au LavaJUG (Clermont-Ferrand), le 13 septembre 2012

Citation preview

Page 1: JBoss AS 7 : Déployer sur terre et dans les nuages

Déployersur terre et dans les nuages

Alexis Hasslerseptembre 2012

Page 2: JBoss AS 7 : Déployer sur terre et dans les nuages

@AlexisHassler

Développeur, formateur Java

Indépendant

Co-leader du

Page 3: JBoss AS 7 : Déployer sur terre et dans les nuages

AlexisHassler

Page 4: JBoss AS 7 : Déployer sur terre et dans les nuages

Historique

1999

2001

2000

2002

2003

2005

2004

2006

2007

2009

2008

2010

20112012

JBoss Group LLC

JBoss Inc

RedHat

2.22.0

3.03.24.0

4.25.05.16.07.0, 6.17.1

Page 5: JBoss AS 7 : Déployer sur terre et dans les nuages

Startup

0 s

5 s

10 s

15 s

20 s

25 s

30 s

35 s

40 s

45 s

50 s

AS 4.0 AS 4.2

AS 5.1

AS 6.0

Page 6: JBoss AS 7 : Déployer sur terre et dans les nuages

Startup

0 s

10 s

20 s

30 s

40 s

50 s

60 s

70 s

80 s

90 s

Geronimo 2

GlassFish 2

GlassFish 3

JBoss 5

JBoss 6

Weblogic 10

Websphere 7

http://tiny.cc/agoncal-as-startup (12/2009)

Page 7: JBoss AS 7 : Déployer sur terre et dans les nuages

Startup

0 s

5 s

10 s

15 s

20 s

25 s

30 s

35 s

40 s

45 s

50 s

AS 4.0 AS 4.2

AS 5.1

AS 6.0

AS 7.0AS 7.1(full)

Page 8: JBoss AS 7 : Déployer sur terre et dans les nuages

Startup

http://community.jboss.org/wiki/AS7StartupTimeShowdown

Page 9: JBoss AS 7 : Déployer sur terre et dans les nuages

Lightweight

0 Mo

20 Mo

40 Mo

60 Mo

80 Mo

100 Mo

120 Mo

140 Mo

160 Mo

180 Mo

AS 4.0 AS 4.2

AS 5.1

AS 6.0

AS 7.0

AS 7.1(full)

Heap used

Page 10: JBoss AS 7 : Déployer sur terre et dans les nuages

Configuration

find <profile_dir> -name *.xml | wc -l

0

20

40

60

80

100

120

140

160

AS 4.0 AS 4.2

AS 5.1

AS 6.0

AS 7.1

Page 11: JBoss AS 7 : Déployer sur terre et dans les nuages

bin

bundles

modules

standalone

domain

welcome-content

configuration

data

deployments

lib/ext

docs

bin

client

lib

server

common

docs

deploylib

default

standardalljbossweb-standaloneminimal

confdatadeploy

libdeployers

Configuration

Page 12: JBoss AS 7 : Déployer sur terre et dans les nuages

Configuration

standalone/configuration/standalone.xml

Page 13: JBoss AS 7 : Déployer sur terre et dans les nuages

Configuration

server/default/deploy/hdscanner-jboss-beans.xml

server/default/conf/bootstrap/profile.xml

Page 14: JBoss AS 7 : Déployer sur terre et dans les nuages

Configuration

standalone.xml

domain.xml / host.xml

*-jms.xml

Queues & Topics

*-ds.xml

Datasource

Page 15: JBoss AS 7 : Déployer sur terre et dans les nuages

Composants AS7

Core Infrastructure

SubsystemsD

atas

ourc

e

Java

EE

EJB

CDI -

Wel

d

JPA

- H

iber

nate

Nam

ing

Cach

e -

Infi

nisp

an

JMS

- H

orne

tQ

JGro

ups

JAX

-RS

- RE

STea

sy

JCA

- Ir

onJa

cam

ar

JBos

s Tr

ansa

ctio

n

JBos

s Lo

ggin

g

JSF

- M

ojar

ra

JAX

-WS

- CX

F

...

Page 16: JBoss AS 7 : Déployer sur terre et dans les nuages

Composants AS6

Micro container

ServicesD

atas

ourc

e

Java

EE

EJB

CDI -

Wel

d

JPA

- H

iber

nate

Nam

ing

Cach

e -

Infi

nisp

an

JMS

- H

orne

tQ

JGro

ups

JAX

-RS

- RE

STea

sy

JCA

JBos

s Tr

ansa

ctio

n

JBos

s Lo

ggin

g

JSF

- M

ojar

ra

JAX

-WS

- CX

F

...

Page 17: JBoss AS 7 : Déployer sur terre et dans les nuages

Architecture AS7

Core Infrastructure

Subsystems

Deployers VFS Jandex Reflect Cache Repository

Server Controller Service

MSCJBoss

ModulesDMR Controller Threads

Page 18: JBoss AS 7 : Déployer sur terre et dans les nuages

Déploiement

bin

bundles

modules

standalone

configuration

data

deployments

lib/ext

Automatique

– idem AS <7 pour les archives

– désactivé en mode explosé

cp demo.war $JBOSS_HOME/standalone/deployments/

17:12:24,923 INFO ... Deployed "demo.war"

Page 19: JBoss AS 7 : Déployer sur terre et dans les nuages

Déploiement

Manuel

– auto-deploy-zipped="false"

cp demo.war $JBOSS_HOME/standalone/deployments/

17:12:24,923 INFO ... Found demo.war ...

touch $JBOSS_HOME/standalone/deployments/demo.war.dodeploy

17:12:24,923 INFO ... Found demo.war ...

Page 20: JBoss AS 7 : Déployer sur terre et dans les nuages

Administration

Console CLI

HTTP / JSON Java API

Page 21: JBoss AS 7 : Déployer sur terre et dans les nuages

http://<host>:9990/console

Page 22: JBoss AS 7 : Déployer sur terre et dans les nuages

jboss-admin.sh

Naviguer

– cd, ls, pwd

Lire la configuration

– :read-resource, :read-attribute,...

Modifier la configuration

– :add-namespace, :write-attribute,...

Page 23: JBoss AS 7 : Déployer sur terre et dans les nuages

jboss-admin.sh

Datasource

Déploiement

upload + deploy

undeploy

Page 24: JBoss AS 7 : Déployer sur terre et dans les nuages

Modules

"Classpath is dead!"

Mark Reinhold, JavaOne 2009

http://java.sun.com/javaone/2009/general_sessions.jsp

Page 25: JBoss AS 7 : Déployer sur terre et dans les nuages

Modules

Java Module

– Projet Jigsaw

– Java SE 8

OSGi

JBoss Module

Page 26: JBoss AS 7 : Déployer sur terre et dans les nuages

Modules

Hiérarchie Modularité

System Classloader

JBossClassloaders

DeploymentClassloader

DeploymentClassloader

Sub-deploymentClassloader

UCR

deployment.my.war

org.hibernate.core

org.slf4j

org.jboss.weld

org.javassist

Page 27: JBoss AS 7 : Déployer sur terre et dans les nuages

Modules

Modules système

– Java EE

Modules user

Local Resource

Inter deployment dependencies

Page 28: JBoss AS 7 : Déployer sur terre et dans les nuages

Déploiement

Séparation module / application

1 war => 1 module

– deployment.demo.war

Page 29: JBoss AS 7 : Déployer sur terre et dans les nuages

Déploiement

1 ear => n modules

– ear/lib

– war

– ear

<!-- config globale --><subsystem xmlns="urn:jboss:domain:ee:1.0" > <ear-subdeployments-isolated> false </ear-subdeployments-isolated></subsystem>

<!-- jboss-deployment-structure.xml--><jboss-deployment-structure> <ear-subdeployments-isolated> true </ear-subdeployments-isolated></jboss-deployment-structure>

Page 30: JBoss AS 7 : Déployer sur terre et dans les nuages

Module global

standalone.xml ou domain.xml

– Slot = version

<subsystem xmlns="urn:jboss:domain:ee:1.0" > <global-modules> <module name="org.javassist" slot="main" /> </global-modules></subsystem>

Page 31: JBoss AS 7 : Déployer sur terre et dans les nuages

Domain

Host 1

HostController

Server

Server

Host 2

HostController

Server

Host 3

HostController

Server

Host 0

DomainController

Page 32: JBoss AS 7 : Déployer sur terre et dans les nuages

Domain

Host 1

HostController

Server

Server

Host 2

HostController

Server

Host 3

HostController

Server

Host 0

DomainController

Server Group 1

Server Group 2

Page 33: JBoss AS 7 : Déployer sur terre et dans les nuages

RHQ

Host 1

RHQAgent

JBoss AS

Httpd

Host 2

RHQAgent

...Host 0

RHQServer

MySQLOSMem, CPU, FS

...

...

...

Page 34: JBoss AS 7 : Déployer sur terre et dans les nuages

IDE

Eclipse 3.7+ avec JBoss Tools

IntelliJ IDEA 11

Netbeans 7.2

Page 35: JBoss AS 7 : Déployer sur terre et dans les nuages
Page 36: JBoss AS 7 : Déployer sur terre et dans les nuages

Cloud

IaaSInfrastructure as a Service

PaaSPlatform as a Service

SaaSSoftware as a Service

Hardware+

OS

Runtime/

Middleware

Software

Page 37: JBoss AS 7 : Déployer sur terre et dans les nuages

PaaS by redhat

Java, Perl, PHP, Python, Ruby

Page 38: JBoss AS 7 : Déployer sur terre et dans les nuages

OpenShift

– Git

– < Web profile

– EAP 6

Page 39: JBoss AS 7 : Déployer sur terre et dans les nuages

OpenShift Origin

EAP 6

Page 40: JBoss AS 7 : Déployer sur terre et dans les nuages

Cloudbees

Java EE 6 – Web Profile

Uniquement war

Déploiement par l'API Cloudbees

DD spécifiques Cloudbees

Page 41: JBoss AS 7 : Déployer sur terre et dans les nuages

?

Page 42: JBoss AS 7 : Déployer sur terre et dans les nuages

Versions intermédiaires

JBoss AS 7.0 CR1

JBoss AS 7.0.0.Final

JBoss AS 7.1.1.Final

Page 43: JBoss AS 7 : Déployer sur terre et dans les nuages

Migration

JBoss AS 6 => JBoss AS 7

cf. E. Hugonnet (@ehsavoie)

Migration de Silverpeas

Page 44: JBoss AS 7 : Déployer sur terre et dans les nuages

Modules

Log4J

Corrigé en 7.1.2

deployment.my.war

org.apache.log4j

war

modules

org.apache.log4j:main

Page 45: JBoss AS 7 : Déployer sur terre et dans les nuages

AS / EAP

JBoss AS 7.1.2

Base pour JBoss EAP 6

Pas de release officielle !

git clone git://github.com/jbossas/jboss-as.gitcd jboss-asgit checkout 7.1.2.Final./build.sh -DskipTests

cp -R build/target/jboss-as-7.1.2.Final /opt/java/

Page 46: JBoss AS 7 : Déployer sur terre et dans les nuages

Messages d'erreur

{"JBAS014653: Opération composite échouée et annulée. Étapes déficientes :" => {"Opération step-2" => {"JBAS014771: Services avec des dépendances manquantes/non disponibles" => ["jboss.deployment.unit.\"swmsg-web.war\".jboss.security.jacc Missing[JBAS014861: <one or more transitive dependencies>]","jboss.deployment.unit.\"swmsg-web.war\".component.\"org.apache.catalina.servlets.DefaultServlet\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.naming.context.java.module.swmsg-web.swmsg-web.env.ejb.MessageSecured Missing[jboss.naming.context.java.app.swmsg-web.swmsg-ejb3.\"MessageSecuredBean!fr.sewatech.formation.appserv.ejb3.MessageServiceLocal\"]","jboss.deployment.unit.\"swmsg-web.war\".component.\"javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.naming.context.java.module.swmsg-web.swmsg-web.env.ejb.MessageService Missing[jboss.naming.context.java.app.swmsg-web.swmsg-ejb3.\"MessageServiceBean!fr.sewatech.formation.appserv.ejb3.MessageServiceLocal\"]","jboss.naming.context.java.module.swmsg-web.swmsg-web.env.jdbc.sewa-ds Missing[jboss.naming.context.java.SewaDS]","jboss.deployment.unit.\"swmsg-web.war\".jndiDependencyService Missing[JBAS014861: <one or more transitive dependencies>]","jboss.naming.context.java.module.swmsg-web.swmsg-web.env.jms.SWq Missing[jboss.naming.context.java.queue.SWq]","jboss.deployment.unit.\"swmsg-web.war\".component.\"com.sun.faces.config.ConfigureListener\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.deployment.unit.\"swmsg-web.war\".component.\"javax.faces.webapp.FacetTag\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.deployment.unit.\"swmsg-web.war\".component.\"javax.servlet.jsp.jstl.tlv.ScriptFreeTLV\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.deployment.unit.\"swmsg-web.war\".component.\"org.apache.jasper.servlet.JspServlet\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.deployment.unit.\"swmsg-web.war\".component.\"fr.sewatech.formation.appserv.web.PageFilter\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.deployment.unit.\"swmsg-web.war\".component.\"fr.sewatech.formation.appserv.web.MessageServlet\".START Missing[JBAS014861: <one or more transitive dependencies>]","jboss.web.deployment.default-host./swmsg-web Missing[JBAS014861: <one or more transitive dependencies>]"]}}}

Page 47: JBoss AS 7 : Déployer sur terre et dans les nuages

JBoss Logging

standalone.xml<subsystem xmlns="urn:jboss:domain:logging:1.1"> <periodic-rotating-file-handler name="FILE"> <formatter> <pattern-formatter pattern="%d %-5p [%c] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="server.log"/> <suffix value=".yyyy-MM-dd"/> <append value="true"/> </periodic-rotating-file-handler> <root-logger> <level name="INFO"/> <handlers> <handler name="FILE"/> </handlers> </root-logger></subsystem>

Page 48: JBoss AS 7 : Déployer sur terre et dans les nuages

Conclusion

Glassfish 3

Glassfish 2

1999

2001

2000

2002

2003

2005

2004

2006

2007

2009

2008

2010

20112012

2.22.0

3.03.24.0

4.25.05.16.07.0, 6.17.1

Page 49: JBoss AS 7 : Déployer sur terre et dans les nuages

http://www.jboss.org/as7.html

http://www.jboss.org/openshift/

Page 50: JBoss AS 7 : Déployer sur terre et dans les nuages

Auto-promotion

http://www.sewatech.fr/formation-jboss-7.html

16 au 18 octobre 2012 à Lyon

Page 51: JBoss AS 7 : Déployer sur terre et dans les nuages

?