Корпоративная интеграция с помощью брокера сообщений и событий

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

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

Архитектура

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

Reference architecture for enterprise integration using queues and events

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

Workflow

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

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

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

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

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

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

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

Рекомендации, содержащиеся в статье Базовые сценарии корпоративной интеграции, касаются и этой архитектуры.

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

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

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

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

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

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

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

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

Надежность

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

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

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

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

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

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

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

Сетевая безопасность

Безопасность сети должна рассматриваться на протяжении всего проектирования.

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

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

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

Управление API

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

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

Logic Apps

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

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

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

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

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

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

Дополнительные сведения см. на странице цен на службу "Сетка событий".

См. сведения о затратах на платформу Microsoft Azure с продуманной архитектурой.

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

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

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

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

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

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

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

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

Дополнительные сведения см. в документации по служебная шина: