Автор оригинала: Nilmadhab mondal.
Этот урок будет основан на предыдущем уроке но вам не нужно будет сначала проходить предыдущий урок, чтобы сделать это.
На этот раз мы возьмем тот простой API Spring Boot, который мы создали в предыдущем уроке, и запустим его в облаке. Чтобы иметь возможность сделать это, нам нужно будет найти себе VPS или виртуальный частный сервер. VPS-это виртуальная операционная система, которая работает в центре обработки данных компании. Таким образом, мы не арендуем чей-то компьютер целиком, мы арендуем часть его компьютера, в нашем случае мы арендуем только одно из его процессорных ядер (большинство современных ноутбуков имеют 4 ядра, некоторые даже больше), 1 ГБ оперативной памяти и 25 ГБ хранилища. Так что давайте начнем с этого, хорошо?
Требования
- Терминал. Это не обязательно является обязательным требованием, поскольку вы можете получить доступ к терминалу с веб-сайта Digital Ocean, но после моего тестирования я обнаружил, что их терминал работает немного медленно, поэтому я предпочитаю просто использовать терминал, поставляемый с моей операционной системой.
- Учетная запись в Digital Ocean (или у любого другого провайдера VPS).
Настройка VPS
Для начала отправляйтесь в Цифровой океан и нажмите “Войти” или “Зарегистрироваться” (или на поставщика VPS по вашему выбору).
Как только у вас появится учетная запись, вы сможете перейти на свою панель мониторинга. Нажмите “Создать” , а затем “Капли”.
Для нашего droplet мы собираемся выбрать Ubuntu 20.04 (LTS) в качестве нашего образа по выбору. Для непосвященных это очень простой в использовании дистрибутив Linux на основе Debian, он также используется мной лично. Мы просто выберем базовый план в размере 5 долларов в месяц, так как нет причин покупать что-то более дорогое. Мы не собираемся добавлять какое-либо хранилище блоков. Не стесняйтесь выбирать любой регион, который вы хотите, лично я просто собираюсь выбрать Франкфурт. Мы не собираемся получать никаких дополнительных опций. Наш вариант аутентификации будет осуществляться с помощью пароля, поэтому введите пароль root по вашему выбору. Когда вы дойдете до пункта “Выберите имя хоста”, вы должны дать ему имя по вашему выбору, так как именно так вы узнаете свою каплю, а я не знаю о вас но если бы у меня был список капель с именем, похожим на “ubuntu-s-1 vcpu-1 ГБ-бесплатно 1-01”, я бы никогда не смог отличить их друг от друга, поэтому я просто изменю свое имя хоста на что-то более узнаваемое, “Spring-Boot-Cloud”. Я также не собираюсь включать резервное копирование, так как сомневаюсь, что эта капля прослужит очень долго. Нажмите на кнопку “Создать каплю”.
Ваша капелька загрузится так же, как и обычный компьютер. Как только он будет завершен, вы сможете взаимодействовать с ним через веб-сайт или через свой терминал.
Когда вы откроете консоль в первый раз, она запросит ваш “Логин”, вы просто наберете “root”. Затем он запросит ваш пароль, это пароль, который вы должны были ввести, когда изначально создавали свою каплю. После этого вы увидите что-то вроде этого:
Использование вашего терминала
Если вы похожи на меня и предпочитаете использовать терминал своего компьютера, вы можете следовать этой части, в противном случае не стесняйтесь пропустить эту часть. Начните с открытия терминала и введите эту команду (замените YOUR_IP IP-адресом вашей капли).:
ssh root@YOUR_IP
Это должно дать вам сообщение типа: “Подлинность хоста” YOUR_IP (YOUR_IP) ” не может быть установлена. Отпечаток ключа ECDSA-это SHA256:STRING_OF_CHARACTERS. Вы уверены, что хотите продолжить подключение (да/нет/[отпечаток пальца])? “. Просто введите “да”. Он добавит его в список известных хостов, а затем закроет соединение, просто перепечатать
ssh root@YOUR_IP
или просто нажмите стрелку вверх. Он запросит у вас пароль, это пароль, который вы создали при настройке своей капли. Вы должны увидеть что-то подобное:
Обновление, обновление и установка
Теперь, когда наш сервер запущен и запущен, мы должны провести некоторую уборку, чтобы убедиться, что он готов запустить наше приложение для нас. Выполните эту команду, чтобы обновить наши файлы, обновить наши файлы и удалить все нежелательные файлы:
apt-get update && apt-get upgrade && apt-get autoremove
Если в любой момент появится сообщение типа “Вы хотите продолжить? [Y/n]” всплывает, вы можете просто нажать “y”, а затем “Enter”.
Установка необходимых пакетов
Теперь, когда наша операционная система обновлена, нам нужно установить необходимые пакеты, вы можете сделать это с помощью этой команды:
apt-get install openjdk-8-jdk openjdk-8-jre mysql-server maven
Это позволит установить Java 8 JDK и среду выполнения, MySQL и Maven. Maven будет использоваться для создания файла JAR нашего проекта.
Настройка MySQL
Далее нам нужно настроить нашу базу данных MySQL, для начала введите эту команду:
mysql_secure_installation
Это поможет вам все настроить. Если вы сомневаетесь в чем-то, просто скажите “нет”, что в данном случае означает просто нажмите enter. Когда он запросит ваш пароль, введите пароль, который вы запомните, так как он вам понадобится позже. Когда он спросит, хотите ли вы перезагрузить таблицы привилегий сейчас, скажите “да”. Далее давайте создадим базу данных пользователей. Начните с ввода этого в терминал:
mysql
Это приведет вас к монитору MySQL, где мы теперь можем создать нашу новую базу данных с помощью этой команды:
CREATE DATABASE users;
При тестировании у меня возникла проблема, из-за которой у моего приложения Spring Boot возникли проблемы с доступом к базе данных. Я нашел эту команду, которая, казалось, работала:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD';
FLUSH PRIVILEGES;
После этого вы можете выйти из MySQL monitor с помощью команды:
exit
Настройка JAVA_HOME
Наконец, нам нужно установить переменную JAVA_HOME, чтобы Maven знал, где находится JDK. Мы можем использовать nano для редактирования нашей среды:
nano /etc/environment
Под переменной PATH добавьте эту строку:
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"
Когда вы закончите, вы можете нажать Ctrl+X, он спросит вас, хотите ли вы сохранить, введите “y”, а затем нажмите Enter.
Чтобы заставить ОС распознать новую переменную, мы должны выполнить эту команду:
source /etc/environment
Чтобы убедиться, что это сработало, вы можете запустить:
echo $JAVA_HOME
Это должно вернуть путь к месту установки JDK.
Составление нашей программы
Все, что нам остается сделать, это скомпилировать наше приложение Spring Boot в файл JAR. Давайте начнем с загрузки исходных файлов с bitbucket:
git clone https://PsionicAlch@bitbucket.org/java-spring-1994/api-tutorial.git
Это приведет к клонированию проекта в наш домашний файл. Теперь нам нужно изменить некоторые переменные приложения, чтобы наше приложение знало, как получить доступ к нашей базе данных. Введите эту команду:
nano api-tutorial/src/main/resources/application.properties
Это откроет наш файл application.properties в nano. Измените “ИМЯ ПОЛЬЗОВАТЕЛЯ” на root, а “ПАРОЛЬ” на пароль, который вы использовали для настройки MySQL. Не забудьте сохранить свой файл, как вы делали это раньше. Теперь о той части, которая заставляет меня немного нервничать, так как она причинила мне столько горя, когда я готовился к этому уроку. Чтобы скомпилировать приложение, выполните эту команду:
cd api-tutorial/ && mvn clean install
Если вы получаете сообщение “СБОРКА ПРОШЛА УСПЕШНО”, это означает, что ваш проект успешно скомпилирован и что теперь у вас есть файл JAR, который вы можете запустить. Для этой части я собираюсь вернуться к терминалу на веб-сайте DigitalOcean, потому что это позволит мне запускать программу в фоновом режиме даже после того, как я закрыл свой терминал.
Запуск вашего приложения
Чтобы запустить только что созданный файл JAR, вам нужно будет изменить каталоги с помощью этой команды:
cd api-tutorial/target
Теперь для запуска файла JAR вы можете использовать эту команду:
java -jar tutorial-0.0.1-SNAPSHOT.jar
Теперь у вас должно быть запущенное приложение Spring Boot, к которому можно получить доступ из Интернета. Давайте проверим это!
Тестирование нашего приложения
Чтобы создать нового пользователя, вы можете выполнить эту команду (замените YOUR_IP IP-адресом вашего сервера).:
curl -H "Content-Type: application/json" -X POST -d '{ "username": "test", "password": "test" }' http://46.101.208.101:8080/users/register
Вы должны быть в состоянии выполнить все команды, которые мы выполнили в предыдущем уроке .
Спасибо, что прочитали это.
Хорошего вам дня!
Оригинал: “https://www.codementor.io/@nilmadhab/how-to-publish-your-spring-boot-app-to-the-cloud-webtutsplus-1crq64t06x”