EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i...

28
EAP 7.0 on-premise & in the cloud Andrzej Kowalczyk Senior Solution Architect Red Hat

Transcript of EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i...

Page 1: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

EAP 7.0 on-premise & in the cloud

Andrzej KowalczykSenior Solution Architect Red Hat

Page 2: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Czym jest Jboss EAP 7?

Leading Open Source Java EE Application Server

Wspiera najnowszą wersję Java EE 7 Wsparcie dla Java SE 8 Posiadający wsparcie Red Hat, stabilny, bezpieczny i innowacyjny 100% open-source 100% Java Równie wygodny do zastosowań “on-prem” lub w chmurze Bazujący na Wildfly 10

Page 3: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Główne kierunki zmian w JBoss EAP 7

Wsparcie Java EE 7 dla “web profile” oraz “full platform” Zaawansowane zarządzanie i bezpieczeństwo Większa modularyzacja Bardziej funkcjonalny interfejs użytkownika w konsoli web Współdziałanie i kompatybilność

Image source: https://www.flickr.com/photos/76686348@N05/7159380667

Page 4: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Genealogia wersji - EE / Community / ProduktJava EE specification Community project

J2EE 1.2 → JBoss AS 2

J2EE 1.3 → JBoss AS 3

J2EE 1.4 → JBoss AS 4 → JBoss EAP 4

Java EE 5 → JBoss AS 5,6 → JBoss EAP 5

Java EE 6 → JBoss AS 7 → JBoss EAP 6

Java EE 7 → WildFly 8,9,10 → JBoss EAP 7

Page 5: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

JBoss EAP Komponenty / StandardyEAP 5 EAP 6 EAP 7

Java EE 5 Java EE 6 Java EE 7

JDK 6 & 7 JDK 6, 7 & 8 JDK 8

JBoss Web (Servlet 2.5, JSP 2.1, JSF 1.2)

JBoss Web (Servlet 3.0, JSP 2.2, JSF 2.0) Undertow (Servlet 3.1, JSP 2.3, JSF 2.2)

EJB 2x / 3x CDI 1.0 + EJB 3.1 CDI 1.1 + EJB 3.2

Hibernate 3.3 (JPA 1.0) Hibernate 4 (JPA 2.0) Hibernate 5 (JPA 2.1)

JBoss Messaging 1.4 (JMS 1.1) HornetQ 2.2 (JMS 1.1) Apache Active MQ Artemis (JMS 2.0)

- RESTEasy (JAX-RS 1.1) RESTEasy (JAX-RS 2.0)

JBoss WS (JAX-WS 2.0) JBoss WS/CXF (JAX-WS 2.2) JBoss WS/CXF (JAX-WS 2.2)

JCA 1.5 IronJacamar (JCA 1.6) IronJacamar (JCA 1.7)

Page 6: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

JBoss EAP 7 - cechy ( 1 )Minimalna i elastyczna architektura gotowy do użycia w chmurze i w kontenerze mody operacyjne kompatybilność

Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne

Pojedynczy plik konfiguracyjny wszystkie szczegóły konfiguracyjne są widoczne w jednym centralny pliku łatwiejszy w obsłudze plik konfiguracyjny z ustawionymi wartościami domyślnymi

Page 7: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

JBoss EAP 7 - cechy ( 2 )Ekstremalna modułowość Niewielka podstawa większość właściwości zawarta w modułach Izolacja aplikacji z bardziej inteligentnym “class loader” Może być wprowadzany i konfigurowany wg potrzebLekkość Ograniczone użycie pamięci i CPU Zredukowane użycie portów i sieciManagement flexibility Command Line Interface (CLI) Konsola web: wygodniejsza, z większymi możliwościami Wszechstronne, zautomatyzowane i eleganckie API

Page 8: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Architektura gotowa do chmury Wysoki stopień automatyzacji Elastyczne zarządzanie Małe zużycie zasobów Lean, agile development Otwarte platformy Wysoka izolacja i bezpieczeństwo (kontenery)

