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