В основном это проблема связи, но вы можете сделать ошибки менее вероятными с помощью простых технических и организационных мер. Во-первых, вы должны предоставить качественную документацию всех записей в ваших файлах конфигурации, а также некоторые легко доступные примеры или файл конфигурации по умолчанию. Файл примера может быть автоматически развернут в каждой среде, поскольку он не предназначен для непосредственного изменения командой разработчиков.
Затем, с каждым новым выпуском, обеспечьте журнал изменений, где важные изменения задокументированы. Изменения в конфигурации, которые могут помешать работе системы при их отсутствии, всегда важны, поэтому убедитесь, что информация там есть.
Например, скажем, команда разработчиков добавляет несколько пар ключ-значение в application.properties в своей среде. Как лучше всего записать эти новые ключи, чтобы при развертывании в ops-команде они точно знали, какие ключи добавить, чтобы минимизировать риск запуска новой службы и ее сбоя из-за отсутствия ключа?
Лучший способ снизить риск сбоя - избегать изменения приложения так, как оно требует новых ключей, поэтому приложение должно быть обратно совместимо со старыми файлами конфигурации, когда это возможно. Часто ваше приложение может вести себя разумно, предоставляя встроенные значения по умолчанию для новых ключей в случае их отсутствия.
Однако, если это невозможно, ваша система должна сделать так, чтобы команда разработчиков могла выяснить, почему новая служба не запускается при отсутствии ключа. Должно быть четкое сообщение об ошибке, точно указывающее , какой ключ отсутствует в каком файле , и, если необходимо, где найти информацию об отсутствующем ключе, или подсказку или пример о значимой записи для этого ключа.
Если конфигурация сложная и формат изменяется таким образом, что ручное редактирование становится подверженным ошибкам, вы можете также рассмотреть возможность предоставления инструментов для редактирования конфигураций и для перехода на более новую версию.
Например, я использую веб-браузер Firefox, и с каждым новым выпуском (который я получаю автоматически) некоторые вещи добавляются в локальную конфигурацию, которую можно просмотреть на странице «about: config». Это сопоставимо с конфигурацией в вашей «производственной» среде. Поскольку вся конфигурация поддерживается строго обратной совместимостью, мне никогда не придется добавлять новые ключи в конфигурацию вручную только потому, что есть новая версия браузера. А для случая, когда я хочу что-то там изменить (возможно, новую запись, которая не была частью предыдущей версии), я либо использую меню Инструменты / Параметры, либо страницу «about: config», и могу найти запись плюс некоторые вид документации. Поэтому я рекомендую попробовать внедрить вашу систему аналогичным образом.