Red Hat JBoss Middleware

Fizyczne Wirtualne Prywatna / Hybrydowa / Publiczna

Page 9: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Architektura

MSC JBoss Modules DMR Controller Threads

CORE INFRASTRUCTURE

SERVICE CONTROLLER SERVICE

DEPLOYERS VFS JANDEX REFLECT CACHE REPOSITORY

SUBSYSTEMS

LOG

GIN

G

BA

TCH

DE

PLO

YM

EN

T-S

CA

NN

ER

BE

AN

-VA

LID

AT

ION

DA

TAS

OU

RC

ES

EE

EJB

3

IO

INFI

NIS

PAN

JDR

JGR

OU

PS

JMX

MA

IL

JSF

JSR

77

ME

SS

AG

ING

-AC

TIV

EM

Q

MO

DC

LUS

TE

R

NA

MIN

G

PO

JO

RE

MO

TIN

G

RE

SO

UR

CE

-AD

AP

TE

RS

RE

QU

ES

T-C

ON

TR

OLL

ER

SE

CU

RIT

Y

SA

R

SE

CU

RIT

Y-M

AN

AG

ER

SIN

GLE

TON

TR

AN

SA

CT

ION

S

UN

DE

RTO

W

WE

BS

ER

VIC

ES

WE

LD

Page 10: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Co zostało usunięte?Usunięte podsystemy JBoss EAP 6

CMP JAXR Threads OSGi

Brak wsparcia dla: CMP EJB→ JPA JAX-RPC → JAX-WS JSR-88 → CLI / management console / scanner / maven

Page 11: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Co zostało zastąpione? Podsystemy zastąpione przez nowe z innymi modelami konfiguracyjnymi

web → undertow messaging → messaging-artemis jacorb → iiop-openjdk Migracja konieczna, dodatkowo oddzielne narzędzie do migracji konfiguracji

JBoss EAP 7 Domain Controller może zarządzać JBoss EAP 6.2+ slaves włączając

podystemy: web, messaging, jacorb.

Page 12: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

New in 7

OPERATIONALEFFICIENCY

DEVELOPERPRODUCTIVITY

TECHNOLOGYTRENDS

Page 13: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Operacyjna efektywność

● Rozbudowa i ulepszenia w UX/Console ● Ulepszenia w zarządzaniu● HA/Wydajność● Batch Utilities beyond Java EE 7● Rozszerzenia w bezpieczeństwie● Graceful Shutdown

Page 14: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Ulepszenia w konsoli web

● Lepsze skalowanie dla dużych domen(100’tki czy 1000’ce)

● Dostosowane do ogólnego modelu zarządzania

● Dostęp do dokumentacji ● Spójność pomiędzy

Standalone & Domain● Dostępny podgląd● Zaprojektowany do

rozszerzeń

Page 15: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Ulepszenia w konsoli web

Dodatkowe podsystemy

● IIOP (OpenJDK)● Batch (JBeret)● Messaging (Artemis)● Web (Undertow)● PicketLink●

Page 16: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Ulepszenia w konsoli web

● Domyślne ustawienia na popularnych baz danych

● XA & Non-XA● Nowy kreator dla datasource ● Możliwość sprawdzenia

poprawności konfiguracji poprzez Test connections

Wzorce dla DATASOURCE

Page 17: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Redukcja portów

Subsystem Service Interface (default port) Encryption Load balanced

Failover

Management Admin console, CLI, Native API, JMX

management (9990) Yes No No

Undertow, JAX-RS, JAX-WS

HTTP, WebSockets, HTTP/2 (TP) public (8080) Yes Yes Yes

Naming, Remoting Remote JNDI & EJB Invocations public (8080) Yes[2] Yes[2] Yes[2]

Messaging ActiveMQ Artemis public (8080) Yes Yes Yes

