Post on 19-Jun-2015
description
WildFly als Plattform
moderner Enterprise-Anwendungen
Mittwochs bei Lehmanns
08.10.2014
Dirk Weil, GEDOPLAN GmbH
Dirk Weil
GEDOPLAN GmbH, Bielefeld
IT Consulting
IT Training
Java EE seit 1998
Konzeption und Realisierung
Seminare
Vorträge
Veröffentlichungen
2 WildFly als Plattform moderner Enterprise-Anwendungen
3
(http://wildfly.org/)
WildFly als Plattform moderner Enterprise-Anwendungen
Versionshistorie
4
2007 2008 2009 2010 2011 2012 2013 2014
7.1
.1
8.1
.0
Final
WildFly als Plattform moderner Enterprise-Anwendungen
Enterprise Application Platform
Kommerzielle Version auf Basis der Community Edition
JBoss EAP basiert auf JBoss AS
EAP x.y.z License
Alpha Community / LGPL
Beta 0$ Developer Subscription
GA Supported Product
EAP-Version basiert auf AS-Version
6.1.0 7.2
6.2.0 7.3
5 WildFly als Plattform moderner Enterprise-Anwendungen
WildFly
Namenswechsel JBoss AS WildFly
JBoss AS 7.1.1 war letztes JBoss-AS-Release
WildFly 8 implementiert Java EE 7
6 WildFly als Plattform moderner Enterprise-Anwendungen
Standard-Unterstützung
AS
WildFly
EAP
4.2.3 J2EE 1.4
5.1.0 Java EE 5
6.1.0 Java EE 6 Full Profile
7.1.1 Java EE 6 Full Profile
(7.2.0) 6.1.0 Java EE 6 Full Profile
8.1.0 Java EE 7
JAX-
WS
Batch
JSP JSF
Serv-
let
JAX-
RS
JAXR
JSTL JPA CDI JSON-
P JCA JMS
BV EJB*
EL
JACC JNDI JTA Full Web
* im Web
Profile nur
EJB Lite
7 WildFly als Plattform moderner Enterprise-Anwendungen
Installation
Download von http://www.wildfly.org/downloads
WildFly 8.1.0.Final
Quellcode (auch) auf https://github.com/wildfly
Entpacken an einen Ort der eigenen Wahl, z.B.
c:\server\wildfly (Windows),
erzeugt c:\server\wildfly\wildfly-8.1.0.Final
/opt/server/wildfly (Unix),
erzeugt /opt/server/wildfly/wildfly-8.1.0.Final
8 WildFly als Plattform moderner Enterprise-Anwendungen
Aufbau
Verzeichnis-Struktur:
Home-Verzeichnis
Skripte zum Starten und Stoppen
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
Deployments
Installierte Bibliotheken
Log-Dateien
Temporäre Dateien / deployments
Konfigurationsfiles, Deployments, Beschreibbares Areal
für Application Client Container
9 WildFly als Plattform moderner Enterprise-Anwendungen
Modulkonzept
Bisher: Alle vorhandenen Services wurden geladen
hohe Startzeit, hoher Speicherverbrauch
JBoss 7, WildFly: Nur was gebraucht wird, wird geladen
massive Einsparung von Startzeit und Speicher
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
10 WildFly als Plattform moderner Enterprise-Anwendungen
Modulkonzept
WildFly als Plattform moderner Enterprise-Anwendungen 11
App. A
Svc. D
Svc. C
depends on depends on
App. B
Svc. F
Svc. E depends on
depends on
depends on
App. A
Svc. D
Svc. C
depends on depends on
Svc. F
Svc. E
App. A
Svc. D
Svc. C
depends on depends on
JBoss 7 / WildFly
Vorversionen
Modulkonzept
Nur benötigte Klassen werden geladen
Software liegt in Modulen vor
unter JBOSS_HOME/modules
jedes (Sub-) Deployment
Implizite und explizite Referenzen
triggern Ladevorgang
bestimmen Classpath
Modulisolation erlaubt unterschiedliche Versionen ohne Konflikt
WildFly als Plattform moderner Enterprise-Anwendungen 12
JBoss-Management-Konzepte
Standalone
Betrieb eines einzelnen Servers
Entspricht dem Modus der Vorversionen
Domain
Betrieb mehrerer Server als administrative Gruppe
Ggf. über mehrere Rechner verteilt
Zentrale Konfiguration
Zentrale Überwachung
Zentrales Deployment
13 WildFly als Plattform moderner Enterprise-Anwendungen
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/sh
Für viele Anwendungen ausreichend
Ggf. eigenes Multiserver-Betriebskonzept nötig (Initiale
Konfiguration in standalone-ha.xml)
14 WildFly als Plattform moderner Enterprise-Anwendungen
Standalone-Modus
Clusterbetrieb möglich
aber: Kein gemeinsames Deployment (kein Farm-Service)!
Standalone
Server
Standalone
Server
Standalone
Server
Standalone
Server
15 WildFly als Plattform moderner Enterprise-Anwendungen
Standalone - Aufbau
Konfigurationsdatei(en)
(Deployment)-Daten
Ordner für das „Hot“-Deployment
benötigte Bibliotheken (ungenutzt)
Log-Dateien
Temporäre Dateien
16 WildFly als Plattform moderner Enterprise-Anwendungen
Deployment im Standalone-Modus
Auto-Deployment-Ordner standalone/deployments
Neue, veränderte, gelöschte Dateien führen zum Deployment,
Redeployment bzw. Undeployment
Anwendungen können gepackt
oder „exploded“ sein
17 WildFly als Plattform moderner Enterprise-Anwendungen
Deployment im Standalone-Modus
Marker-Files geben Feedback über die Deploy-Aktionen
18 WildFly als Plattform moderner Enterprise-Anwendungen
Administration Console
19 WildFly als Plattform moderner Enterprise-Anwendungen
Administration Console
Komplette Neuentwicklung seit JBoss 7
"Editor" für die Konfiguration
Datasources
Logging
Binding
System Properties
…
(Un-)Deployment von Anwendungen
20 WildFly als Plattform moderner Enterprise-Anwendungen
Admin-CLI
Kommandozeilentool zur Administration
bin/jboss-cli.bat bzw. jboss-cli.sh
mächtiges Kommandozeilenwerkzeug
ermöglicht Remotesteuerung
bietet Batch-Verarbeitung
21
jboss-cli.bat
You are disconnected at the moment. Type 'con
[disconnected /] connect localhost:9990
[standalone@localhost:9990 /]
WildFly als Plattform moderner Enterprise-Anwendungen
Admin-CLI
Abfragen und Setzen von Konfigurationswerten
Start & Stopp von Servern
(Un-)Deployment von Anwendungen
22
[standalone@localhost:9990 /] # Server neu starten
[standalone@localhost:9990 /] /:shutdown(restart=true)
[standalone@localhost:9990 /] # Anwendung deployen und aktivieren
[standalone@localhost:9990 /] deploy d:\GEDOPLAN\...\showServer.war
WildFly als Plattform moderner Enterprise-Anwendungen
RBAC
Role Based Access Control
Feingranulare Rechteverteilung für Administratoren
23
Role Configuration Runtime Sensitive Data Access
Control
Audit
Log read change read change read change
Monitor
Operator
Maintainer
Deployer * *
Administrator
Auditor
SuperUser
* nur anwendungsbezogene Daten
WildFly als Plattform moderner Enterprise-Anwendungen
Undertow
Neue Webcontainer-Implementierung
Beherrscht Protocol Upgrade
u. a. für Websocket
auch für Remoting, JMX, …
Reduktion der verwendeten Ports (Ziel: 2)
24 WildFly als Plattform moderner Enterprise-Anwendungen
Demo: Standalone-Server
25 WildFly als Plattform moderner Enterprise-Anwendungen
Domain-Modus
Menge von Servern
Auch auf verschiedenen Rechnern
Eine Konfigurationsdatei
domain/configuration/domain.xml
Können heterogen sein
Steuerung durch Host Controller
Ein HC pro Host
Einer davon ist Domain Controller
Konfig-Datei domain/configuration/host.xml
26 WildFly als Plattform moderner Enterprise-Anwendungen
Domain-Modus
Konfigurieren einer Domäne
Konfigurationsdatei domain.xml
Konfigurieren eines Host Controllers pro Host
Konfigurationsdatei host.xml
Start: bin/domain.bat bzw. bin/domain.sh
27 WildFly als Plattform moderner Enterprise-Anwendungen
Domain - Aufbau
28
Konfigurationsdatei(en)
Daten
Bibliotheken (ungenutzt)
Log-Dateien
Dateien der einzelnen Server
WildFly als Plattform moderner Enterprise-Anwendungen
Domain-Modus
29
Host 1
Domain
Controller
Host 2
Host
Controller Server
Host 4
Host
Controller
Server
Server
Host 3
Host
Controller Server
WildFly als Plattform moderner Enterprise-Anwendungen
Domain-Modus
Servergruppen gruppieren Serverinstanzen
gemeinsame Konfiguration der Subsysteme
gemeinsames Deployment
30
Host 1 Host 2 Host 3
Gruppe A
Gruppe B
Gruppe C
Server
Server Server
Server Server Server
WildFly als Plattform moderner Enterprise-Anwendungen
Cluster
Lastverteilung
Ausfallsicherheit
Replikation von Sitzungsdaten
Verteiltes Messaging
Verteilter Cache
mod_cluster
WildFly als Plattform moderner Enterprise-Anwendungen 31
Demo: Domain mit 3 Servern
32 WildFly als Plattform moderner Enterprise-Anwendungen
Fazit
schnell
leichtgewichtig
Konfiguration vereinfacht
Domainmanagement
aber:
Dokumentation teilweise noch lückenhaft
Migration von Altsystemen ggf. nicht trivial
33 WildFly als Plattform moderner Enterprise-Anwendungen
More
Seminare zum Thema, z. B.
Entwicklung und Betrieb von
Anwendungen auf JBoss / WildFly
http://www.gedoplan-it-training.de
Softwareentwicklung, Beratung, Review, Coaching
zu Java EE, JBoss, WildFly, …
http://www.gedoplan-it-consulting.de
34 dirk.weil@gedoplan.de WildFly als Plattform moderner Enterprise-Anwendungen
More
http://javaeeblog.wordpress.com/
http://expertenkreisjava.blogspot.de/
dirk.weil@gedoplan.de
@dirkweil
W-JAX 2014 in München
Power Workshop Java EE
Speeding up Java Persistence
Der App-Server ist tot – es lebe der App-Server!
35 dirk.weil@gedoplan.de WildFly als Plattform moderner Enterprise-Anwendungen