EAP 7.0 on-premise & in the cloud - Red Hat · Lightning fast! usługi startują na żądanie i...
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