☀Объяснение:
Проблема
Если параметры зашиты в код или переменные окружения на каждом сервере, изменение требует передеплоя десятков сервисов – долго и рискованно.
Централизованная конфигурация
Сервисы при старте обращаются к серверу конфигурации (Spring Cloud Config, Consul, etcd) и получают значения. Некоторые системы позволяют обновлять конфигурацию на лету через механизм watch (сервисы подписываются на изменения). Kubernetes ConfigMap можно обновить, но требуется перезапуск подов (или reinterpret средствами operator).
Преимущества
Централизованное управление одной точкой.
Возможность версионирования и отката конфигурации.
Без передеплоя (если сервис перечитывает конфиг по сигналу или периодически).
Почему не подходят другие
A – передеплой каждого сервиса при каждом изменении параметра.
C – нет стандартного механизма для любого языка.
D – глобальные env подразумевают остановку сервисов.
Реальный пример
Netflix использует Archaius + свой сервер конфигурации, чтобы управлять тысячами сервисов.
Вывод аналитика
В требованиях к архитектуре нужно указать: «Конфигурация должна быть вынесена из кода и управляться централизованно».
Post #11916
382