Хранить всё подряд больше нельзя: экономика архивов, логов и исторических слоёв
Дешёвый диск снижает стоимость записи, но не стоимость поиска, сопровождения и понимания того, что лежит внутри.
Несколько лет назад главным аргументом за агрессивное хранение данных была стоимость диска. Сейчас цена за гигабайт упала настолько, что этот аргумент звучит как само собой разумеющееся. Раз дёшево - значит, пишем всё.
Проблема в том, что стоимость хранения - это не только стоимость диска. Это стоимость поиска, индексирования, резервного копирования, миграций, аудита и, главное, понимания того, что именно лежит в этом хранилище через два года.
Что на самом деле дорожает
Когда объём растёт бесконтрольно, растут и сопутствующие издержки:
- резервное копирование становится длиннее и дороже;
- поиск по неструктурированному архиву деградирует без индексов, а индексы стоят отдельно;
- при инцидентах нужно разобраться, что из сохранённого актуально - и это ручная работа;
- при аудите или расследовании "посмотрим в логах" превращается в "найдём кого-то, кто знает, где они лежат";
- миграция на новое хранилище линейно зависит от объёма.
Последний пункт заслуживает отдельного внимания: логи полезны только тогда, когда понятно, что в них есть, и их можно быстро запросить.
Дешёвый диск не отменяет ни одну из этих статей расходов. Он только маскирует их до тех пор, пока ситуация не становится неуправляемой.
Три слоя, которые стоит разделять
На практике большинство данных в компании делится на три категории с принципиально разной экономикой.
Оперативный слой - данные, которые нужны прямо сейчас: последние транзакции, текущие сессии, активные задачи. Здесь важна скорость, объём относительно невелик, срок жизни понятен.
Аналитический слой - агрегированная история: итоги за периоды, тренды, сравнения. Объём умеренный, запросы предсказуемые, срок хранения определяется бизнесом.
Сырой архив - полные логи, события, исходные выгрузки. Объём большой, запросы редкие и непредсказуемые. Именно здесь чаще всего нет дисциплины.
Когда все три слоя валятся в одно место без маркировки - получается ситуация, в которой никто не может ответить, что из этого нужно, что устарело, и что вообще безопасно удалить.
Политика хранения - это решение, а не настройка по умолчанию
Хранить вечно - это тоже решение. Просто обычно оно принимается по умолчанию, без анализа последствий.
Разумная политика хранения отвечает на несколько вопросов:
- Какой срок жизни у этого типа данных с точки зрения бизнеса?
- Нужны ли они в полном виде или достаточно агрегатов?
- Кто будет их искать и с какой целью?
- Что происходит, если мы их удалим через год - и через пять?
Для логов приложений ответы обычно отличаются от ответов для финансовых транзакций. Для журналов доступа - от ответов для пользовательских событий. Политика должна быть разной.
Метаданные важнее объёма
Парадокс хранения больших объёмов в том, что проблемой становится не сам объём, а отсутствие описания. Если никто не знает, что лежит в папке "archive_2010_final_v2", это не архив - это мусор с неизвестным составом.
Минимальный набор метаданных для любого набора данных:
- что это такое (источник, содержимое, формат);
- за какой период;
- кто владелец или кто создал;
- когда истекает полезность и можно удалять.
Без этого любое хранилище через несколько лет превращается в место, которого все боятся трогать.
Простой аудиторский вопрос
Прежде чем расширять хранилище в следующий раз, я рекомендую задать один вопрос: за последние шесть месяцев - что именно из архива открывали, кто и зачем?
Если ответа нет - значит, дисциплины хранения нет. И добавить больше места означает просто отложить проблему, а не решить её.