Viji
@Viji
DevOps Engineer

Как более правильно организовать (удаленную) разработку backend для Android Application, вкл Spring Boot, MySQL, servlet container?

Наша молодая (полустуденческая) команда пытается создать бэкэнд-приложение c RESTful сервисом для Android Frontend. Приложение Java/Spring (Spring Boot... Tomcat?) c подключением к локальному серверу базы данных MySQL. Приложение будет передавать полученную из базы информацию front end клиентам (приложение для Android).
Не могли бы вы посоветовать, какой будет правильный способ организации разработки и развертывания (testing and production environment)?
Есть два vds, где мы сами планируем создать тестовую и продакшн среду (в том числе и для изучения). Что-то готовое вроде Google Cloud или Heroku использовать не хотим. Будет ли более правильным установить JAVA JDK, Spring Boot и MySQL на наших локальных машинах, и делать commit to GitLab в качестве общего хранилища и контроля версий? Когда приложение backend будет готово, оно будет развернуто на удаленном сервере (также с использованием git-инструментов), где мы также должны установить Java SDK, Spring Boot и Tomcat? А как нам делать deploy MySQL из локальной машины на vds? Делать dump of database, copy to GitLab repo и оттуда на vds?

Я понимаю наверное есть десятки разных способов (напр с Docker), но хотелось бы примеры из жизни, советы. Оптимизации в данный момент не требуется. Приложение простое и разрабатывается больше для понимания сути технологий. Мы даже думаем отказаться от IDE.
  • Вопрос задан
  • 399 просмотров
Пригласить эксперта
Ответы на вопрос 1
zolt85
@zolt85
Программист
Во-первых, Вам нужно договориться об используемых инструментах, о настройках окружения. Отказываться от IDE не советую, т.к. это сильно снизит Вашу производительность. У каждого разработчика должна быть локально настроена среда с БД, Томкатом и прочим. Изменения БД лучше всего доносить через миграции, при помощи liquibase например.

Для грамотного деплоя можно попробовать пайплайны в GitLab или Bitbucket. Для работы с Git Вам также всем надо договориться. Как разрабатываются фичи? Делать отдельные ветки под каждую задачу? Кто может пушить в master? И т.д.

Обязательно проводите ревью кода друг друга.

VPS для stage и produсtion среды это норм. Опять же надо договориться, кто будет отвечать за настройку и состояние этих VPS.

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

Войдите, чтобы написать ответ

Похожие вопросы