Опишите архитектуру платформы для мониторинга кибер инцидентов
Что проверяют
Умеете ли вы проектировать систему вокруг потока событий: большой объём, требование ничего не терять, возможность вернуться к сырым данным при расследовании. Формулировка про кибер инциденты нужна, чтобы посмотреть, спросите ли вы про объёмы и сроки хранения, прежде чем рисовать квадратики.
Как отвечать
Сначала уточните вводные: сколько событий в секунду и в пике, какие источники, сколько хранить горячими и сколько в архиве, что считается инцидентом и кто на него реагирует. Дальше ведите рассказ по пути события.
Сбор: агенты на хостах, syslog с сетевого оборудования, журналы облака, сетевые сенсоры. Нормализация в единую схему сразу на входе. Транспорт: брокер с разделением по источнику, чтобы события одного актива сохраняли порядок, и с запасом хранения, который переживёт остановку обработчика. Обработка: правила корреляции с окном и состоянием, обогащение справочником активов и индикаторами компрометации. Хранение в двух контурах: поисковый индекс с ограниченным сроком жизни и сырой поток в объектном хранилище для перерасследования. Сверху алерты с дедупликацией и подавлением шума, иначе дежурный перестанет их читать.
Часть про Go выделите отдельно: фиксированный пул обработчиков и ограниченные каналы вместо горутины на событие, context с таймаутом на всю цепочку, запись пачками, идемпотентность по идентификатору события. Главный показатель здоровья это отставание консьюмера.
Где спотыкаются
Перечисляют технологии вместо архитектуры. Набор из брокера, индекса и панелей не говорит ничего, пока не названы объёмы, сроки хранения и поведение при недоступности приёмника.
Второе: обещают доставку ровно один раз. Дешевле принять доставку не менее одного раза и сделать обработку идемпотентной, а дубликаты резать по ключу события.
Третье: запускают горутину на каждое входящее событие и ставят очереди без предела. На всплеске память кончается раньше, чем успевает помочь масштабирование, и система теряет данные ровно тогда, когда она нужнее всего.