Добавление централизованной конфигурации на наши серверы - PullRequest
4 голосов
/ 31 марта 2012

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

Я знаю, что если я изменюОсновное требование от serivce, тянущего данные конфигурации к передаче данных в него, я могу использовать что-то вроде puppet или chef для управления всем.Я должен быть честным, у меня мало опыта работы с этими двумя системами (у нашей ИТ-команды их больше), но по моим исследованиям я могу сказать, что они НЕ подходят для этой работы.

Есть ли какие-нибудьсистемы, подобные той, что я описал выше, с которой кто-нибудь интегрировал?

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

У меня был только опыт работы с домашними решениями, поэтому мой ответ может не решить вашу проблему, но может помочь кому-то еще.Мы успешно использовали веб-серверы и роботов SVN для управления конфигурацией.Это решение не означает, что вам придется «разрабатывать с нуля», но также не является решением «под ключ».

У нас было несколько веб-серверов, каждый из которых обновлял свои конфигурации из репозитория SVN с синхронизированной минутой.,Клиенты будут отправлять запросы серверам с HTTP-аргументами типа /type=...&location=...&version=....Эти значения могут затем использоваться в представлениях при необходимости для настройки конфигураций.Мы делали это как с файлами Spring XML, которые перезагружались в режиме реального времени, так и со стандартными field=value файлами свойств.

Наша система работала только по запросу, хотя мы могли инициировать извлечение через JMX.

Hopeэто немного помогает.

1 голос
/ 02 апреля 2012

Config4 * (из которых я сопровождающий) может предоставить вам большинство возможностей, которые вы ищете из коробки, и я подозреваю, что вы могли бы легко построить оставшиеся возможности нанаверх.

Прочтите главы 2 и 3 руководства «Приступая к работе», чтобы узнать о возможностях Config4 * (не беспокойтесь, они очень короткие главы).Это поможет вам решить, насколько Config4 * соответствует вашим потребностям.

Ссылки на версии руководств в формате PDF и HTML можно найти в конце главной страницы веб-сайта Config4 *..

...