35
WildFly als Plattform moderner Enterprise-Anwendungen Mittwochs bei Lehmanns 08.10.2014 Dirk Weil, GEDOPLAN GmbH

WildFly als Plattform moderner Enterprise-Anwendungen

Embed Size (px)

DESCRIPTION

Vortrag bei "Mittwochs bei Lehmanns" in Hamburg. Am 08.10.2014 präsentierte Dirk Weil von GEDOPLAN in Hamburg vor ca. 25 interssierten Gästen aus der IT die Features des Open-Source-Servers WildFly (Namems-Nachfolger des JBoss AS). Im Anschluss wurde intensiv über Applikation Server, Open Source u. a. m. diskutiert. Möchten Sie diesen oder andere Vorträge von GEDOPLAN auch in Ihrem Hause durchführen? Dann sprechen Sie uns an: info(at)gedoplan.de.

Citation preview

Page 1: WildFly als Plattform moderner Enterprise-Anwendungen

WildFly als Plattform

moderner Enterprise-Anwendungen

Mittwochs bei Lehmanns

08.10.2014

Dirk Weil, GEDOPLAN GmbH

Page 2: WildFly als Plattform moderner Enterprise-Anwendungen

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

Page 3: WildFly als Plattform moderner Enterprise-Anwendungen

3

(http://wildfly.org/)

WildFly als Plattform moderner Enterprise-Anwendungen

Page 4: 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

Page 5: 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

Page 6: 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

Page 7: 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

Mail

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

Page 8: 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

Page 9: 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

Page 10: 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

Page 11: 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

Page 12: WildFly als Plattform moderner Enterprise-Anwendungen

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

Page 13: WildFly als Plattform moderner Enterprise-Anwendungen

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

Page 14: 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

Page 15: 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

Page 16: 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

Page 17: 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

Page 18: 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

Page 19: WildFly als Plattform moderner Enterprise-Anwendungen

Administration Console

19 WildFly als Plattform moderner Enterprise-Anwendungen

Page 20: 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

Page 21: 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

Page 22: 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

Page 23: 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

Page 24: 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

Page 25: WildFly als Plattform moderner Enterprise-Anwendungen

Demo: Standalone-Server

25 WildFly als Plattform moderner Enterprise-Anwendungen

Page 26: 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

Page 27: 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

Page 28: 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

Page 29: 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

Page 30: 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

Page 31: 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

Page 32: WildFly als Plattform moderner Enterprise-Anwendungen

Demo: Domain mit 3 Servern

32 WildFly als Plattform moderner Enterprise-Anwendungen

Page 33: 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

Page 34: 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 [email protected] WildFly als Plattform moderner Enterprise-Anwendungen

Page 35: WildFly als Plattform moderner Enterprise-Anwendungen

More

http://javaeeblog.wordpress.com/

http://expertenkreisjava.blogspot.de/

[email protected]

@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 [email protected] WildFly als Plattform moderner Enterprise-Anwendungen