Как выполнить деплой Java-приложения: подробная инструкция

Развёртывание Java-приложения является важной частью процесса разработки. Она заключается в том, чтобы взять скомпилированный код и отправить его в продакшн или на прод, то есть в рабочую среду. Этот процесс гарантирует, что приложение будет работать в соответствии с ожиданиями, предоставит пользователям необходимые функции.

В данной статье мы на простых примерах выполним деплой приложения Java, рассмотрев основной инструментарий.

Что такое деплой и зачем он нужен

Деплой (deploy) — это развёртывание и запуск веб-приложения или сайта в его рабочей среде, то есть на сервере или хостинге. При этом рабочая среда обычно представляет собой не один сервер, а множество устройств, поэтому не принято писать проекты сразу на сервере. Без деплоя код останется на компьютере разработчика, приложение останется недоступно пользователям.

Удобнее для развёртывания приложений взять в аренду сервер Linux. Тем более условия вполне доступные.

Обычно разработчики пишут код на своём компьютере, а потом переводят его в рабочую среду с помощью Nginx, Apache или других инструментов.

Следующая задача – настроить приложение таким образом, чтобы оно корректно работало в новой среде. Работа включает в себя создание политик безопасности для аутентификации или авторизации, настройку уровней протоколирования для целей отладки, если в этом есть необходимость.

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

Теперь подробно рассмотрим, какие инструменты нам понадобятся.

Инсталлируем Vesta Control Panel

Панель управления упрощает процесс развёртывания приложений. Допустимо использовать любую, мы рассмотрим Vesta Control Panel. Благодаря централизованному доступу к наиболее распространенным параметрам конфигурации она упрощает многие этапы создания полноценных Java-приложений с нуля.

Подключаться будем через утилиту Putty с защищённым соединением по протоколу SSH.

Будьте внимательны, когда будете вводить пароль, курсор останется неподвижным, но на самом деле процесс идёт.

Итак, подключаемся к пользователю с правами root. Систем выдаст сообщение с указанием актуального IP-адреса после символа @.

Теперь вводим две команды.

sudo apt update

sudo apt-get install wget

И задаём настройки панели управления.

sudo nano /usr/local/vesta/conf/vesta.conf

Не забудьте дополнительно поставить текстовый редактор, если не сделали этого раньше. Откройте его. В самом конце после всего кода добавьте строку.

FILEMANAGER_KEY = 'ILOVEREO'

Теперь найдите строчку DB_SYSTEM. Замените её на DB_SYSTEM=‘mysql,pgsql’.

Сохранение изменения, закройте файл, перезапустите Vesta Control Panel.

Инсталлируем БД PostgreSQL в Ubuntu

PostgreSQL – это мощная, открытая и свободно распространяемая система управления реляционными базами данных (СУБД), которая предлагает широкие возможности и гибкость для эффективного хранения, управления и анализа данных. Она стала одной из самых популярных благодаря поддержки расширяемости и дополнительных возможностей. PostgreSQL поддерживает различные языки программирования, такие как Python, Java и C++, а также имеет поддержку хранилищ JSON и геоданных.

Если на компьютере ещё не стоит СУБД, установите её с помощью команды.

sudo apt-get install postgresql postgresql-contrib phppgadmin

Скачайте конфигурационные файлы Vesta Control Panel.

wget http://c.vestacp.com/0.9.8/ubuntu/pg_hba.conf -O /etc/postgresql/*/main/pg_hba.conf

Перезагрузите PostgreSQL.

service postgresql restart

Зайдите в систему, выбрав пользователя su – postgres.

su – postgres

Установите пароль.

\password postgres

Зарегистрируйте PostgreSQL в Vesta. Для этого введите команду, где вместо password нужно указать актуальный пароль.

v-add-database-host pgsql localhost postgres password

Скачайте файлы для настройки phppgadmin.

wget http://c.vestacp.com/0.9.8/ubuntu/pga.conf -O /etc/phppgadmin/config.inc.php

wget http://c.vestacp.com/0.9.8/ubuntu/apache2-pga.conf -O /etc/apache2/conf.d/phppgadmin

Перезагрузите все задействованные веб-модули.

service apache2 restart

service vesta restart

service nginx restart

Инсталлируем Java на Ubuntu

Установка Java потребуется для запуска проекта. Сначала убедитесь, что система имеет доступ к обновлениям программного обеспечения. Для этого откройте терминал и выполните команду: sudo apt update После обновления списка пакетов мы можем приступить к установке Java.

sudo apt update sudo apt install openjdk-8-jdk

После выполнения этой команды система начнет скачивать и устанавливать пакеты. Когда процесс завершится, проверьте версию Java.

