@Xeldos

Как организовать (не настроить!) CD в веб-разработке?

Опять глупый вопрос, но я не нашёл ответа. Есть веб-проект, над которым работают несколько людей. Периодически в процессе разработки надо смотреть "что получилось", производить ручное тестирование и так далее. Я сломал голову, пытаясь понять, как это красиво по-современному организовать. Пытался нагуглить, то ли я формулировать не умею, то ли одно из двух.
Придумалось на данный момент вот что. Есть гитлаб. Есть дев-сервер, на котором крутится runner. При коммите (точнее, при пуше) всё собирается докером и запускается контейнер на сервере. Но разработчиков несколько! Как запускать? На разных портах? Тебе 8081, тебе 8082? А ещё есть СУБД, к которой тоже нужен доступ - залезть гразными руками и посмотреть-поправить. Тебе 5432, тебе 5433 и так далее? Некрасиво. Запутаться можно. Изоляции нет :( Да и не только СУБД, другие сервисы могут быть. Так портов на всех не хватит. Потом, бывают ситуации, когда разработчик откладывает задачу-ветку и начинает работать над другой задачей в другой ветке. Что тогда? Ломать всё что было на 8081 и 5432, и накатывать поверх? Тоже как-то не очень видится решение.
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 2
vabka
@vabka
Токсичный шарпист
Но разработчиков несколько! Как запускать? На разных портах?

У нас это было организовано при помощи тестовых стендов - разработчик просто выбирает заранее, какой стенд он будет занимать, и на него его код и грузится.
Будет получается a.test.example.com, b.test.example.com и так далее.
Можно и более запоминающиеся имена давать, типа alpha/beta/gamma итд.
А ещё есть СУБД, к которой тоже нужен доступ

В субд можно создавать отдельные базы данных, и собственно к ним и делать подключение - на каждого разработчика заводишь свою базу и всё.

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

Периодически в процессе разработки надо смотреть "что получилось", производить ручное тестирование и так далее. Я сломал голову, пытаясь понять, как это красиво по-современному организовать.
Определись с подходящим для проекта и команды git flow.

При коммите (точнее, при пуше) всё собирается докером и запускается контейнер на сервере. Но разработчиков несколько! Как запускать? На разных портах? Тебе 8081, тебе 8082? А ещё есть СУБД, к которой тоже нужен доступ - залезть гразными руками и посмотреть-поправить. Тебе 5432, тебе 5433 и так далее?
Моки всякие можно использовать и не лезть базу. Если религиозные ограничения мешают этому, то на сервере баз данных, этих баз можно насоздавать уйму. Хоть по одной под каждый запрос к базе разработчика. Только с кредами главное не запариться.

Потом, бывают ситуации, когда разработчик откладывает задачу-ветку и начинает работать над другой задачей в другой ветке. Что тогда?
Если желания наведения порядка на проекте нет, создавай отдельный деплой под каждую ветку.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы