Тэги: gradle, Spring Boot, руководство, Docker, devops.
После того как вы создали своё первое приложение на Spring Boot, вы можете задаться вопросом: как развернуть его на сервере, чтобы оно работало в режиме 24/7 и было доступно в интернете? Для этих целей можно создать виртуальный сервер, установить туда нужную ОС, установить java и, возможно, развернуть базу данных типа Postgres. После этого надо собрать jar-файл (можно и локально), загрузить его по ssh и запустить как Unix-сервис. Подобные шаги я описывал в статье Настройка Ubuntu под хостинг JVM приложения. Однако это неудобно и затратно по времени.
Более правильный вариант – это настроить конвейер CI/CD, чтобы не вручную закачивать jar-файл, а запускать сборку автоматически при отправке новых изменений в github. Однако для этого нужно обладать знаниями devops, и, что более критично, хороший конвейер потребляет много ресурсов при сборке, ибо тоже работает на сервере. Порой даже больше, чем будет потреблять собираемое им приложение.
Отсюда следует вывод, что для небольших проектов нецелесообразно разворачивать полноценный конвейер. Но тогда как получить непрерывную сборку и интеграцию и при этом потратить минимум усилий, избегая ручной работы? Об этом и поговорим далее.
Тэги: Spring, руководство, Java, gradle, maven, PostgreSQL, SQL, Nginx, Linux, devops.
Если Вам интересно, как настроить сервер для хостинга JVM приложения, то предлагаю вашему вниманию следующую инструкцию. Предположим, вы только что получили доступ к чистому VPS серверу, на котором крутится Ubuntu и вы хотите на нём развернуть полноценное JVM приложение, основанное на Spring. Для полноты картины мы настроим также локальный postgres и доступ извне по http.
Прежде всего обновляем индекс менеджера пакетов apt. У вас должно быть достаточно прав для выполнения sudo, а также ваш сервер должен иметь доступ в Интернет.
Тэги: PostgreSQL, руководство, devops.
Для того чтобы открыть доступ по локальной сети с других машин к БД, которая развёрнута на данной, нужно отредактировать два файла: postgresql.conf и pg_hba.conf. Привожу пример для своей операционной системы, основанной на Linux (Ubuntu).
В файле /etc/postgresql/номер_версии/main/postgresql.conf находим строку
и раскомментируем её (убираем решётку в начале строки) или добавляем, если такой строки в файле нет.
Данная настройка позволяет обрабатывать все запросы, приходящие извне. В противном случае будут обрабатываться только локальные запросы.
Затем в файле /etc/postgresql/номер_версии/main/pg_hba.conf с правами администратора нужно указать, какие хосты имеют право подключаться к указанной БД и каким образом обеспечивается безопасность подключения.
Тэги: руководство, Linux, файлы, devops.
Если вы только начинаете работать в unix-подобной системе, такой как Linux или MacOS, то для вас будет полезна следующая таблица, в которой я постарался собрать часто используемые консольные команды.
Сразу добавляйте эту страницу в «Избранное»! Если у вас есть идеи, как расширить этот список – пишите в комментах.
Команда | Описание |
---|---|
pwd | вывести полный путь до текущей директории |
ls | список файлов в текущей директории |
ls -la | список файлов в текущей директории, в том числе скрытых |
cd или cd ~ | перейти в домашний каталог |
cd путь | перейти в указанный каталог |
history | история выполненных ранее команд с порядковыми номерами |
!номер_команды | повторить команду с указанным номером |
clear | очистить консоль |
exit | закрыть консоль (при работе в оконном режиме) или разлогиниться (если вы заходили под другим пользователем) |
Тэги: PostgreSQL, руководство, SQL, файлы, devops.
Для создания полного бэкапа базы на postgres воспользуемся утилитой pg_dump. Бэкап представляет собой текстовый файл с sql-синтаксисом. При этом данные вставляются в более компактном виде.
Перейдём в целевой каталог, в котором планируется сохранить файл бэкапа. Затем выполняем команду:
Разумеется, подключиться можно как к локальной базе, так и к базе, расположенной на сервере. После того, как файл создался, можем приступить к созданию копии.
Для начала создайте базу (её имя может быть любым), а также пользователя, имя которого должно совпадать с именем пользователя, который работает с исходной базой. Скорее всего, это имя, которое вы использовали для параметра -U в команде, указанной выше. Но точнее лучше посмотреть в полученном файле бэкапа. В скрипте создания таблиц можно увидеть строчку вида:
Kotlin, Java, Spring, Spring Boot, Spring Data, SQL, PostgreSQL, Oracle, H2, Linux, Hibernate, Collections, Stream API, многопоточность, чат-боты, нейросети, файлы, devops, Docker, Nginx, Apache, maven, gradle, JUnit, YouTube, новости, руководство, ООП, алгоритмы, головоломки, rest, GraphQL, Excel, XML, json, yaml.