Меня вдохновили одной историей-задачей от коллеги, но расскажу всё от своего имени, а что вы мне сделаете, заметки то мои 🤣
На мой личный взгляд это потрясающая работа сильного, профессионального и изобретательного инженера.
Была подзадача "перетащить часть проекта с Azure stack на Bare metal".
С платформой и стеком выбор был уже почти сделан, надо было лишь развернуть инфру и перетащить данные.
Инфру развернули за 0.0001мс - мы же все гитопсы теперь.
С данными вышла засада - их было 330+ терабайт. И это лишь в одном блобе. Блобов много.
Мы были не готовы к таким цифрам в bare metal и это пахло проблемами.
И капасити и скорость передачи данных в бар метал - это сколько недель ждать?
Решили вообще узнать - а все ли данные нужны?
Зашли к девелоперам по
datawarehouse стеку, они сказали нечто типа "ну мы, конечно же, компания, специализирующая на данных, данных у нас ОЧЕНЬ много, но цифра не похожа на настоящую".Это отличный пойнт, а значит время для анализа.
Базово ажур ничего не даёт по аналитике, либо за деньги, а потому надо всё включать.
Первым делом включили
Inventory - специальный инструмент, позволяющий получать отчёт о всех данных внутри блоба. Запустили, сутки ждали, он сформировался в CSV файле, вроде около 150 мегабайт.Ок, у нас есть миллионы строчек, но сами же мы не будем глазами считать.
Создаём локально базу данных
PostgreSQL.Затем создаём табличку типа (тут есть ошибки, но это не влияет на саму задачу)
https://gist.github.com/kruchkov-alexandr/9f1210db954c92b059113835e950562e
Запускаем
DBeaver и импортируем CSV файл в это локальную базу данных PostgreSQL.Данные по объектам в блобе, а значит пора мучать любимый AI ассистент SQL запросами, нечто типа
https://gist.github.com/kruchkov-alexandr/73096e1a8a78274944dcb3c02c45f090
Оба запроса собирают статистику по контейнерам blob, считая количество файлов и их суммарный размер в GiB, также выводят общий итог по всем контейнерам.
Возвращаемся к девелоперам, показываем статистику, анализ, все в шоке, срочный колл, разбор полётов.
Не буду опускаться в суть бизнес процессов, почему и где была логическая проблема, но в общем у нас был сбой
и данные дублировались. Трижды всё проверили, расписали план и двинулись дальше:
- удалили часть данных
- включили лайфсайкл полиси на 1 день
- выключили safe delete или как это называется
- что-то ещё, но я уже не помню
В общем на момент истории блоб весит 44 терабайта, удалено больше 280 терабайт.
Какие же потери мы понесли с момента бага с дублированием?
- чтение/перечтение данных каждый день
- операции
- хранение
Итого $3500+ в месяц. За один только блоб.
Просто три с половиной шутки за мусорную дату каждый месяц....
Дальше создали задачи по всем энвайронментам пройтись, по всем стораджам, сделать такой же анализ и сходить по командам за уточнением процессинга и хранения даты, чтобы везде снизить косты, раз уж у нас был один инцидент.
Да, компания специализируется на дате, её очень много, и само собой никто уже с огромными объемами не мониторил банальный сбой и дублирование / версионирование / сейфделиты / редубликацию трафика на ингрессе и так далее. Когда данных петабайты, особо не следишь где чего и сколько. Всем кажется, что это нормально.
Итоги:
-
- узнали о величайшем(нет) провале по мониторингу биллинга и размера даты
- на момент стори снизили косты на $3500+ в месяц 😭 Точная сумма будет известно потом, когда завершаться все работы по всем стораджам, а их не мало.
- отчасти сняли блокер по переносу даты в барметал (нет, но это другая история)
