Повышение эффективности Java приложений (новые возможности Web Logic 12c, консолидация Java приложений, Exalogic)
1.
2. Oracle Weblogic 12.1.3
Повышение эффективности Java
приложений. Новые возможности
сервера приложений WebLogic 12c
Владимир Дмитриев, консультант
Oracle, Россия
3. Safe Harbor Statement
The following is intended to outline our general product direction. It is
intended for information purposes only, and may not be incorporated
into any contract. It is not a commitment to deliver any material,
code, or functionality, and should not be relied upon in making
purchasing decisions.
The development, release, and timing of any features or functionality
described for Oracle’s products remain at the sole discretion of
Oracle.
4. Облачная платформа нового поколения
Oracle Cloud Application Foundation
Oracle Cloud
Полнота
Открытость
Traffic Director/Web Tier
WebLogic
Server
Coherence Tuxedo
Интегрированность
Virtual Assembly Builder
Лучшее в классе
Готовность к
облачности
Web Social Mobile
User Engagement
Identity Management
Business
Process
Management
Content
Management
Business
Intelligence
Service Integration Data Integration
Development
Tools
Cloud Application
Foundation
Enterprise
Management
Cloud Application Foundation
Exalogic Elastic Cloud
5. WebLogic Server – релизы и дальнейшее развитие
WebLogic Server
11g PS5 (10.3.6) +
Coherence 3.7.1.1
• Fusion Middleware
11g PS5 (11.1.1.6+)
• Java SE 6 and 7
• JDev, OEPE, NetBeans
• Active GridLink for
RAC Session Affinity
• Transaction logs in DB
• JMS Distributed Topics
Update
• Java Cloud Service (EE
5 with some EE 6)
• EM Cloud Control
• Coherence 3.7.1.1
• Exalogic Optimizations
Released
Dec 2011
Released
Feb 2012
Released
July 2013
Released
June 2014
WebLogic Server 12c
(12.1.1) +
Coherence 3.7.1.1
• Pre-Fusion Middleware 12c
• Java EE 6
• Java SE 6 and 7
• Maven integration updates
• Glassfish to WebLogic
• OEPE, NetBeans
• Active GridLink for RAC
Session Affinity
• Transaction logs in DB
• JMS Distributed Topics
• EM Cloud Control
• Coherence 3.7.1.1
• Exalogic optimizations
• Seamless upgrade
WebLogic Server 12c
(12.1.2) + Coherence 12c
(12.1.2)
• FMW Infrastructure
w/ADF
• OUI/Opatch
• Java SE 7
• JDev, Eclipse, NetBeans
• Maven updates
• OSGi in WLS applications
• WebSockets/HTML5
• TopLink Data Services
• Managed Coherence
Servers
• Dynamic Clusters
• Database 12c Integration
• JMS Resource Adapter
• JMS - JAX-WS WSDL
• Exalogic Optimizations
Partial Java EE 7,
Java SE 8, Cloud
(12.1.3)
• SOA, ODI, more FMW…
• Java EE 7 APIs
• Java SE 7 and 8
• Lightweight WebLogic
• Maven Updates
• Server-Sent Events
• TopLink Data Services+
• WebSocket Emulation
• Database 12c
integration+
• WSM for Elastic JMS
• Auto-scale Dynamic
Clusters
• Managed Coherence+
• FMW Control updates
• RESTful Mgmt Updates
• Oracle Cloud updates
• Exalogic optimizations
Release
CY 2015
Full Java EE 7,
Java SE 8,
Cloud (12.2.1)
• FMW 12c Platform
• Multi-Tenant Apps
• Auto-Scaling Dynamic
Clusters
• Elastic Clusters and REST
Mgmt
• JavaEE Development
• Java EE 7, JDK 8
• Lightweight WebLogic
• Maven Updates
• Server-Sent Events
• TopLink Data Services+
• WebSocket Emulation
• Database 12c integration+
• WSM for Elastic JMS
• Auto-scale Dynamic
Clusters
• Managed Coherence+
• FMW Control updates
• RESTful Mgmt Updates
• Oracle Cloud updates
• Exalogic, HA and MAA
6. WebLogic Server 12.1.3
Современная платформа разработки
• Server-Sent Events
• JAX-RS 2.0
• WebSocket – JSR 356
WebLogic Server
12.1.3
Clients
HTML5
clients
ADF Mobile
Proxies
OTD
HTTP/S, JSON/XML
WebSocket, Server-Sent
Events, Long polling
Apache
OHS
JAX-RS 2.0
Server-Sent Events
Web Sockets (JSR 356)
Avatar (post-GA)
TopLink Data Services
HTML5 client
emulation
• TopLink Data Services
• WebSocket Client Emulation
• Avatar
JPA
Change
Notification
• Maven improvements
• Classloader Analysis Tool
updates
Database
7. Oracle WebLogic Server 12.1.3
Новые ключевые возможности
• Частичная поддержка Java EE 7 (Java Persistence API 2.1, JAX-RS
2.0, JSON-P 1.0, WebSockets 1.0)
• Поддержка последних интеграционных решений Spring 3.0.x,
3.1.x, and 4.0.x
• Внедрение Apache Felix OSGI
• Обновлённая интеграция проектов на основе Apache Maven
(Plugin, Artifacts, Archetypes, Maven Synchronization)
8. Oracle WebLogic Server 12.1.3
Новые ключевые возможности (продолжение)
• Server sent event – функция позволяет непрерывно посылать
обновления/сообщения браузерам
• JSON-P или JSON для решения кросс доменных проблем
безопасности
• Avatar – позволяет разрабатывать и внедрять JavaScript
Services без навыков Java
• Обновлённый Classloader Analysis Tool (CAT)
9. FMW 12.1.3 – для разработчиков
Средства разработки: Maven, Spring, IDE, OSS
• Усовершенствован процесс установки: WebLogic, JDeveloper и
компоненты Fusion Middleware устанавливаются из единого
релиза.
• Введены новые компоненты: Enterprise Scheduler (ESS),
Managed File Transfer (MFT)
• Новые JCA-адаптеры (LDAP, Coherence, MSMQ)
• Поддержка REST, Mobile Channel Enablement
• Поддержка облачных приложений
• Новый встроенный тестер для SOA в том числе и CI
(Maven/Hudson)
• Продвинутый SOA composer
• Новая версия консоли управления EM CAT
10. FMW 12.1.3 – для разработчиков
Средства разработки: Maven, Spring, IDE, OSS (продолжение)
• Введена оптимизация для исполнения в среде Exalogic
• Последняя версия отладчика ошибок (Error Hospital)
• Прирост производительности за счет Composite Lazy Loading и
оптимизации схемы БД
• Введен отладчик композитов
• Улучшена система доступа
• Переработан компонент B2B
• Улучшен сервис Oracle Event Processing
• В EM введена консоль управления OSB
• JDBC 12c driver
• Classloader Analysis Tool (CAT) CAT
11. Ускорение выхода на рынок
Java Cloud
Service
Classloader
Analysis Tool
Современная платформа разработки и интеграция со средствами разработки
12. Упрощение интеграции с Maven
Плагины обновлений, arch-типы и POM
БЫСТРАЯ РАЗРАБОТКА
АВТОМАТИЗАЦИЯ
Поддержка частных
репозиториев Maven
Сквозная целостность
разработки
Эффективное использование
централизованных ресурсов
Maven
Product JARs POMs
Private Repository
13. Современная платформа разработки
Поддержка Maven в WebLogic Server 12.1.3
• Плагин синхронизации
– Синхронизирует локальные удаленные
репозитории с ресурсами: jars, POM, arch-типы
– Синхронизация методом Patch/Resync
• Плагин Maven для WebLogic
– Развертывание приложений
– Повсеместное использование репозиториев
– Добавлены новые Arch-типы: WebApp,
WebApp/EJB, Web Service, MDB
• Стандартизация
– Использование лучших практик Maven
– Целостность всего FMW
Developer
Build
Manager
Product JARs POMs
Archetypes
project
groupIdcom.oracle.weblogic/groupId
artifactIdwebservices/artifactId
version12.1.3/version
packagingjar/packaging
/project
Local Repository
Product JARs POMs
Archetypes
project
groupIdcom.oracle.weblogic/groupId
artifactIdwebservices/artifactId
version12.1.2/version
packagingjar/packaging
/project
Shared Private Repository
Sync
plugin
WebLogic
plugin
Sync
plugin
14. Интеграция с серверами непрерывного внедрения
• Hudson CI Server
• Панель управления
информирует о статусе
• Релизы автоматически
«собираются» при изменениях в
репозиториях (SCM)
• Задания могут быть созданы
напрямую из проекта Maven
• Используются Maven “install”
lifecycle
• Executes build, package, test,
integration-test phases
15. Интеграция с серверами непрерывного внедрения
CI Server
Code
Repository WebLogic
Server
Compile
Package
16. Интеграция с серверами непрерывного внедрения
• Напрямую тестируются приложения установленные на WLS
@Test
public void calculatorServletErrorIT() throws Exception {
int p1 = 1;
int p2 = 2;
int res = 0;
String test =
String.format(http://localhost:7001/demo-wls-maven/
CalculatorServlet?p1=%sp2=%s, p1, p2);
String expect = String.format(%s+%s=%s, p1, p2, res);
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage(test);
final String pageAsText = page.asText();
assertTrue(pageAsText.contains(expect));
}
17. ClassLoader Analysis Tool (CAT)
• Библиотеки приложений часто «конфликтуют» с библиотеками сторонних
производителей используемых WebLogic
– Очень не просто диагностировать конфликт между классом и библиотекой
• Фунция «Filtering Classloader» позволяет приложениям использовать
собственные библиотеки
– Правильная конфигурирование – сложная задача
• «Classloader Analysis Tool» находит и быстро решает такие конфликты
– CAT «преоткрывает» секреты «черного ящика» classloader
– Показывает иерархию и источники classloader
– Позволят находить class/resource в classloader
– Показывает class definitions, interfaces
– Анализирует конфликты classpath, создаёт отвечающую данному classloader
конфигурацию
CAT
19. CAT - Анализ конфликтов в сlasspath
• ClassLoader Analysis tool показывает
места конфликтов
• Это позваляет выявлять
конфликтующие библиотеки, места их
расположения и советут как
разрешить конфликт
20. CAT - ClassLoader Configuration Suggestion
• ClassLoader Analysis tool создаёт
необходимый для Filtering ClassLoader
конфигурационный XML файл
• Это в разы облегчает весь конфигурационный
процесс
• Данная возможность поддерживается
начиная с версии WebLogic 10.3.4
21. Упрощение операций
Унификация установки, обновлений,
Встроенная поддержка облачного управления
исправлений
Общая инфраструктура
администрирования
Управляемые серверы Coherence
22. Общая методология для управления изменениями
Унификация установки, обновлений, исправлений
Integrated Tooling
Уменьшение цены
установки, обслуживания
Целостность Web-слоя, серверов
приложений, Data Grid
Oracle Universal Installer (OUI)
Утилита Opatch
Мастер (пере-)конфигурации
Common Provisioning Framework
Install Patch Upgrade
Web Tier WebLogic Coherence
23. Управляемые серверы Coherence
Обеспечение непрерывной разработки и управления
для распределенных приложений
Coherence Grid Archive (GAR)
Соответствует модели Java EE
Консолидация конфигураций в единый модуль
развертывания
Обеспечение изоляции уровня приложения и
жизненного цикла
Работает для управляемых и отдельных кластеров
• Использует инфраструктуру WebLogic:
Контейнер Coherence аналогичен EJB, JMS и JCA
Управляется через консоль,WLST, JMX, FMWC
Разворачивается как приложение Coherence (GAR)
Node Manager для управления жизненным циклом
Использует classpath сервера – нет необходимости
упаковывать библиотеки в архив приложения
WebLogic Domain
Managed
Server
Admin
Server
WebLogic
Cluster
Coherence
Client
Coherence
Client
Managed
Server
Managed
Server
WebLogic
Cluster
Coherence
Server
Coherence
Server
Managed
Server
Coherence Cluster
24. Обновлённый Enterprise Manager 12c (EM 12c)
Enterprise Manager 12c
• Увеличена производительсть
• Введено администрирование приложений и
JMS
• Дополнен Restful management API для
дополнительного мониторинга, поддержки
Deployment, Datasource
Simplify Operations with Native Cloud Management
25. Эффективность: Сквозное Управление
• Единое комплексное решение вместо точечных
разрозненных продуктов
Управление производительностью
Управление конфигурациями
Управление жизненным циклом
Управление качеством приложений
My Oracle Support
Управление
Внутри уровня
Управление
Через уровни
Enterprise Manager
(EM 12c)
26. Централизированное управление и мониторинг
(EM 12c)
Мониторинг ВСЕХ приложений, ВСЕХ доменов из одной консоли
• Единая система управления
• Области мониторинга
– Кластеры и серверы
– Приложения (servlets, JSPs, EJBs)
– Ресурсы (JDBC connection pool, data
sources)
• Предопределенные метрики
– Производительность и доступность
– Журнал-монитор
– Real-time мониторинг
– Аналитика хранимых данных для
прогнозирования и отчётности
27. EM 12c - Анализатор и диагностика Middleware
Решение проблем с помощью поиска возможных решений
• Диагностика проблем и поиск предполагаемых
решений, а не просто отображение текущего
статуса системы
• Поиск вероятных решений на основе:
– Различных метрик от (JMX, JVM Diagnostics,
зависимых компонент)
• Возможностью управления жизненными циклами
и незамедлительное решение проблем
средствами встроенной интеграции
28. Диагностика JVM (EM 12c)
Ускорение диагностики JVM с минимальными затратами
• Real-time, ретроспективная диагностика
и мониторинг
• Без дополнительных инструментов и
рестарта серверов
• Полный надзор за JVM stack heap and
потоками
• Дву-направленный анализ JVM to DB,
DB to JVM
• Внедрение на любой JVM (i.e. HotSpot,
JRockit, IBM)
29. Расширенная консоль управления Coherence
(EM 12c)
Более качественное и эфективное управление Coherence
Before
• Новый UI на основе ADF
• Интуитивная навигация
• Детализация компонент
• Анализ всех cache на всех нодах
After
30. Интерация с Java Flight Recorder (EM 12c)
• Возможность для пользователя JVMD
использовать данные JFR (dump) из
консоли Cloud Control
• Использовать данные JFR (dump) для
коррекции значений метрик JVMD при
привышении допустимого порога
• Управление списком значений,
удаление отработанного материала
• Возможность закачивать данные
Mission Control для последующего
анализа
31. Глубокая аналитика проблем (EM 12c)
• Возможно добавлять новые
метрики к существующим
правилам
• Управлять множеством правил
• Отмечать метрики как ресурсы
• Непрерывный мониторинг даже
при отсутствии правил
• Набор метрик для конкретных
задач и поиска проблем
• Улучшенный UI
32. Контейнерность Oracle
Database 12c
Гибкая динамическая
кластеризация
Оптимизация для Exalogic
Выпуск приложений нового поколения
Облачная платформа для критически важных систем
33. Доступность, контейнеры, масштабирование
Oracle WebLogic Server 12c, Oracle Database 12c
WEBLOGIC, DATABASE
ИНТЕГРАЦИЯ
Доступность приложений и защита
транзакций
Поддержка контейнеров Oracle
Database
Масштабируемость и пул
соединений
Application
Continuity
WebLogic Server
Database
Resident
Connection
Pool
Global Data
Services
Multi-
Tenant
Database
34. Интеграция WebLogic с подключаемыми БД
• Подключаемые БД
Увеличена плотность и масштабируемость
• Одна из многих «виртуальных» БД размещается в одной
контейнерной
• Обеспечивает изоляцию между подключаемыми БД
одновременно со всеми преимуществами единой БД
• Эффективность (CPU, Disk)
• Унифицированный доступ и безопасность
• Упрощенное обновление
• Интеграция WebLogic и подключаемых БД
• Встроенная интеграция из коробки
• Автоматическая поддержка контейнерности
Get Connection
Tenant1
Mgd Svr 1 Mgd Svr 2
Set Container
PDB1
WebLogic Cluster
Data Source
Set Container
PDB2
App 1
App 2
App 1
App 2 Get Connection
Tenant2
PDB1
Tenant 1
PDB2
Tenant 2
Container Database
…
35. Database Resident Connection Pooling
Виртуализация соединений с БД улучшает масштабируемость
• Database Resident Connection Pooling
(пул соединений на уровне БД)
– Пул соединений и сессий находятся в самой
БД
– Увеличивает эффективность использования
ресурсов БД
• Интеграция WebLogic и постоянного пула
соединений
– Active Gridlink и Generic Data Sources
– Пул коннектов в WebLogic – это отражение
части пула соединений в БД
WebLogic WebLogic
DRCP
WebLogic WebLogic
12c Database
36. Интеграция WebLogic и Global Data Services
Улучшенная производительность, масштабируемость
• Global Data Services
• Централизованное управление
распределенными и облачными БД
• Динамическая миграция сервисов и
балансировка нагрузки
• Масштабирование на уровне RAC
• Запуск «упавшего» сервиса на доступной БД
• Интеграция «Облака» БД
• GridLink datasources поддерживает GDS
• GridLink datasource конфигурируется для
локального региона (primary) и может иметь
доступ ко всем регионам
• Перенаправление на новый сервис происходит
с помощью событий FAN (fast application
notification)
WebLogic Cluster
Managed
Server 1
Managed
Server 2
Machine 1 Machine 2
GridLink Data Source
Внимание! Service2 перегружен!
Service1 Service2
RAC
Cluster DataGuard,
GoldenGate
RAC
Cluster
Region: MOSCOW
RAC
Cluster
RAC
Cluster
FAN Events
Service2 Service1
GDS
Region: VLADIVOSTOK
37. Оптимизации WebLogic для Exalogic
Exabus - оптимизация web запросов, cжатие JMS сообщений
СБАЛАНСИРОВАННОСТЬ
Экстремальная
производительность
Сжатие JMS сообщений
уменьшает ввод-вывод
Дает 3x прирост
производительности, если
сообщение сохраняется в файл
или БД
AApppplliiccaattiioonn
3X
AApppplliiccaattiioonn
Without Compression With Compression
JMS Messages/Sec
JJMMSS
EExxaallooggiicc SSttoorraaggee
JJMMSS
EExxaallooggiicc SSttoorraaggee
38. Oracle Exalogic: Что это и для чего используется
• Это - сверхбыстрая интегрированная система для работы Java-приложений на
платформах Linux или Solaris
• Шина Exabus и Exalogic Elastic Cloud Software:
o Имеет сверхбыструю пропускную способность без обычных узких мест (значительно
меньшие задержки, разгрузка процессоров и т.д.)
o Улучшает масштабируемость
o На Exalogic в среднем примерно в 2-3 раза требуется в меньше вычислительных ресурсов
(ядер), чем в обычных серверах
• Упрощение развертывания приложений и уменьшение сложности обслуживания,
облачные технологии (поддержка CDN)
• Увеличение надежности и доступности приложений
• Виртуализация, балансировка нагрузки, программно-аппаратная изолированность
приложений и решение вопросов безопасности
• Встроенная управляемость комплекса от диска до приложения
В итоге – высочайшая производительность, надежность, гибкость
управления и невысокая общая стоимость владения системой
39. Exabus: Оптимизация обработки web-запросов для Weblogic
Обычный сервер
Client
Applications
HHTTTTPP CClliieenntt
Создание нового
потока на каждый
запрос
Server
Applications
Пул потоков
для повторного
использования
Server
Applications
Exalogic
Client
Applications
HHTTTTPP CClliieenntt
Server
Applications
Server
Applications
2X
Оптимизированный пул потоков улучшает масштабируемость приложений, делающих HTTP вызовы к
другим сервисам (Web Services/SOA applications), существенно сокращает загрузку ЦПУ (с 82% до 8%)*
*Для портального приложения делающего SOAP-запросы – 10 портлетов на странице
Стандартное
железо
EL 2.х
Web
запросов
в сек
40. Exabus: Оптимизация Weblogic
• Оптимизированный Socket Direct Protocol
(SDP) для JDBC и обмена данными
• Work Manager и оптимизация
ввода/вывода
o Векторный ввод/вывод
o Оптимизированный self tuning
thread pool
• Active GridLink для Real Application Cluster
(load balancing and failover)
Exalogic Exadata
В 3-5 раз выше
производительность
960 Gigabits/second
41. Увеличение производительности и плотности Exalogic
• Ускорение производительности и времени
доступа
– MessageBus исполняется в WebLogic
– Расширенная поддержка за счет технологии
Coherence
– Связи между OTD-WLS, WLS-WLS
– Снижение латентности и ускорение SLA
• Увеличение плотности компонент
– Усиление концепци multi-tenancy
– Совместное управление памятью
– Динамические кластеры
42. Exabus: Оптимизация сетевого ввода-вывода I/O
Standard WebLogic WebLogic Server on Exalogic
WebLogic Server
Standard WebLogic
with standard read write IO
1.5K 1.5K
1.5K
10Gb/s Ethernet with 1.5K
Maximum Transmission (MTU)Size
WebLogic Server
Read/write collections of 4K chunks
x
44KK 44KK 44KK 44KK
64K 128K
40Gb/s Infiniband with 64K MTU
for IPoIB or =32K MTU for SDP
x
WebLogic on ExalogicwithScatter/Gather IO
Read/write 4K standalone chunks
44KK 44KK 44KK 44KK
Сбор пакетов в наборы (chunks) для пересылки
Увеличение размера MTU
Увеличение пропускной способности и уменьшение задержек
43. WebLogic Server 12.2.1
• Планируется выпустить в 2015 году
• Основной приоритет для FMW 12с
• Полная поддержка Java EE 7, JDK 8
• Увеличение производительности
Exalogic
• Планируемые улучшения WebLogic
• Современная платформа
разработки
• Облачная платформа для
задач критической важности
• Внедрение концепции multi-tenancy