Развёртывание Java-приложения является важной частью процесса разработки. Она заключается в том, чтобы взять скомпилированный код и отправить его в продакшн или на прод, то есть в рабочую среду. Этот процесс гарантирует, что приложение будет работать в соответствии с ожиданиями, предоставит пользователям необходимые функции.
В данной статье мы на простых примерах выполним деплой приложения Java, рассмотрев основной инструментарий.
Деплой (deploy) — это развёртывание и запуск веб-приложения или сайта в его рабочей среде, то есть на сервере или хостинге. При этом рабочая среда обычно представляет собой не один сервер, а множество устройств, поэтому не принято писать проекты сразу на сервере. Без деплоя код останется на компьютере разработчика, приложение останется недоступно пользователям.
Удобнее для развёртывания приложений взять в аренду сервер Linux. Тем более условия вполне доступные.
Обычно разработчики пишут код на своём компьютере, а потом переводят его в рабочую среду с помощью Nginx, Apache или других инструментов.
Следующая задача – настроить приложение таким образом, чтобы оно корректно работало в новой среде. Работа включает в себя создание политик безопасности для аутентификации или авторизации, настройку уровней протоколирования для целей отладки, если в этом есть необходимость.
После завершения конфигурирования разработчики отслеживают работу приложений, выявляя возможные проблемы. Если есть риск их возникновения, вносят изменения для обеспечения оптимальной производительности.
Теперь подробно рассмотрим, какие инструменты нам понадобятся.
Панель управления упрощает процесс развёртывания приложений. Допустимо использовать любую, мы рассмотрим 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 – это мощная, открытая и свободно распространяемая система управления реляционными базами данных (СУБД), которая предлагает широкие возможности и гибкость для эффективного хранения, управления и анализа данных. Она стала одной из самых популярных благодаря поддержки расширяемости и дополнительных возможностей. 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 потребуется для запуска проекта. Сначала убедитесь, что система имеет доступ к обновлениям программного обеспечения. Для этого откройте терминал и выполните команду: sudo apt update После обновления списка пакетов мы можем приступить к установке Java.
sudo apt update sudo apt install openjdk-8-jdk
После выполнения этой команды система начнет скачивать и устанавливать пакеты. Когда процесс завершится, проверьте версию Java.
java --version
Если всё прошло успешно, вы увидите информацию о версии установленной Java на вашей системе.
Вернёмся к панели управления Vesta Control Panel. Благодаря графическому интерфейсу здесь удобно задавать настройки.
Для максимальной надёжность желательно не использовать стандартные порты. Кроме того, порт 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.
Сохраните изменения и перезагрузите все процессы.
Иногда при развёртывании приложений оказывается, что некоторые автоматические настройки не подходят, их приходится подбирать самостоятельно. В нашем примере установлена ОС Windows без дополнительных компонентов. Если у вас они есть, то соответствующие действия выполнять не нужно.
Итак, с официального сайта скачиваем и устанавливаем git и maven. В сайт, с которого вы взяли сертификат, скачайте файл pfx и перенесите его в нужный каталог.
Найдите блок блок application.properties. Допишите в него несколько строк.
Откройте файл pom.xml и укажите зависимости.
Зайдите в класс WebSecurityConfig, добавьте ещё несколько строк.
Создайте скрипт для сборки и развертывания приложения. Для этого создайте файл deploy.sh и добавьте в него следующие строки.
Рассмотрим, что означают представленные в примере переменные.
Логи будут храниться в каталоге /home/USER/web/DOMAIN/log.txt.
Чтобы запустить скрипт, откройте git bash и зайдите в каталог, в котором лежит нужный проект. затем введите команду.
./scripts/deploy.sh
Начнётся процесс. Если нет ошибок, он будет непрерывным, только пару раз нужно будет ввести пароль.
Процесс развёртывания приложений достаточно простой и состоит из 5 шагов. Установите панель управления с графическим интерфейсом, установите базу данных PostgreSQL, установите Java на Ubuntu, задайте настройки панели управления и настройте Nginx. Допишите ещё несколько строк в основные блоки, затем создайте и запустите скрипт приложения.
Готово, можете открывать его в браузере и начинать пользоваться.