Schneller, besser, sparsamer - JBoss 7

32
JBoss 7 - Neuerungen und Verbesserungen Treffpunkt Arminius, 29.11.2011, IPS IT-Schulungen Klaus Bertelt, GEDOPLAN GmbH

description

Folien zum Vortrag Expertenkreis Java, 29.11.2011, Bielefeld

Transcript of Schneller, besser, sparsamer - JBoss 7

Page 1: Schneller, besser, sparsamer -  JBoss 7

JBoss 7 - Neuerungen und Verbesserungen

Treffpunkt Arminius, 29.11.2011, IPS IT-Schulungen

Klaus Bertelt, GEDOPLAN GmbH

Page 2: Schneller, besser, sparsamer -  JBoss 7

2

(http://www.jboss.org/jbossas)

Page 3: Schneller, besser, sparsamer -  JBoss 7

Versionshistorie

7.1

3

2007 2008 2009 2010 2011 2012

Page 4: Schneller, besser, sparsamer -  JBoss 7

Profile

JBoss 7.0.x: Java EE 6

Web Profile7.0.0.Final (07/2011)

7.0.2.Final (09/2011)7.0.2.Final (09/2011)

JBoss 7.1.x: Java EE 6

Full Profile7.1.0.CR1 (12/2011)

7.1.0.Final (01/2012)

4

Page 5: Schneller, besser, sparsamer -  JBoss 7

Installation

Das Download-File wird zur Installation an einen Ort der eigenen Wahl ausgepackt, z.B.

c:\ (Windows),erzeugt Verzeichnis c:\jboss_7.x.x

/opt (Unix),erzeugt Verzeichnis /opt/jboss_7.x.x

5

Page 6: Schneller, besser, sparsamer -  JBoss 7

Aufbau

Es ergibt sich folgende Verzeichnis-Struktur (nach dem ersten Start):JBoss-Home-Verzeichnis

Skripte zum Starten und Stoppen

OSGi-Bundles

Lizenz-Dokumente & XML-Schemata

6

Lizenz-Dokumente & XML-Schemata

Hauptverzeichnis für den Domain-Mode

Module für das Class Loading

Welcome Page

Hauptverzeichnis für den Standalone-Mode

Konfigurationsdateien

Persistente Informationen des Servers

Deployment s

Installierte Bibliotheken

Log-Dateien

Temporäre Dateien

Page 7: Schneller, besser, sparsamer -  JBoss 7

Konfiguration

Frühere Versionen:

Services haben eigene Konfiguration

Viele XML-Files, Service-Deployments

JBoss 7:

ZentraleKonfigurations-datei(en)

7

Page 8: Schneller, besser, sparsamer -  JBoss 7

Starten & Stoppen

Start-Skripte im Ordner bin:

Standalone–Modus: standalone.bat / standalone.sh

Domain–Modus: domain.bat / domain.sh

Stoppen:/jboss-admin.bat --connect/jboss-admin.bat --connect

command=:shutdown (Windows)/jboss-admin.sh --connect

command=:shutdown (Unix)

Oder einfach: Strg+C

8

Page 9: Schneller, besser, sparsamer -  JBoss 7

Modulkonzept

Version Startzeit in Sekunden Speicher in MB

5.1.0.GA 32,92 374

6.1.0.Final 19,84 327

7.0.1.Final 2,83 75

9

0

5

10

15

20

25

30

35

5.1.0.GA 6.1.0.Final 7.0.1.Final

Startzeit in Sekunden

0

100

200

300

400

5.1.0.GA 6.1.0.Final 7.0.1.Final

Speicher in MB

Page 10: Schneller, besser, sparsamer -  JBoss 7

Modulkonzept

Bisher: Alle vorhandenen Services wurden geladen

� hohe Startzeit

� hoher Speicherverbrauch

JBoss 7: Nur was gebraucht wird, wird geladen

� MASSIVE Einsparung von Startzeit und Speicher

10

Page 11: Schneller, besser, sparsamer -  JBoss 7

Geladene Software

Modulkonzept

Vorversionen: Laden aufgrund der Konfiguration

App. AApp. B

Geladene Software

App. A

11

App. A

Svc. D

Svc. C

depends ondepends on

App. B

Svc. F

Svc. Edepends ondepends on

depends on

depends on

App. A

Svc. D

Svc. C

depends ondepends on

Svc. F

Svc. E

Page 12: Schneller, besser, sparsamer -  JBoss 7

Geladene Software

Modulkonzept

JBoss 7: Laden aufgrund von Abhängigkeiten

App. AApp. B

Geladene Software

App. A

12

App. A

Svc. D

Svc. C

depends ondepends on

App. B

Svc. F

Svc. Edepends ondepends on

depends on

depends on

App. A

Svc. D

Svc. C

depends ondepends on

Page 13: Schneller, besser, sparsamer -  JBoss 7

JBoss Modules – Was ist das?

Eigenständiges Projekt

Bestandteil des JBoss 7

Module liegen in modules

Haben folgende StrukturHaben folgende Struktur1 oder mehrere JAR-Files

Konfigurationsdateien

Eigene Module können ergänzt werden

13

Page 14: Schneller, besser, sparsamer -  JBoss 7

JBoss-Management-Konzepte

Standalone

Betrieb eines einzelnen Servers

Entspricht dem Modus der Vorversionen

DomainDomain

Betrieb mehrerer Server als administrative Gruppe

Ggf. über mehrere Rechner verteilt

Zentrale Konfiguration

Zentrale Überwachung

Zentrales Deployment

14

Page 15: Schneller, besser, sparsamer -  JBoss 7

Standalone-Modus

Jeder Server wird einzeln gemanagt (wie in den Vorgängerversionen)

Der Nutzer ist für serverübergreifende Änderungen verantwortlich

Eine Konfigurationsdatei

standalone/configuration/standalone.xml

Start: bin/standalone.bat bzw. bin/standalone.shStart: bin/standalone.bat bzw. bin/standalone.sh

Für viele Anwendungen ausreichend

Ggf. eigenes Multiserver-Betriebskonzept nötig

15

Page 16: Schneller, besser, sparsamer -  JBoss 7

Standalone-Modus

Clusterbetrieb möglich

aber: Kein gemeinsames Deployment (kein Farm-Service)!

16

StandaloneServer

StandaloneServer

StandaloneServer

StandaloneServer

Page 17: Schneller, besser, sparsamer -  JBoss 7

Domain-Modus

Menge(n) von Servern

Auch auf verschiedenen Rechnern

Eine Konfigurationsdatei

domain/configuration/domain.xmldomain/configuration/domain.xml

Können heterogen sein

17

Page 18: Schneller, besser, sparsamer -  JBoss 7

Domain-Modus

Host 1

Host 2

HostController

JBossServer

Host 4

JBossServer

Gruppe A

18

Host 1

Domain Controller

HostController

Server

JBossServer

Host 3

HostController

JBossServer

Gruppe B

Page 19: Schneller, besser, sparsamer -  JBoss 7

Domain-Modus

Steuerung durch Host Controller

Ein HC pro Host

Einer davon ist Domain Controller

Konfig-Datei domain/configuration/host.xmlKonfig-Datei domain/configuration/host.xml

Konfigurieren einer Domäne

� Konfigurationsdatei domain.xml

Konfigurieren eines Host Controllers pro Host� Konfigurationsdatei host.xml

Start: bin/domain.bat bzw. bin/domain.sh

19

Page 20: Schneller, besser, sparsamer -  JBoss 7

Domain-Modus

Servergruppen gruppieren Server

gemeinsame Konfiguration der Subsysteme

gemeinsames Deployment

20

Host 1 Host 2 Host 3

Gruppe A

Gruppe B

Gruppe C

Server

Server Server

Server ServerServer

Page 21: Schneller, besser, sparsamer -  JBoss 7

Domain-Modus

Demo:

Domäne erstellen

Server starten

Anwendung deployenAnwendung deployen

21

Page 22: Schneller, besser, sparsamer -  JBoss 7

Domain-Modus

Process Controller

startet /stoppt Host Controller und Server (pro Rechnerinstanz)

agiert als Watchdog

Sofortiger Neustart ausgefallener …

… Server

… Host Controller

22

Domain ist kein Cluster!

Gruppen können aber als Cluster betrieben werden.

Page 23: Schneller, besser, sparsamer -  JBoss 7

Administration Console

Webanwendung für die Administration

http://host:9990/console

Standalone & Domain Mode

"Editor" für die Konfiguration"Editor" für die Konfiguration

Datasources

Logging

Ports

System Properties

(Un-)Deployment von Anwendungen

23

Page 24: Schneller, besser, sparsamer -  JBoss 7

Administration Console

1

2

24

2

3

Page 25: Schneller, besser, sparsamer -  JBoss 7

Administration Console

Im Domain Mode:

Konfiguration vonServergruppen

Start & Stopp vonStart & Stopp vonServern

25

Page 26: Schneller, besser, sparsamer -  JBoss 7

Admin-CLI

Kommandozeilentool zur Administration

bin/jboss-admin.bat bzw. jboss-admin.sh

mächtiges Kommandozeilenwerkzeug

ermöglicht Remotesteuerungermöglicht Remotesteuerung

bietet Batch-Verarbeitung

26

Page 27: Schneller, besser, sparsamer -  JBoss 7

Admin-CLI

Abfragen und Setzen von Konfigurationswerten

Start & Stopp von Servern

(Un-)Deployment von Anwendungen

27

Page 28: Schneller, besser, sparsamer -  JBoss 7

Migration von Altprojekten

„Eigentlich“ simpel, aber:

Es wird nur das Web-Profile unterstütztkein Remote-Zugriff (Stand 7.0.x)

Evtl. anderer JNDI - Lookup für Remote ClientsEvtl. anderer JNDI - Lookup für Remote ClientsDiskussionen in der Entwicklergemeinde (7.1.x)

Packaging ist bedeutend „strenger“ als früher.ejb und .war im Root der .ears

.jars in den Ordner lib

Verändertes Classloading kann zu ClassNotFoundExceptionsführen

28

Page 29: Schneller, besser, sparsamer -  JBoss 7

Tipps für die Migration

saubere, dem Standard entsprechende Paketierung

Verständnis über die Abhängigkeiten

Evtl. explizit deklarierenMANIFEST.MF MANIFEST.MF

jboss-deployment-structure.xml

Unterstützendes Tool:

tattletale � http://www.jboss.org/tattletale

Erkennt Abhängigkeiten der Anwendung und stellt sie grafisch dar.

29

Page 30: Schneller, besser, sparsamer -  JBoss 7

Bisherige Erfahrungen

Standalone Mode

Als Entwicklungsserver schnell und unproblematisch

Redeploy-Problematik gelöst (?) � Memory Leak

Domain ModeDomain Mode

Administration Console zerstört sporadisch die Konfiguration

Dokumentation ungenügend

Administration Console noch sehr lückenhaft

Bislang keine Produktiv-Erfahrungen

30

Page 31: Schneller, besser, sparsamer -  JBoss 7

Fazit

schnell

leichtgewichtig

Konfiguration vereinfacht

DomainmanagementDomainmanagement

aber:

bislang noch kein Full Profile (� 7.1)

immer noch schlecht dokumentiert

Migration von Altsystemen ggf. nicht trivial

Domain Mode nicht ganz stabil

31

Page 32: Schneller, besser, sparsamer -  JBoss 7

Danke für Ihre Aufmerksamkeit!

Haben Sie Fragen?