@Xeldos

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

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

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

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

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

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

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

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

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

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