В моем проекте, где я являюсь ведущим разработчиком, у нас ранее была сетевая конфигурация, которая хранилась в одном XML-файле. Конфигурация содержит информацию о структуре сети — входящие в ее состав хосты, различные сведения о каждом хосте, такие как ОС, платформа, пользователи, настроенные для каждого из них, несколько атрибутов для каждого пользователя и так далее. В следующей версии продукта мы хотим переместить данные в какую-то базу данных, поскольку конфигурация будет расширена, чтобы включить больше элементов и деталей, а сохранение их в файлах XML станет громоздким.
Первым выбором была РСУБД. Однако из-за иерархической природы данных конфигурации и критерия расширяемости сервер каталогов казался лучшим выбором. Мотивы перехода на сервер каталогов:
Иерархические данные проще моделировать на сервере каталогов, чем в СУБД.
Также гораздо проще создавать/определять новые типы сущностей, расширяющие базовый тип дополнительными атрибутами. Это очень привлекательно с точки зрения решения проблем.
Данные конфигурации будут считываться чаще, чем обновляться. Хотя производительность не имеет значения, сервер каталогов очень хорошо соответствует этой характеристике.
Примерно через неделю изучения основ LDAP и серверов каталогов я несколько скептически отношусь к выбору сервера каталогов. Я вижу несколько проблем:
LDAP менее популярен, чем RDBMS. Гораздо больше людей имеют опыт работы с SQL и могут быстрее начать работу с РСУБД, чем с сервером каталогов. Как я упоминал ранее, мне потребовалось чуть больше недели, чтобы изучить только основы LDAP (как создать схему, определить DIT, добавить записи, экспортировать данные в файлы LDIF и т. д.). Это важно, потому что, когда новый член присоединяется к команде, он не сталкивается с кривой обучения.
В будущем у нас может быть больше данных, которые нужно поддерживать и хранить в базе данных. Сервер каталогов может быть не лучшим выбором для таких данных (например, данные, которые могут обновляться так же часто, как они читаются). На мой взгляд, наличие двух механизмов хранения — это бремя.
С политической точки зрения, меня не будут обвинять/увольнять за выбор РСУБД, даже если она не подходит для решения текущей проблемы. С сервером каталогов, если пункт 2 выше станет реальностью, я не хочу отвечать на вопрос «Почему вы не подумали об этом раньше?».
Жду совета как сделать выбор. Кто-нибудь уже сталкивался с подобной ситуацией?
РЕДАКТИРОВАТЬ-1: у нас было обсуждение этого в рамках проекта, где я изложил точные моменты, которые я сделал здесь. Весьма вероятно, что мы выберем РСУБД без дальнейшей оценки по следующим причинам:
Пункт 2 считался более важным, чем все остальное.
Мышление в моем подразделении кажется довольно консервативным, и люди на всех уровнях хотят перестраховаться. Хотя я действительно не могу винить их за это.
«Почему не РСУБД?» был первый вопрос. «Можно ли это сделать с помощью СУБД?» был вторым. Я наконец получил сообщение.