Похоже, что компания, в которой я работаю, всегда борется с серверной средой наших клиентов.
В частности, мы почти всегда сталкиваемся с проблемами с тестовыми серверами и рабочими серверами, а также с тем, что они всегда настроены по-разному. Когда мы тестируем разрабатываемые нами приложения, серверы тестирования ведут себя определенным образом, и поэтому мы настраиваем и настраиваем наши приложения, чтобы они соответствовали этому конкретному поведению. Но когда мы устанавливаем то же приложение на рабочие серверы, мы наблюдаем другое поведение, которое не соответствует тестовым серверам, что делает наши настройки и конфигурации бесполезными. Самое неприятное, что это происходит постоянно и никто не знает, что с этим делать.
Конечно, у нас есть общее представление о том, почему это происходит. Каждая клонированная среда запускается одинаково и работает одинаково первые пару дней, но рано или поздно кто-то что-то перенастраивает только в одной из серверных сред (будь то обновление базы данных, обновление библиотеки компонентов, обновление веб-файла, или другие конфигурации), что приводит к несоответствию. И со временем несоответствий становится все больше и больше. Но вопрос: что мы можем с этим сделать?
Я пробовал искать в Интернете, но не могу найти хороших ответов о том, что делать. Я также пытался найти некоторые решения самостоятельно, но большинство моих идей кажутся в некотором роде проблематичными. Новые процедуры, какими бы строгими они ни были, можно обойти. Регулярное клонирование рабочих серверов для создания тестовых серверов — утомительный и часто очень медленный процесс. Автоматическая репликация не всегда надежна или даже возможна. Так что же нам делать с этой проблемой? Как мы можем гарантировать, что опыт тестирования будет соответствовать опыту запуска?
Я полагаю, что и у других есть такая же проблема. Или они? Может быть, это просто моя конкретная компания, которая некомпетентна? Кто-нибудь из вас сталкивался с проблемой? Если да, то что вы с этим делали?
Искренне,
Линус, шведский системный разработчик