Индустрия

Microsoft Open Sources Drasi

Microsoft Open Sources Drasi

Компания Microsoft объявила о доступности с открытым исходным кодом Drasi, системы обработки данных, предназначенной для упрощения обнаружения и реагирования на критические события в сложных инфраструктурах, управляемых событиями.

Drasi предназначена для использования в системах, управляемых событиями, таких как интеграция Интернета вещей (IoT) или сложные приложения. На данный момент программное обеспечение разработано командой Microsoft Azure Incubations.

Drasi можно использовать для создания решений, которые обнаруживают и реагируют на изменения данных, происходящие в существующих базах данных и программных системах. Это касается как существующих, так и новых систем, созданных с помощью Drasi. По словам разработчиков, возможности Drasi по обнаружению изменений выходят за рамки простого информирования об операциях добавления, обновления и удаления, как это обычно происходит в журналах транзакций и изменений баз данных и решениях по оповещению об изменениях на основе сообщений.

Подход Drasi, основанный на запросах, может быть использован для написания насыщенных графовых запросов, содержащих правила, описывающие типы изменений, которые вы хотите обнаружить, и данные, которые вы хотите распространить об этих изменениях. По словам команды Drasi, в качестве примера можно привести наблюдение за данными с датчиков здания и автоматическую регулировку настроек HVAC для поддержания комфортных условий для жильцов, или оптимизацию доставки заказов клиентам, когда они прибывают в зону сбора на обочине. Другим примером может быть обнаружение угроз для инфраструктуры, когда система Drasi может подавать сигналы тревоги при развертывании контейнера с известными угрозами безопасности в кластере Kubernetes.

Drasi построен вокруг простых компонентов: Источники, непрерывные запросы и реакции. Данные поступают из источника и проходят через запросы к реакциям. Одна среда Drasi может содержать множество источников, непрерывных запросов и реакций.
Источники часто представляют собой реляционные или графовые базы данных, но могут быть любыми системами, которые обеспечивают низкоуровневый поток изменений и способ запросить текущие данные в системе. Схема ввода источников в Drasi смоделирована на основе платформы сбора данных об изменениях с открытым исходным кодом Debezium.

Непрерывные запросы - это запросы, которые выполняются непрерывно. Обычные разовые запросы предоставляют результат, основанный на базе данных в определенный момент времени, по сути, это моментальный снимок. Непрерывные запросы, будучи запущенными, продолжают выполняться до тех пор, пока их не остановят, и результаты остаются точными, поскольку учитывают все изменения, вносимые в исходную базу данных по мере их возникновения. По мере возникновения изменений непрерывный запрос определяет, какие элементы результатов были добавлены, обновлены или удалены, и рассылает точное описание изменений всем реакциям, подписавшимся на запрос. Запросы реализованы в виде графовых запросов, написанных на языке запросов Cypher.

Реакции получают поток изменений результатов запроса, сгенерированный одним или несколькими непрерывными запросами, и выполняют действия, основанные на результатах. Drasi предоставляет стандартные реакции, которые выполняют действия, включая пересылку изменений результатов запросов в Azure Event Grid или SignalR, чтобы они могли быть обработаны кодом конкретного решения в приложениях, службах и функциях. Изменения результатов запроса также могут быть отправлены в качестве входных данных в настраиваемые хранимые процедуры или команды Gremlin для обновления баз данных без необходимости интеграции дополнительных промежуточных программных сервисов.

Drasi поддерживает множество исходных систем, включая Azure Cosmos Gremlin API, PostgreSQL и Kubernetes. Drasi уже доступен на GitHub и на сайте Drasi.

Читайте также

Пользовательские приложения и готовые приложения: что лучше?

В этой статье мы рассмотрим ключевые различия между мобильными приложениями на заказ и готовыми приложениями, а также узнаем, какой вариант лучше подходит для различных потребностей бизнеса. Для большей глубины обсуждения в статью включены реальные примеры и практические соображения.