Методы мониторинга и оповещения о проблемах с данными при работе со сложными зависимостями
В этом гипотетическом примере мы имеем поток данных между несколькими командами разработчиков в электронной коммерции. Эти группы предоставляют услуги, производят данные и используют данные в разных точках потока.
Например;
- "Team Orders" поддерживает базу данных Orders и интерфейсы
- "Team Traffic" генерирует данные веб-трафика
- "Team Warehouse" поддерживает хранилище данных
- "Командный трафик" зависит от службы "Командный заказ" для получения данных заказа и связывания их с веб-трафиком.
- "Team Warehouse" зависит от "данных Team Traffic" для построения таблиц DW.
Представьте, что "Командные заказы" сталкиваются с проблемой БД (нагрузка, задержка и т. Д.). Их система мониторинга предупреждает инженера, который начинает расследовать проблему БД.
В то же время, "Командный трафик" также был предупрежден, поскольку они видят всплеск плохих ответов. Они начинают расследование и быстро понимают, что проблема связана с "Командным заказом", и поднимают заявку на "Командный заказ".
Вниз по потоку от всего этого "Team Warehouse" получает неверные данные. Их мониторинг DW предупреждает их об этом отклонении, поэтому они начинают искать первопричину.
Проблема в том, что теперь у нас есть по крайней мере три инженера, занимающихся той же проблемой, и они могут даже не знать, что другие команды делают то же самое.
Важным моментом является то, что все три команды используют разные системы мониторинга и оповещения; Team Orders отслеживает проблемы с сервером БД, а Team Warehouse ищет отклонения в количестве записей.
Есть другие подходы; оповещение только в верхней части конвейера (блокирование нисходящих потоков) или оповещение в нижней части конвейера для вышестоящих систем.
Существуют ли передовые практики, технические документы или технические решения, которые я могу исследовать, чтобы понять различные способы предупреждения и эскалации проблем с данными в нескольких группах поддержки / поддержки?
1 ответ
Настоятельно рекомендую Практику администрирования облачных систем, подробно расскажу об этом. Здесь у нас есть 3 уровня мониторинга
- Конец в конец (ой дерьмо что-то не так)
- По службе /API (о, чёрт возьми, член кластера SQL не работает, API реагирует медленно или с чем-то отличным от кода HTTP 200/300 и т. Д.)
- APM - какая часть кода и т. Д. Медленная, частота ошибок для определенных служб и т. Д.
Эти + журналы дают нам большую часть того, что нам нужно знать, что происходит, как правило, у нас есть один человек, ответственный за то, что проблема решена - координируйте исправление, но они НЕ выполняют техническую работу, которая отработана. другим. Задача координатора - убедиться, что мы не наступим друг другу на ноги, решая проблему.