java --version

Если всё прошло успешно, вы увидите информацию о версии установленной Java на вашей системе.

Задаём настройки

Вернёмся к панели управления Vesta Control Panel. Благодаря графическому интерфейсу здесь удобно задавать настройки.

  • Зайдите от имени администратора, чтобы получить возможно регистрировать пользователей. Кликните на вкладку USER и создайте ещё одного пользователя. Сохраните настройки, выйдете из действующего аккаунта и зайдите уже от имени нового пользователя.
  • Подключите сайт. Для этого зайдите во вкладку Web. В подразделе Add web domain укажите название ресурса без HTTP.
  • Создайте электронную почту. Перейдите на вкладку Mail и зарегистрируйте новый почтовый ящик. Он нужен для получения различных подтверждений и SSL-сертификата.
  • Создайте базу данных. Откройте раздел DB, а в нём Add database. Система автоматически задаёт названия с префиксом от актуального аккаунта. Можете дополнительно добавить базу данных с помощью кода.
  • Настройте DNS. Все данные должны соответствовать сведениям, полученным от интернет-провайдера. Введите их в разделе Default Name Servers. Затем откройте вкладку DNS, кликните на Edit. В поле SOA укажите ns1.yourdomain.ru.
  • Купите и настройте SSL-сертификат. Перейдите во вкладку Web, откройте подраздел Edit, поставьте галку в пункте SSL support. Появятся несколько полей, который нужно заполнить. Сохраните изменения.

Настроим Nginx

Для максимальной надёжность желательно не использовать стандартные порты. Кроме того, порт 80 обычно предназначен для веб-серверов Nginx или Apache. Но мы можем сделать переадресацию через файл .htaccess.

Подключитесь к удалённому хосту по SSH, используя аккаунт с правами root. Убедитесь, что каталог действителен.

ls -l /home/YOURUSER/conf/web/

В ответ вы получите сообщение, которое выглядит приблизительно так.

SSL у нас уже стоит. Осталось задать переадресацию с HTTP на HTTPS. Делается это через файл nginx.conf: Откройте его.

sudo nano /home/YOURUSER/conf/web/YOURDOMAIN.nginx.conf

В самом конце, перед закрывающейся скобкой, добавьте следующее.

return 301 https://YOURDOMAIN$request_uri;

следующей командой включите перенаправление портов.

sudo nano /home/YOURUSER/conf/web/YOURDOMAIN.nginx.ssl.conf

Найдите блока location/. В поле proxy_pass укажите предложенное выше значение. В нашем случае это выглядит так.

location / {
  proxy_pass https://7.12.12.01:8099;

Аналогичные изменения внесите в блок в блоке location@fallback proxy_pass.

Сохраните изменения и перезагрузите все процессы.

Подготовим приложение Java для развертывания

Иногда при развёртывании приложений оказывается, что некоторые автоматические настройки не подходят, их приходится подбирать самостоятельно. В нашем примере установлена ОС Windows без дополнительных компонентов. Если у вас они есть, то соответствующие действия выполнять не нужно.

Итак, с официального сайта скачиваем и устанавливаем git и maven. В сайт, с которого вы взяли сертификат, скачайте файл pfx и перенесите его в нужный каталог.

Найдите блок блок application.properties. Допишите в него несколько строк.

Откройте файл pom.xml и укажите зависимости.

Зайдите в класс WebSecurityConfig, добавьте ещё несколько строк.

Создайте скрипт для сборки и развертывания приложения. Для этого создайте файл deploy.sh и добавьте в него следующие строки.

Рассмотрим, что означают представленные в примере переменные.

  • PATHTOTARGET – путь к каталогу, в котором расположено приложение.
  • NAMEFILE.jar – название файла.
  • IP – адрес хоста.
  • USER – имя пользователя.
  • DOMAIN – доменное имя сайта.

Логи будут храниться в каталоге /home/USER/web/DOMAIN/log.txt.

Чтобы запустить скрипт, откройте git bash и зайдите в каталог, в котором лежит нужный проект. затем введите команду.

./scripts/deploy.sh

Начнётся процесс. Если нет ошибок, он будет непрерывным, только пару раз нужно будет ввести пароль.

Чек-лист для деплоя приложения на Java

Процесс развёртывания приложений достаточно простой и состоит из 5 шагов. Установите панель управления с графическим интерфейсом, установите базу данных PostgreSQL, установите Java на Ubuntu, задайте настройки панели управления и настройте Nginx. Допишите ещё несколько строк в основные блоки, затем создайте и запустите скрипт приложения.

Готово, можете открывать его в браузере и начинать пользоваться.

Всё ещё остались вопросы?