JBoss EAP 7

Transkrypt

JBoss EAP 7
EAP 7.0
on-premise & in the cloud
Andrzej Kowalczyk
Senior 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 / Produkt
Java EE specification
J2EE 1.2
Community project
→
JBoss AS 2
→
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
→
WildFly 8,9,10
→
JBoss EAP 7
J2EE 1.3
Java EE 7
JBoss EAP Komponenty / Standardy
EAP 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 potrzeb
Lekkość


Ograniczone użycie pamięci i CPU
Zredukowane użycie portów i sieci
Management 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
DEPLOYERS
MSC
VFS
JBoss Modules
DMR
JANDEX
CORE INFRASTRUCTURE
SERVICE CONTROLLER SERVICE
SUBSYSTEMS
REFLECT CACHE
REPOSITORY
Controller
Threads
WELD
WEBSERVICES
UNDERTOW
TRANSACTIONS
SINGLETON
SECURITY
SECURITY-MANAGER
SAR
REQUEST-CONTROLLER
RESOURCE-ADAPTERS
REMOTING
POJO
NAMING
MODCLUSTER
MESSAGING-ACTIVEMQ
MAIL
JSR77
JSF
JMX
JGROUPS
JDR
INFINISPAN
IO
EJB3
EE
DEPLOYMENT-SCANNER
DATASOURCES
BEAN-VALIDATION
BATCH
LOGGING
Architektura
Co zostało usunięte?
Usunięte podsystemy JBoss EAP 6

CMP

JAXR

Threads

OSGi
Brak wsparcia

CMP EJB→

JAX-RPC →

JSR-88 →
dla:
JPA
JAX-WS
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.
7
New in
OPERATIONAL
EFFICIENCY
DEVELOPER
PRODUCTIVITY
TECHNOLOGY
TRENDS
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
Wzorce dla DATASOURCE
● Domyślne ustawienia na
popularnych baz danych
● XA & Non-XA
● Nowy kreator dla datasource
● Możliwość sprawdzenia
poprawności konfiguracji poprzez
Test connections
Redukcja portów
● 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
Subsystem
Service
Interface (default port)
Encryption
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]
[2]
= https://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header
= Naming and Remoting requires client side load balancing/failover.
Load
balanced
Failover
HA & Wydajność
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
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=echo
12: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
Lekki
JBoss 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

Podobne dokumenty