Система хранения данных
Содержание
Из последних постов может сложиться впечатление, что я занимался только блогом и читал новости, а техническая часть проекта стояла на месте.
Да, это так!
На самом деле — я предавался… размышлениям. Да, я сделал немного. Но это немногое — очень важная часть будущей огромной работы.
Хранилище данных #
Я занимался подготовкой системы хранения данных: структурировал учетные и технические данные, создавал для них хранилище и переводил из текстового в цифровой формат — создавая основу для будущей автоматизации. Созданные структуры лягут в основу моделей, когда я наконец-то решусь все автоматизировать и начну переписывать разрозненные баш-скрипты (которыми я автоматизирую рутинные операции сейчас) в единое приложение-оркестратор на Python.
А зачем нам etcd? #
Помните недавнюю статью про KV-хранилище? У вдумчивого читателя мог возникнуть вопрос: чтобы развернуть кластер etcd, нам понадобится как минимум три core-ноды — а на этапе прототипа мы работаем всего с одной.
На самом деле — KV-хранилище на etcd на этапе прототипа избыточно. Мы подойдем к его использованию только на этапе роста. Однако, закладывая архитектуру изначально и думая о ней уже сейчас, мы избегаем множества проблем по переработке и переделке в будущем.
На текущем этапе нам вполне достаточно git-репозитория для статического хранения информации. Настроив периодические автокоммиты, мы можем делать бэкапы конфигураций — и при необходимости смотреть по ним динамику изменений. Редкие и незначительные изменения небольшого объема — на этапе прототипа такой системы хранения данных более чем достаточно.
Но глядя в будущее — уже сейчас стоит выделить основные сущности и определить их в KV-структуры под будущее хранение в etcd. Выбрать форматы хранения — TOML, YAML, JSON?
Что сделано #
Собственно, этим я и занимался. Я растащил все данные, которые лежали в описательных текстовых файлах — с учетными данными, параметрами серверов, путями, адресами, типами узлов и прочим — в структурированный приватный репозиторий с JSON-файлами. Теперь все данные сохранены, все четко, структурировано, хоть сейчас в базу данных — а исходный монорепозиторий стал на одну папку меньше.
Что дальше #
Следующая на очереди задача — создание приватного репозитория, в который я переложу (а местами и перепишу) все уже написанные баш-скрипты по развертыванию и настройке нод, а также создание скриптов по работе с учетными данными — управление пользователями. Данные уже есть — можно начинать работать с ними.
А уже затем — переписывать разрозненные баш-скрипты в единое приложение-оркестратор на Python. Но об этом я подумаю завтра послезавтра.