[1] = https://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header[2] = Naming and Remoting requires client side load balancing/failover.

● HTTP Upgrade[1] pozwala nam zredukować liczbę portów w domyślnej instalacji do 2:○ 8080 – dla aplikacji wykorzystujących JNDI i EJB multipleksowany○ 9990 – dla zarządzania, dla obu HTTP/JSON & natywne API

● Jedyny narzut jest podczas inicjalnego HTTP Upgrade request / response

Page 18: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

HA & Wydajność

~15 % wyższa wydajność[1]

[1] = wewnętrzne testy wydajnościowe pokazują około 15% wzrost wydajności w porównaniu do EAP 6.4

Wydajność:

Page 19: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Zarządzanie – offline CLI

● Konfiuguracja serwera bez jego uruchamiania ● Podobne do “admin-only”, bez udostępniania portów● Zaimplementowane poprzez osadzony serwer w CLI (!)

$ bin/jboss-cli.sh[disconnected /] embed-server --std-out=echo12:10:15,300 INFO [org.jboss.modules] (main) JBoss Modules version 1.4.1.Final ...

Page 20: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Zwiększone i bardziej rozbudowane bezpieczeństwo SSO – PicketLink + KeyCloak

PicketLink Federation – SAML OAuth 2.0/SAML poprzez “standalone” “KeyCloak Authentication Server” i EAP Client Adapters

Container and Java EE Security – Elytron Post JBoss EAP 7.0 (np: wersja 7.1 lub późniejsza) Szersze wsparcie standardów (Kerberos/GSSAPI, JASPIC, JACC) lepsze wsparcie

interoperacyjności (Context Propagation) Zunifikowana i spójna konfiguracja SSL Kompatybilność z JBoss EAP 6 z modułem JAAS Certyfikacja wiodących produktów LDAP

Page 21: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Graceful shutdown

● Główne funkcje: suspend(timeout) / resume()○ Pozwala zakończyć się aktywnym sesjom/żądaniom/in-flight-txs ○ Po zakończeniu „suspend” może być ponownie uruchomiony○

● W zależności od podsystemu mogą być istotne różnice w zachowaniu○ Odrzucenie nowych żądań (HTTP Error 503 – Service unavailable) – klastrowanie

może przełączyć sesje w fail-over ○ mod_cluster może powiadomić load balancer

Page 22: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

LekkiJBoss EAP 7:Modułowy

Używa równoległej aktywacji usług Dopasowuje się do infrastruktury

Mały i szybki “deployment” Aktywuje usługi w trakcie “deploymentu”

Page 23: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Chmura xPaaS – OpenShift v3.*

OpenShift Enterprise OpenShift Dedicated OpenShift Online

AWS EC2

Linux Containers (Technology Preview)

Microsoft Azure (Post JBoss EAP 7.0 GA)

Page 24: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

OpenShift, świetne narzędzie dla DevOps….

Page 25: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Konsolidacja systemów kolejkowych

Ta sama technologia brokera w produktach JBoss EAP 7 oraz JBoss A-MQ 7

HornetQ → Active MQ Artemis

Możliwa wsteczna kompatybilność z JBoss EAP 6

Page 26: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Systemy kolejkowe w JBoss EAP 7

Nowy podsystem: messaging-activemq Wyłączne wsparcie protokołu: Artemis Wsteczne wsparcie protokołu: HornetQ Wsparcie dla High Availability

Shared Storage Replikacja

JMS 2 API

Page 27: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny

Podsumowanie: JBoss EAP 7

Wsparcie Java EE 7 dla “web profile” oraz “full platform” Zaawansowane zarządzanie i bezpieczeństwo Większa modularyzacja Bardziej funkcjonalny interfejs użytkownika w konsoli web Współdziałanie i kompatybilność

Image source: https://www.flickr.com/photos/76686348@N05/7159380667

Page 28: EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i równocześnie nieużywane usługi pozostają pasywne Pojedynczy plik konfiguracyjny