В Microsoft разработали платформу программирования событийно-зависимых архитектур Drasi, которая по инициативе корпорации далее будет развиваться в качестве проекта с открытым кодом под эгидой организации Cloud Native Computing Foundation (CNCF).
Drasi позволяет автоматизировать непрерывный опрос большого количества источников данных и реагирование на происходящие в данных изменения. При этом в Microsoft платформу описывают как упрощенный инструмент, которому не нужно централизованное хранилище событийных данных.
В Drasi предусмотрены три основные концепции — источники, непрерывные запросы и реакции. Источники могут быть самыми разными — журналы; обновления базы данных; события, проходящие через маршрутизатор Azure Event Grid; выходные данные функций Azure Function и не только. Непрерывные запросы, составляемые на языке Cypher Query Language (CQL), проверяют источники на изменения данных, и возвращают результат при выполнении заданных условий. Как только запрос сработал, система запускает реакцию. Это может быть просто отправка уведомления, а может и запуск сразу целого набора заранее настроенных процессов. Например, в промышленной системе Интернета вещей реакция может остановить оборудование при нештатной ситуации, а в корпоративной ИТ-среде — запустить переключение на резервные серверы при сбое основных.
Язык CQL, напоминающий SQL, предназначен для работы с графовыми базами данных. Microsoft добавила к нему ряд функций специально для Drasi, например, возможность проверять выполнение заданных условий в указанный момент в будущем. Управляется платформа целиком с помощью API — ей можно отправлять команды с помощью специальной консольной утилиты, либо разработать собственный интерфейс для работы с запросами.
Преимущество Drasi — в возможности заменить сразу большое количество различных инструментов управления, ведь один и тот же экземпляр платформы может одновременно работать, например, с телеметрией реального времени и данными, которые обновляются вручную. Пример — считывание журналов технического обслуживания производственного оборудования и параллельный мониторинг поступающей от него телеметрии. К тому же, будучи инструментом Azure, Drasi отличается колоссальной масштабируемостью — платформу можно использовать как в небольшой среде, так и в глобальной организации: этот несложный в освоении инструмент способен обрабатывать колоссальные потоки событий.