Инструкции по миграции на российский сервер Java-приложений Libercat
Сентябрь 07, 2023
Libercat — это российский сервер приложений, реализующий спецификации Java EE (Jakarta EE). Libercat входит в реестр российского ПО и позволяет импортозаместить популярные зарубежные решения для разработки приложений на базе Java EE / Jakarta EE, такие как WebLogic, WebSphere и Jboss/Wildfly.
Более подробно о характеристиках и функционале Libercat можно почитать здесь, а в этой статье мы расскажем о процессе перехода на Libercat с иностранных проприетарных решений, рассмотрим возможные трудности, с которыми могут столкнуться разработчики, и предложим варианты их решения.
- Как мигрировать Spring Boot приложение
- Как мигрировать приложение, построенное на Java EE / Jakarta EE
- Заключение
Как мигрировать 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, вероятно, при миграции у вас не возникнет проблем с совместимостью. Но что делать, если ваш проект зависит от проприетарного функционала?
- Вполне возможно, что используемая вами фича была добавлена в стандарт. Например, в WebLogic изначально был Timer, отсутствовавший в спецификациях. Но стандарты Java EE / Jakarta EE постоянно обновляются и пополняются новым функционалом в ответ на нужды бизнеса. Популярные проприетарные функции иногда входят в стандарты, что и случилось с Timer. Сейчас, изменив импорт с weblogic.timer на jakartaee.timer, скорее всего, поведение вашего приложения не изменится.
- Вы можете поискать недостающую функцию среди стандартов Java EE / Jakarta EE или других опенсорсных проектов. Однако следует соблюдать осторожность при интеграции Open Source ПО в проект ввиду рисков безопасности и законодательного запрета на использование иностранного программного обеспечения на объектах КИИ. Для выбора подходящих программных компонентов используйте Единый реестр российского ПО и Единый реестр евразийского ПО. Вы также можете обратиться к инженерам Axiom JDK, которые помогут вам с выбором подходящего компонента.
- Если необходимого функционала нет в стандартах или в решениях, входящих в реестр, можно разработать недостающую функциональность самостоятельно или с помощью команды 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.