По мере роста наших систем появляется все больше и больше серверов и сервисов (разных типов и нескольких экземпляров одного типа, требующих незначительных изменений конфигурации).Мы ищем решение «централизованной конфигурации», желательно существующее и ничего, что нам не нужно разрабатывать с самого начала.Идея примерно такая: сервис работает, он знает один фрагмент данных (его тип + местоположение + версия + serviceID или что-то в этом роде) и связывается с какой-то центральной службой, которая даст ему правильную конфигурацию (файл, объект или что-то еще),Если служба, подключенная к сети, не может найти службу конфигурации, она либо использует кэшированную конфигурацию, либо откажется инициализировать (поведение, вероятно, должно быть указано в параметрах запуска, которые она получает, от кого или чего-либо, что выводит ее в сеть).высокая доступность, т. е. кластер серверов (ZooKeeper продолжает звучать как идеальный кандидат). Служба должна предпочтительно поддерживать концепцию наследования, позволяющую использовать глобальный файл конфигурации для типа службы и затем конкретные переопределения или расширения для каждого экземпляра службы с помощью своегоЯ БЫ.Кроме того, он должен поддерживать что-то вроде управления версиями конфигурации, что позволяет сохранять разные конфигурации одного и того же типа сервиса для разных версий, поскольку мы хотим больше полагаться на большее количество параллельных развертываний сервисов.Другая сторона уравнения заключается в том, что существует инструмент администратора конфигурации, который подключается к той же централизованной службе конфигурации и может просматривать и обновлять все конфигурации в соответствии с вышеуказанными требованиями.
Я знаю, что если я изменюОсновное требование от serivce, тянущего данные конфигурации к передаче данных в него, я могу использовать что-то вроде puppet или chef для управления всем.Я должен быть честным, у меня мало опыта работы с этими двумя системами (у нашей ИТ-команды их больше), но по моим исследованиям я могу сказать, что они НЕ подходят для этой работы.
Есть ли какие-нибудьсистемы, подобные той, что я описал выше, с которой кто-нибудь интегрировал?