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 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 / 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
Architektura LOGGING BATCH BEAN-VALIDATION DATASOURCES DEPLOYMENT-SCANNER EE EJB3 IO INFINISPAN JDR JGROUPS JMX JSF JSR77 MAIL MESSAGING-ACTIVEMQ MODCLUSTER NAMING POJO REMOTING RESOURCE-ADAPTERS REQUEST-CONTROLLER SAR SECURITY-MANAGER SECURITY SINGLETON TRANSACTIONS UNDERTOW WEBSERVICES WELD SERVICE CONTROLLER SERVICE SUBSYSTEMS DEPLOYERS VFS JANDEX REFLECT CACHE REPOSITORY CORE INFRASTRUCTURE MSC JBoss Modules DMR Controller Threads
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 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 Load balanced Management Admin console, CLI, Native API, JMX Failover 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.
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