Неправильно ли устанавливать сервер БД на сервер CI?

77
9

Удивительно, какие представления на этом


У нас есть сервер CI, который запускает некоторые тесты интеграции на сервере БД, и хорошо... просто кажется неправильным установить сервер базы данных на сервере CI для размещения этого


Дополнительная информация для ответа на комментарий:
Зачем это нужно?
Эта часть тестов проверяет создание и миграцию схемы db и использует некоторые методы поверх этого.


Какую систему CI вы используете?
Team City, но я не думаю, что это релевантный вопрос TBH


Вы обеспокоены производительностью, если вы отделите CI от сервера базы данных?
не совсем, я понимаю, что разделение сделает тесты медленнее, что плохой идеей.


Я бы хотел услышать мнение других разработчиков по этому вопросу

спросил(а) 2021-01-25T18:03:55+03:00 4 месяца, 4 недели назад
1
Решение
89

Если эта база данных существует только для того, чтобы запускать тесты интеграции из сборки CI, то для меня это не так уж плохо. Если, однако, через несколько месяцев после того, как она начинает перерабатываться для других средств и используется другими клиентами, то, возможно, стоит переосмыслить ее.


Если честно, это не похоже на то, на что можно ответить объективно. Многие другие факторы играют роль - лицензирование, спецификация машины, доступность других серверов, уровень использования virtuelisation, политика поддержки, где вы работаете, и т.д.

Если он работает без заминки, то о чем беспокоиться?

ответил(а) 2021-01-25T18:03:55+03:00 4 месяца, 4 недели назад
63

Я не обязательно думаю, что его плохая идея состоит в том, что у обоих есть один и тот же сервер, хотя он сильно зависит от ваших обстоятельств.


Как уже упоминалось, использование его на отдельных серверах является идеальным способом и облегчает проблемы с устранением проблем.


Зачем вам нужен сервер CI для работы на сервере БД?
Испытываете ли вы тесты, тесно связанные с этим, в некотором роде?


Рассматривали ли вы виртуализацию?
Я использую http://www.virtualbox.org/ бесплатно и отлично справляется.
Вы можете получить преимущества, упомянутые выше, и без дополнительных затрат на оборудование.

Это также позволит вам иметь простой процесс резервного копирования/восстановления, если аппаратное обеспечение выходит из строя, что, скорее всего, произойдет непосредственно перед тем, как вы захотите провести тест перед выпуском: -)


НТН


Ralph

ответил(а) 2021-01-25T18:03:55+03:00 4 месяца, 4 недели назад
63

В идеале у вас будут все ваши "системы" (база данных, CI, хранилище данных, веб-сервер, предварительная подготовка и т.д.) на отдельных серверах, поскольку у вас есть преимущества изоляции, производительности и хорошего разделения проблемы.


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

ответил(а) 2021-01-25T18:03:55+03:00 4 месяца, 4 недели назад
45

Я не уверен, что слежу за тем, что вы тестируете.


У меня, конечно, не был бы сервер поддержки разработки только на сервере CI, потому что тогда вы не можете стресс протестировать его, не затрагивая сервер. Итак, если вы говорите о добавлении еще одного сервера БД разработки только для запуска этого теста во время процессов CI (и почему он даже должен быть на сервере CI), тогда вы добавляете больше управления, администрирования и резервного копирования.

ответил(а) 2021-01-25T18:03:55+03:00 4 месяца, 4 недели назад
45

Вы можете создать базу данных локально для каждой сборки. Для одной из наших сборников мы действительно имеем sql-скрипты, которые с нуля создадут БД, таблицы и данные (импортирующие файлы CSV). Мы запускаем наши тесты интеграции с этой базой данных локально.


Я думаю, что одним из принципов Continuous Integration является то, что вы можете взять любую девственную машину и запустить сборку одним щелчком.

ответил(а) 2021-01-25T18:03:55+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема