Миграция на российский сервер приложений Libercat с WebLogic, WebSphere и других зарубежных решений

Инструкции по миграции на российский сервер Java-приложений Libercat


Сентябрь 07, 2023


Libercat — это российский сервер приложений, реализующий спецификации Java EE (Jakarta EE). Libercat входит в реестр российского ПО и позволяет импортозаместить популярные зарубежные решения для разработки приложений на базе Java EE / Jakarta EE, такие как WebLogic, WebSphere и Jboss/Wildfly.

Более подробно о характеристиках и функционале Libercat можно почитать здесь, а в этой статье мы расскажем о процессе перехода на Libercat с иностранных проприетарных решений, рассмотрим возможные трудности, с которыми могут столкнуться разработчики, и предложим варианты их решения.

  1. Как мигрировать Spring Boot приложение
  2. Как мигрировать приложение, построенное на Java EE / Jakarta EE
    1. Переход с WebLogic, WebSphere, JBoss и других проприетарных решений
    2. Как преодолеть возможные трудности
  3. Заключение

Как мигрировать Spring Boot приложение

Spring Boot — один из самых популярных фреймворков для разработки веб-приложений на Java. Веб-приложения Spring Boot по умолчанию используют Tomcat Embedded, но вы можете изменить версию сервера в файле pom.xml:

<properties>
    <tomcat.version>9.0.44</tomcat.version>
</properties>

Во время сборки приложения библиотеки сервера подтягиваются из центрального Maven-репозитория и интегрируются в проект.

Эту настройку мы можем использовать, чтобы заменить Tomcat на Libercat Embedded. Сборки Libercat находятся в закрытом Maven-репозитории, у каждой версии — уникальное имя, например, libercat-9.0.44. В попытке найти версию Tomcat с таким именем сборочная среда обнаружит репозиторий Libercat (логин и пароль необходимо будет указать в конфигурационном файле) и скачает зависимости оттуда. Далее можно конфигурировать Libercat точно так же, как и дефолтный сервер, добавляя нужные параметры (номер порта, IP-адрес, SSL-поддержку и т.д.) в файл application.properties.

Как мигрировать приложение, построенное на Java EE / Jakarta EE

Если ваше приложение написано с применением спецификаций Java EE (Jakarta EE), действия по миграции будут определяться имплементацией спецификаций, которую вы используете.

Если проект базируется на Tomcat или TomEE, вы можете осуществить бесшовный переход на Libercat / Libercat EE, так как российский сервер приложений имеет схожую функциональность.

Но что, если вы используете проприетарное решение с набором уникальных функций?

Переход с WebLogic, WebSphere, JBoss и других проприетарных решений

Tomcat и TomEE (Libercat / Libercat EE соответственно) представляют собой набор опенсорсных библиотек, реализующих спецификации Java EE / Jakarta EE: Tomcat имплементирует базовые спецификации, TomEE включает в себя более широкий спектр стандартов. Самые известные проприетарные решения Oracle (Weblogic / GlassFish) IBM (WebSphere) и Red Hat (JBoss / WildFly) тоже имплементируют спецификации Java EE / Jakarta EE, но при этом

  • Они включают в себя большое количество дополнительных фич поверх спецификаций;
  • Спецификации могут различаться. Например, Transaction Propagation нет в TomEE, но есть в других серверах;
  • Спецификации могут быть по-разному реализованы. Например, спецификации не описывают стандарт написания конфигурационных файлов, поэтому в разных серверах файлы могут отличаться.

Для наглядности, TomEE весит около 90 Мб, в то время как WebLogic занимает 1,5–2 Гб. Соответственно, весь этот дополнительный объем занимает проприетарный функционал. Чем больше таких фич использует ваше приложение, тем сильнее привязка к поставщику и следовательно, тем сложнее перейти на другой сервер. Однако это выполнимая задача, и ниже мы рассмотрим несколько вариантов разрешения трудностей, связанных с миграцией.

Как преодолеть возможные трудности

Если вы пишете приложение четко по спецификации Java EE / Jakarta EE, вероятно, при миграции у вас не возникнет проблем с совместимостью. Но что делать, если ваш проект зависит от проприетарного функционала?

  1. Вполне возможно, что используемая вами фича была добавлена в стандарт. Например, в WebLogic изначально был Timer, отсутствовавший в спецификациях. Но стандарты Java EE / Jakarta EE постоянно обновляются и пополняются новым функционалом в ответ на нужды бизнеса. Популярные проприетарные функции иногда входят в стандарты, что и случилось с Timer. Сейчас, изменив импорт с weblogic.timer на jakartaee.timer, скорее всего, поведение вашего приложения не изменится.
  2. Вы можете поискать недостающую функцию среди стандартов Java EE / Jakarta EE или других опенсорсных проектов. Однако следует соблюдать осторожность при интеграции Open Source ПО в проект ввиду рисков безопасности и законодательного запрета на использование иностранного программного обеспечения на объектах КИИ. Для выбора подходящих программных компонентов используйте Единый реестр российского ПО и Единый реестр евразийского ПО. Вы также можете обратиться к инженерам Axiom JDK, которые помогут вам с выбором подходящего компонента.
  3. Если необходимого функционала нет в стандартах или в решениях, входящих в реестр, можно разработать недостающую функциональность самостоятельно или с помощью команды Axiom JDK.

Чтобы переход на российский сервер приложений прошел максимально эффективно и плавно, наши инженеры оказывают техническую поддержку пользователей Libercat, консультируют в процессе тестирования и помогают решить проблемы, связанные с миграцией.

Заключение

Стандартизованный сервер приложений Libercat разработан с учетом потребностей российского рынка, где Java занимает центральное место в ИТ-ландшафте большинства банков, госорганизаций, промышленных предприятий. Обновления Libercat включают все исправления уязвимостей безопасности и оптимизацию производительности, что сокращает затраты на сопровождение безопасного окружения для промышленной эксплуатации Java-приложений.

Libercat в связке с Axiom JDK Pro представляет собой комплексное сертифицированное решение для разработки и исполнения Java-приложений критической информационной инфраструктуры (КИИ). Некоторые российские финансовые организации уже перешли на отечественный сервер приложений, закрыв KPI по импортозамещению и повысив безопасность своего Java-стека. Среди успешных примеров стоит отметить полномасштабную миграцию на Libercat дистанционного банковского обслуживания (ДБО) одного из крупнейших банков.

Кроме того, в настоящий момент Libercat проходит завершающий этап сертификации ФСТЭК, что позволит расширить его применение на объектах КИИ и ГИС с повышенными требованиями к безопасности и обеспечить их перевод на российский Java-стек к январю 2025 года согласно Указу Президента РФ от 30 марта 2022 г. N 166 «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации».

Если вы хотите узнать больше о Libercat и других доверенных технологиях линейки Axiom JDK, свяжитесь с нами — наши инженеры ответят на ваши вопросы и помогут с миграцией.

Также подписывайтесь на наш Telegram-канал, чтобы быть в курсе новостей из мира Java.

Author image

Олег Чирухин

Директор по коммуникациям с разработчиками (DevRel)

Команда Axiom JDK roman.karpov@axiomjdk.ru Команда Axiom JDK logo Axiom Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 Команда Axiom JDK 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67