LINUX.ORG.RU

Сообщения Ledokot

 

[книги] Архитектура ПО

Прошу посоветовать книг по архитектуре программных продуктов, паттернам проектирования и прочей проектировочной части программирования. В частности, интересен вопрос создания ПО под будущее расширение и, как следствие изменение формата данных (как в таком случае обеспечивать обратную совместимость).

 

Ledokot
()

Распределённая VCS конфигов

Упорный поиск в гугле ничего не принёс, а вчера в порыве вдохновения накатал полу-статью, полу-ТЗ на тему распределённой системы хранения конфигов:

У любого пользователя есть определённые предпочтения - любимый редактор, плеер, файловый менелжер, эмулятор терминала... У многих людей больше, чем один компьютер. Это могут быть домашний десктоп, рабочий десктоп, ноутбук, нетбук и мало ли что ещё. Естественно, человек пользуется примерно одними и теми же инструментами на каждом компьютере. Соответственно, настройки этих инструментов одинаковы за исключением каких-то специфических особенностей. И вот, когда пользователь в очередной раз находит в Сети доселе неизвестную фишку (хоткей, режим, плагин и т. д.), её нужно добавить в конфиг каждой машины. А теперь учтём, что конфиги эти важны пользователю. А значит, он хранит их в какой-нибудь VCS или хотя бы делает бэкапы. Понятно, к чему всё идёт, да? Зачем использовать несколько репозиториев/бэкапов, содержимое которых совпадает на 40-90%? Может быть использовать единый «метарепозиторий», в котором определённым образом будет указано, какие части конфига - общие для всех машин, а какие соответствуют отдельным компьютерам? Что важно, такой метарепозиторий должен быть децентрализованным. То есть, изменения, внесённые на любой машине, интегрируются в общий «метаконфиг» и попадают на остальные машины (если помечены, как «общие для всех машин»). Естественно, можно продолжить развивать идею и создать некие группы машин, для которых идентичны некоторые части конфигов. Но это, как мне кажется, перебор. Существуют достаточно успешные проекты вроде Bcfg2, Puppet, cfengine и других для «промышленной» работы с множеством хостов. Их отличие именно в том, что подразумевается наличие главного, контролирующего сервера, с которого управляются все хосты. В данном же случае все компьютеры считаются равноправными «клентами-серверами». Кроме того, в нашем случае, подразумевается что их немного. Грубо говоря, меньше пяти. ...

Меня терзают подозрения, что нечто подобное уже есть. И вообще, кто как решает описанный вопрос?

Ledokot
()

RSS подписка на новые темы