Использование брокера сообщений и событий для интеграции корпоративных систем

Сетка событий Azure
Служебная шина Azure

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

Архитектура

Серверные системы, на которые ссылается эта архитектура, включают в себя системы saaS, службы Azure, службы на основе сообщений и существующие веб-службы в вашей организации.

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

Скачайте файл Visio для этой архитектуры.

Подробности сценария

Предыдущая архитектура основана на более простой архитектуре корпоративной интеграции, которая использует Azure Logic Apps для оркестрации рабочих процессов непосредственно с внутренними системами и использует Azure Управление API для создания каталогов API.

В этом варианте архитектуры добавлены два компонента, повышающих надежность и масштабируемость системы:

  • Служебная шина Azure — это безопасный надежный брокер сообщений.

  • Сетка событий Azure — это служба маршрутизации событий. В нем используется модель публикации и подписки на события.

Эта архитектура использует асинхронное взаимодействие через брокер сообщений вместо прямого синхронного вызова внутренних служб. Асинхронное взаимодействие обеспечивает следующие преимущества:

  • Использует шаблон выравнивания нагрузки на основе очередей для обработки всплесков рабочих нагрузок с помощью выравнивания нагрузки

  • Использует шаблон подписчика издателя, чтобы вы могли транслировать сообщения нескольким потребителям.

  • Отслеживает ход выполнения длительных рабочих процессов надежно, даже если они включают несколько шагов или несколько приложений.

  • Помогает отделить приложения

  • Интеграция с существующими системами на основе сообщений

  • Предоставляет возможность очередей сообщений, когда внутренние системы недоступны

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

Многие службы Azure поддерживают отправку событий в Сетку событий Azure. Например, приложение логики может прослушивать событие при добавлении новых файлов в хранилище BLOB-объектов. Этот шаблон создает реактивные рабочие процессы, в которых отправка файла или отправка сообщения в очередь запускает ряд процессов. Процессы могут выполняться параллельно или в определенной последовательности.

Рекомендации

Рассмотрим следующие рекомендации. Дополнительные рекомендации см. в статье "Базовая архитектура интеграции предприятия".

Cлужебная шина

служебная шина имеет две модели доставки, модель извлечения и прокси-модель принудительной отправки:

  • Модель извлечения: получатель постоянно опрашивает новые сообщения. Если вам нужно управлять несколькими очередями и временем опроса, опрос может оказаться неэффективным. Но эта модель может упростить архитектуру, так как она удаляет дополнительные компоненты и прыжки данных.

  • Модель принудительной отправки с прокси-данными: получатель изначально подписывается на определенный тип события в разделе "Сетка событий". Когда новое сообщение доступно, служебная шина вызывает и отправляет событие через сетку событий. Затем это событие активирует приемник для извлечения следующего пакета сообщений из служебная шина. Эта модель позволяет системам получать сообщения почти в режиме реального времени, но без использования ресурсов для непрерывного опроса новых сообщений. В этой архитектуре используются дополнительные компоненты, которые необходимо развертывать, управлять и защищать.

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

Используйте режим PeekLock для доступа к группе сообщений. При использовании PeekLock приложение логики может проверять каждое сообщение перед завершением или отменой. Этот подход предотвращает случайную потерю сообщения.

Сетка событий

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

Рекомендации

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Надежность

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

Сведения о гарантированной доступности каждой службы см. в соглашениях об уровне обслуживания для веб-службы.

Безопасность

Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в контрольном списке проверки конструктора для безопасности.

Чтобы защитить служебная шина, свяйте проверку подлинности Microsoft Entra с управляемыми удостоверениями. Интеграция идентификатора Microsoft Entra для служебная шина ресурсов обеспечивает управление доступом на основе ролей Azure (RBAC) для точного контроля доступа клиента к ресурсам. Azure RBAC можно использовать для предоставления разрешений субъекту безопасности, например пользователю, группе или субъекту-службе приложений. Субъект-служба приложений в этом сценарии является управляемым удостоверением.

Если вы не можете использовать идентификатор Microsoft Entra, используйте проверку подлинности подписанного URL-адреса (SAS), чтобы предоставить пользователям доступ и определенные права для служебная шина ресурсов.

Если вам нужно предоставить служебная шина очередь или раздел как конечную точку HTTP, например для публикации новых сообщений, используйте Управление API, чтобы защитить очередь, передав конечную точку. Затем можно использовать сертификаты или проверку подлинности OAuth, чтобы защитить конечную точку. Самый простой способ защитить конечную точку — использовать приложение логики с триггером HTTP-запроса или ответа в качестве посредника.

Служба "Сетка событий" помогает защитить доставку событий с помощью кода проверки. Если вы используете Logic Apps для использования события, проверка выполняется автоматически. Дополнительные сведения см. в разделе Сетка событий: безопасность и проверка подлинности.

Безопасность сети

Рассмотрите возможность безопасности сети на протяжении всего проекта.

Оптимизация затрат

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

Для оценки затрат используйте калькулятор цен Azure. Ниже приведены некоторые другие соображения.

Управление API

Плата взимается за все Управление API экземпляры при их запуске. Если увеличить масштаб, а затем больше не требуется этот уровень производительности, вручную уменьшить масштаб или настроить автомасштабирование.

Для рабочих нагрузок легкого использования рассмотрим уровень потребления, который является низким, бессерверным вариантом. Плата за уровень потребления взимается за вызов API. Плата за другие уровни взимается в час.

Logic Apps

Logic Apps использует бессерверную модель. Выставление счетов вычисляется на основе количества действий и вызовов соединителя. Дополнительные сведения см. на странице с ценами на Logic Apps.

Очереди, разделы и подписки служебной шины

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

служебная шина очереди включаются во все уровни: "Базовый", "Стандартный" и "Премиум". служебная шина разделы и подписки доступны на уровнях "Стандартный" и "Премиум". Дополнительные сведения см. на странице цен на служебную шину.

Сетка событий

Служба "Сетка событий" использует бессерверную модель. Выставление счетов вычисляется на основе количества операций. К операциям относятся события, которые отправляются в домены или разделы, расширенные совпадения, попытки доставки и вызовы управления. Использование до 100 000 операций бесплатно.

Дополнительные сведения см. в разделе "Цены на сетку событий" и "Оптимизация затрат на хорошо спроектированную платформу".

Эффективность работы

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

Базовая эталонная архитектура корпоративной интеграции предоставляет рекомендации по шаблонам DevOps, которые соответствуют принципу операционного превосходства хорошо спроектированной платформы.

Автоматизируйте операции восстановления как можно больше, чтобы повысить эффективность работы. Учитывая автоматизацию, вы можете объединить мониторинг журналов Azure с служба автоматизации Azure для автоматизации отработки отказа ресурсов служебная шина. Пример логики автоматизации для запуска отработки отказа см . в разделе "Поток отработки отказа".

Уровень производительности

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

Служебная шина Azure уровня "Премиум" может горизонтально увеличить масштаб числа единиц обмена сообщениями для достижения более высокой масштабируемости. Дополнительные сведения см. в разделе служебная шина уровнях обмена сообщениями уровня "Премиум" и "Стандартный" и функции автомасштабирования.

Дополнительные служебная шина рекомендации см. в рекомендациях по улучшению производительности с помощью служебная шина обмена сообщениями.

Следующие шаги