WebSphere Liberty
WebSphere Liberty — это легковесный, модульный сервер приложений с открытой архитектурой, разработанный компанией IBM. Относится к классу серверов приложений Java Enterprise Edition (Java EE) и Jakarta EE, предназначенных для развёртывания и выполнения корпоративных веб-приложений, микросервисов и облачных решений. Основное отличие от традиционного сервера WebSphere Application Server (WAS) — минимальное потребление ресурсов, быстрый запуск и возможность динамического подключения только необходимых функций.
История
Первая публичная версия WebSphere Liberty была выпущена в 2012 году как часть линейки WebSphere Application Server V8.5. Продукт позиционировался как «профиль Liberty» (Liberty Profile) — облегчённая альтернатива полному серверу WebSphere. В 2014 году IBM переименовала его в WebSphere Liberty, а в 2015 году выпустила отдельную редакцию Liberty Core, ориентированную на небольшие проекты и разработку.
В 2018 году IBM объявила о переходе Liberty на полностью открытую модель разработки: исходный код был опубликован на GitHub под названием Open Liberty. Open Liberty — это свободная версия, распространяемая под лицензией Eclipse Public License 2.0. Коммерческая версия WebSphere Liberty включает дополнительные функции, такие как интеграция с IBM MQ, поддержка JMS (Java Message Service) и расширенная безопасность.
В 2020 году, после приобретения IBM компании Red Hat, Liberty стал частью стратегии гибридного облака IBM, поддерживая развёртывание в Kubernetes и OpenShift. В 2023 году вышла версия Liberty 23.0.0.1, полностью совместимая со спецификацией Jakarta EE 10.
Архитектура и принципы работы
Модульность
WebSphere Liberty построен по принципу «минимального ядра» (kernel). При запуске загружается только базовое ядро, а все функциональные возможности (сервлеты, EJB, JPA, WebSocket, JAX-RS и т.д.) подключаются как отдельные модули — «фичи» (features). Фичи активируются в конфигурационном файле server.xml и могут быть добавлены или удалены без перезапуска сервера.
Конфигурация
Настройка сервера осуществляется через XML-файл server.xml, который располагается в каталоге сервера. Файл содержит:
- список включённых фич;
- параметры портов, протоколов (HTTP, HTTPS, IIOP);
- настройки безопасности (SSL, аутентификация, авторизация);
- конфигурацию источников данных (JDBC, JMS);
- параметры мониторинга и логирования.
Пример минимальной конфигурации для веб-приложения: ``xml <server description="myServer"> <featureManager> <feature>servlet-4.0</feature> </featureManager> <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443" /> </server> ``
Запуск и управление
Liberty не требует установки в системный каталог — достаточно скопировать архив с дистрибутивом и запустить скрипт server из командной строки. Поддерживаются команды:
server start— запуск сервера;server stop— остановка;server status— проверка состояния;server package— создание автономного пакета для развёртывания.
Сервер может работать в режиме разработчика (development mode), при котором автоматически перезагружает приложения при изменении файлов.
Версии и редакции
Open Liberty
Бесплатная версия с открытым исходным кодом. Поддерживает Jakarta EE 10, MicroProfile 6.0 и Java SE 17/21. Распространяется через Maven Central и Docker Hub. Используется для разработки, тестирования и небольших проектов.
WebSphere Liberty (коммерческая)
Включает все функции Open Liberty плюс:
- интеграцию с IBM MQ и IBM CICS;
- поддержку JMS (IBM MQ JMS);
- расширенную безопасность (IBM Security Identity Manager, LDAP, Kerberos);
- мониторинг через IBM Tivoli Composite Application Manager (ITCAM);
- техническую поддержку IBM.
Liberty Core
Урезанная редакция для малых предприятий. Ограничена по числу процессоров (до 4 ядер) и не включает поддержку EJB, JMS и IBM MQ.
Поддержка стандартов
WebSphere Liberty поддерживает следующие спецификации:
- Java EE / Jakarta EE: Servlet 6.0, JSP 3.1, JSF 4.0, EJB 4.0, JPA 3.1, JAX-RS 3.1, WebSocket 2.1, CDI 4.0, Bean Validation 3.0, Batch 2.1, Mail 2.1.
- MicroProfile: Config 3.1, Fault Tolerance 4.1, Health 4.0, Metrics 5.1, OpenAPI 3.1, OpenTracing 3.0, Rest Client 3.1, JWT Propagation 2.1.
- Java SE: версии 8, 11, 17, 21 (в зависимости от редакции).
- Стандарты безопасности: SSL/TLS, OAuth 2.0, OpenID Connect, SAML 2.0, Kerberos, LDAP, JWT.
Применение
Микросервисы
Благодаря малому размеру (около 50 МБ) и быстрому запуску (менее 5 секунд), Liberty часто используется в качестве платформы для микросервисов. Поддерживает запуск в контейнерах Docker и оркестрацию через Kubernetes. Встроенная поддержка MicroProfile упрощает создание отказоустойчивых, масштабируемых сервисов.
Облачные решения
Liberty интегрирован с IBM Cloud, Red Hat OpenShift и другими облачными платформами. Поддерживает автоматическое масштабирование, балансировку нагрузки и мониторинг через Prometheus и Grafana. В 2022 году IBM выпустила образы Liberty для AWS, Azure и Google Cloud.
Корпоративные приложения
Используется в банковском секторе, страховании, логистике и государственных учреждениях. Например, в России Liberty применяется в системах дистанционного банковского обслуживания (ДБО) и платформах электронного документооборота.
Сравнение с другими серверами
| Характеристика | WebSphere Liberty | Apache Tomcat | WildFly (JBoss) | Payara Server |
|---|---|---|---|---|
| Размер дистрибутива | ~50 МБ | ~10 МБ | ~200 МБ | ~150 МБ |
| Время запуска | 2-5 сек | 1-2 сек | 10-20 сек | 8-15 сек |
| Поддержка Java EE / Jakarta EE | Полная | Только сервлеты | Полная | Полная |
| Поддержка MicroProfile | Да | Нет | Да | Да |
| Лицензия | Коммерческая / Open Source | Apache 2.0 | LGPL | CDDL / GPL |
| Управление через IDE | Eclipse, IntelliJ IDEA, VS Code | Eclipse, IntelliJ IDEA | Eclipse, IntelliJ IDEA | NetBeans, IntelliJ IDEA |
Инструменты разработки
IBM предоставляет плагины для интеграции Liberty с популярными средами разработки:
- Liberty Tools for Eclipse — плагин для Eclipse IDE, позволяющий запускать, отлаживать и профилировать приложения на Liberty.
- Liberty Maven Plugin — интеграция с Apache Maven для автоматизации сборки, тестирования и развёртывания.
- Liberty Gradle Plugin — аналогичный плагин для Gradle.
- Dev Mode — режим разработки, при котором сервер автоматически перезагружает приложения при изменении исходного кода.
Критика
Основные претензии к WebSphere Liberty связаны с:
- Сложностью конфигурации — несмотря на модульность, настройка безопасности и интеграции с внешними системами (LDAP, MQ) требует глубоких знаний.
- Зависимостью от экосистемы IBM — коммерческая версия тесно интегрирована с продуктами IBM, что может затруднить миграцию на другие платформы.
- Производительностью — при большом количестве одновременно включённых фич Liberty может потреблять больше памяти, чем Apache Tomcat.
- Документацией — часть документации устарела или неполна, особенно для Open Liberty.
Интересные факты
- В 2019 году Open Liberty стал первым сервером приложений, полностью сертифицированным по спецификации Jakarta EE 8.
- Liberty поддерживает запуск на Raspberry Pi (ARM-архитектура), что позволяет использовать его в IoT-проектах.
- В 2021 году IBM выпустила «Liberty InstantOn» — технологию, позволяющую запускать сервер за 0,5 секунды на виртуальных машинах.
Источники
- IBM Knowledge Center: WebSphere Liberty
- Open Liberty GitHub Repository
- Jakarta EE Specification
- MicroProfile Specification
- IBM Redbooks: WebSphere Liberty Architecture
- Статья «WebSphere Liberty vs Tomcat: A Comparison» на DZone
- Документация IBM Liberty Tools for Eclipse
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →