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

Post on 04-Jun-2020

0 views 0 download

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

EAP 7.0 on-premise & in the cloud

Andrzej KowalczykSenior Solution Architect Red Hat

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

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

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

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)

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

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

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

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

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

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.

New in 7

OPERATIONALEFFICIENCY

DEVELOPERPRODUCTIVITY

TECHNOLOGYTRENDS

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

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ń

Ulepszenia w konsoli web

Dodatkowe podsystemy

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

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

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

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ść:

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 ...

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

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

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”

Chmura xPaaS – OpenShift v3.*

OpenShift Enterprise OpenShift Dedicated OpenShift Online

AWS EC2

Linux Containers (Technology Preview)

Microsoft Azure (Post JBoss EAP 7.0 GA)

OpenShift, świetne narzędzie dla DevOps….

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

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

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