Microsoft AZ-305: Архитектура интеграции и обмена сообщениями — Руководство по подготовке
Часть Microsoft Azure Solutions Architect Expert AZ-305 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Microsoft, или пройдите тесты на время на ExamRoll.io.
Обзор
Архитектура интеграции и обмена сообщениями в Azure строится на выборе правильного сервиса для семантики перемещения команд, событий и данных; проектировании с учетом надежности, упорядоченности и масштабирования; а также на безопасной интеграции гибридных систем. Основные строительные блоки включают Azure Service Bus для корпоративного обмена сообщениями с многофункциональными брокерами, Azure Event Grid для реактивной маршрутизации событий, Azure Event Hubs для высокопроизводительного приема потоковых данных и Storage Queues для простой организации очередей. Вокруг них располагаются Azure Logic Apps для автоматизации процессов, API Management для управления и удобства разработчиков, Azure Data Factory для ETL/ELT, Azure Relay для подключения к локальным ресурсам, совместимого с брандмауэрами, и Azure Notification Hubs для push-уведомлений для мобильных устройств. Грамотное проектирование предполагает использование подходящего сервиса для конкретной задачи, явное моделирование контрактов и режимов отказа, а также применение шаблонов оркестрации или хореографии, где это уместно.
Обмен сообщениями и событиями в Azure
Azure Service Bus — это корпоративный брокер для команд и рабочих процессов, требующих упорядоченной доставки, транзакций, FIFO в пределах групп и обработки недоставленных сообщений. Очереди обеспечивают обмен сообщениями точка-точка между одним производителем и одной группой конкурирующих потребителей. Темы реализуют модель публикация/подписка с множеством независимых подписок, которые могут фильтровать и маршрутизировать сообщения с помощью фильтров и действий, подобных SQL. Сеансы сообщений группируют связанные сообщения под одним sessionId, обеспечивая FIFO и обработку с сохранением состояния для каждой группы; блокировка сеанса гарантирует, что только один потребитель обрабатывает сеанс в данный момент времени. Очереди недостав
Интеграция, API и гибридное подключение
Azure Logic Apps предоставляет управляемую автоматизацию рабочих процессов с сотнями коннекторов. В модели Consumption (многопользовательской) вы платите за каждое действие, получая автоматическое масштабирование и многопользовательские коннекторы; идеально подходит для пиковых нагрузок. Модель Standard (однопользовательская) работает на среде выполнения Functions и предлагает рабочие процессы с отслеживанием и без отслеживания состояния, более высокую пропускную способность, пользовательские и встроенные коннекторы, выполняющиеся в процессе, контейнеризацию, локальную разработку и интеграцию с VNET/приватными конечными точками; идеально для изоляции на уровне предприятия и предсказуемой производительности. Integration Service Environment (ISE) — это устаревшая выделенная среда для частных сетей и локализации данных; в новых проектах обычно предпочитают Logic Apps Standard с интеграцией VNET или развертывание в App Service Environment v3.
Azure API Management (APIM) предоставляет уровень абстракции и управления для API. Политики применяются на этапах inbound, backend и outbound для реализации сквозных задач, таких как validate-jwt, rate-limit-by-key, quota, set-header, retry, cache-lookup/store и set-backend-service для динамической маршрутизации. Продукты (Products) группируют один или несколько API, объединяют поведение политик и могут быть опубликованы для определенных групп. Подписки (Subscriptions) выдают ключи для каждого потребителя или продукта для измерения и контроля доступа; ключи можно ротировать и привязывать к квотам. Портал для разработчиков обеспечивает самостоятельное обнаружение, документирование, тестирование и процессы подключения, а локально размещаемый шлюз (self-hosted gateway) позволяет развертывать гибридные решения (плоскость управления/граничные узлы) в локальной среде или в других облаках.
Azure Relay обеспечивает входящее подключение к локальным службам без открытия входящих портов брандмауэра. Hybrid Connections использует WebSockets через TLS 443 для универсальной двунаправленной сокетной связи, инициируемой из локальной среды и от клиентов к Relay, что полезно для HTTP и произвольных протоколов, инкапсулированных в WebSockets. WCF Relay предоставляет доступ к локальным конечным точкам WCF (NetTcp/HTTP) через ретранслятор с безопасностью на уровне транспорта или сообщений и доступом на основе утверждений (claims); это идеальное решение для существующих служб WCF, которым требуется безопасный доступ без изменения настроек брандмауэра.
Azure Notification Hubs — это кроссплатформенный брокер push-уведомлений, который абстрагирует платформенные системы уведомлений (APNs для iOS, FCM для Android, WNS для Windows, ADM для Amazon). Бэкенды регистрируют устройства или установки с тегами и шаблонами для масштабной отправки целевых и персонализированных уведомлений. Для каждой PNS требуются учетные данные платформы: ключ p8 или сертификат для APNs, ключ/учетные данные сервера для FCM, SID пакета/секрет для WNS. Notification Hubs управляет массовой рассылкой (fan-out), регулированием (throttling) и управлением токенами, благодаря чему код приложения остается независимым от конкретной PNS.
Перемещение данных и потоковая аналитика
Azure Data Factory (ADF) оркестрирует интеграцию данных в гибридных средах. Среды выполнения интеграции (Integration runtimes, IR) предоставляют вычислительные ресурсы для действий: Azure IR для бессерверного копирования и потоков данных в Azure, Self-hosted IR для перемещения данных и вычислений в частных сетях без открытия входящих портов, и Azure-SSIS IR для переноса пакетов SSIS по модели lift-and-shift в управляемые кластеры. Конвейеры (Pipelines) оркестрируют действия с помощью потоков управления (зависимости, циклы, ветвления, триггеры) и параметризации для повторного использования. Потоки данных для сопоставления (Mapping Data Flows) обеспечивают масштабируемые преобразования на базе Spark без написания кода, с обработкой дрейфа схемы и контролем секционирования; используйте их для сложных преобразований, когда требуются управляемые вычислительные ресурсы. Связанные службы (Linked services) определяют метаданные подключений и учетные данные для источников, приемников и вычислительных ресурсов; наборы данных и источники/приемники потоков данных ссылаются на них, обеспечивая безопасное повторное использование и RBAC.
Event Hubs интегрируется с аналитическими службами через функцию Capture для сохранения данных в постоянное хранилище, после чего Azure Synapse или Databricks могут обрабатывать файлы Avro в виде микро-пакетов. Schema Registry упрощает десериализацию и развитие схем в потоковых заданиях за счет централизации контрактов, что позволяет избежать хрупкой, неявной типизации между производителями и потребителями.
Надежность и событийно-ориентированные шаблоны
Проектирование с учетом надежности начинается с явной обработки сбоев. Service Bus предоставляет очереди недоставленных сообщений (dead-letter queues, DLQ) для каждой сущности; потребители должны отслеживать и обрабатывать DLQ, опционально настроив автоматическую пересылку в очереди для анализа. Используйте обнаружение дубликатов и идемпотентные обработчики, чтобы избежать двойной обработки. Применяйте транзакции для атомарного завершения получения сообщений и отправки исходящих (outbox), а также используйте сеансы для упорядоченной обработки в рамках бизнес-сущности при масштабировании по сеансам. Политика повторных попыток в Event Grid использует экспоненциальную задержку (exponential backoff) с настраиваемыми ограничениями; настройте сохранение недоставленных событий в Storage для аудита и создайте инструменты для их повторной обработки. Event Hubs гарантирует доставку «как минимум один раз» (at-least-once); сохранение контрольных точек (checkpointing) через SDK (или триггеры Azure Functions) обеспечивает отслеживание прогресса для каждой секции и группы потребителей. Storage Queues полагаются на тайм-ауты видимости и шаблоны обработки «отравленных» сообщений (poison message), которые вы реализуете самостоятельно.
Событийно-ориентированная архитектура обычно использует хореографию или оркестрацию. Хореография распределяет координацию между сервисами, которые реагируют на события от других сервисов. Она слабо связана, масштабируема и устойчива к частичным сбоям, но ее может быть сложно визуализировать и контролировать, а компенсирующие операции оказываются разрозненными. Оркестрация централизует управление потоком в оркестраторе, таком как Azure Durable Functions, Logic Apps или движок рабочих процессов, улучшая наблюдаемость, логику тайм-аутов/компенсаций и шаги с участием человека ценой более тесной связи с оркестратором. Шаблон Saga реализует долгоживущие, многошаговые транзакции с компенсирующими действиями вместо двухфазных фиксаций. В хореографии каждый сервис прослушивает доменные события и при необходимости инициирует компенсации; в оркестрации оркестратор вызывает операции и запускает компенсации при сбое или тайм-ауте. В Azure реализуйте саги с помощью Durable Functions (оркестрация с сохранением состояния, повторные попытки, тайм-ауты, шаблоны компенсации) совместно с Service Bus для надежной доставки команд, или с помощью Logic Apps Standard для надежных корпоративных рабочих процессов и встроенных коннекторов.
Практический сценарий
Компания Contoso Retail модернизирует обработку заказов, охватывающую локальную ERP-систему, сайт электронной коммерции, мобильные приложения и последующую аналитику. Решение должно поддерживать уведомления для партнеров, анализ телеметрии в реальном времени, безопасный доступ к локальным системам и push-уведомления для мобильных устройств, со строгим порядком обработки и компенсациями для платежей и складских остатков.
- Прием и рабочий процесс команд
- Использовать разделы Azure Service Bus для команд по заказам. Подписки сегментируют обработку (Платежи, Склад, Доставка). Включить сеансы сообщений с ключом OrderId, чтобы гарантировать FIFO для каждого заказа и обработку в один поток. Обоснование: Service Bus предоставляет сеансы, транзакции и очереди недоставленных сообщений, необходимые для упорядоченных и надежных бизнес-процессов.
- Оркестрация и компенсации
- Реализовать сагу с помощью Azure Durable Functions. Операции (activities) вызывают платежный шлюз, резервируют товары на складе и создают отправление; компенсирующие операции возвращают платеж или товары на склад при сбое. Использовать триггеры и выходные данные Service Bus в рамках транзакций для атомарного завершения входящих сообщений и публикации последующих. Обоснование: Централизованная оркестрация упрощает тайм-ауты, повторные попытки и компенсации, сохраняя при этом надежность брокера сообщений.
- Событийные уведомления
- Публиковать доменные события (OrderPlaced, OrderShipped) в пользовательские разделы Azure Event Grid. Партнеры и внутренние приложения подписываются с фильтрами по префиксу темы. Настроить сохранение недоставленных событий в учетную запись Storage и политику повторных попыток с ограниченным числом. Обоснование: Event Grid предлагает push-доставку с низкой задержкой, точной фильтрацией и аудитом недоставленных событий для широкого распространения (fan-out).
- Потоковая передача телеметрии и аналитика
- Отправлять телеметрию кликов (clickstream) и приложений в Azure Event Hubs с 8 секциями, ключом для которых является сеанс пользователя. Включить Capture в Data Lake Storage каждые 5 минут или при достижении 100 МБ. Зарегистрировать схемы Avro в Schema Registry и обеспечить их совместимость. Обоснование: Event Hubs масштабирует прием данных независимо от потребителей; Capture отделяет аналитику; Schema Registry поддерживает дисциплину контрактов данных.
- Интеграция данных
- Использовать Azure Data Factory с Self-hosted Integration Runtime в локальной среде для безопасного извлечения данных из ERP и Azure IR для загрузки обработанных данных в Synapse. Создать конвейеры и потоки данных сопоставления (mapping data flows) для обработки SCD и обогащения данными из файлов Event Hubs Capture. Обоснование: ADF оркестрирует гибридное перемещение и преобразование данных с управляемыми вычислительными ресурсами и контролируемыми подключениями через связанные службы (linked services).
- Управление API и партнерами
- Разместить все партнерские конечные точки за Azure API Management. Предоставить API для статуса заказа и регистрации веб-перехватчиков (webhook). Применить политики: validate-jwt для токенов, выданных партнерами, rate-limit-by-key для более строгих ограничений партнеров, rewrite/set-backend-service для маршрутизации на существующие Logic Apps без изменения кода. Опубликовать продукт для партнеров, требующий подписки и ключи; организовать подключение через портал разработчика. Обоснование: APIM обеспечивает безопасность, регулирование трафика и предоставляет самообслуживание для партнеров, не затрагивая логику бэкенда.
- Автоматизация рабочих процессов и коннекторы
- Использовать Azure Logic Apps Standard для автоматизации бэк-офиса (например, отправка email, обновление Dynamics) со встроенными коннекторами и интеграцией с VNET. Обоснование: Производительность в рамках одного клиента (single-tenant), приватное подключение и коннекторы корпоративного уровня упрощают интеграцию с SaaS и бизнес-приложениями.
- Гибридное подключение
- Предоставить выборочный доступ к локальным сервисам ERP через Azure Relay: WCF Relay для существующих конечных точек WCF и Hybrid Connections для легковесных приложений HTTP/WebSocket, избегая изменений во входящих правилах брандмауэра. Обоснование: Relay обеспечивает безопасное подключение, инициируемое изнутри сети, без сложностей, связанных с VPN.
- Мобильные push-уведомления
- Отправлять обновления о доставке через Azure Notification Hubs, используя теги для сегментации устройств/пользователей и шаблоны для локализации. Настроить учетные данные токенов APNs и ключи FCM. Обоснование: Notification Hubs абстрагирует различия между PNS (Platform Notification Systems) и масштабирует доставку push-уведомлений.
Этот дизайн сопоставляет каждое требование со специализированным сервисом: Service Bus для надежных команд, Durable Functions для оркестрованных саг, Event Grid для push-уведомлений, Event Hubs + Capture + Schema Registry для потоковой аналитики, ADF для гибридных ETL/ELT, APIM для управления, Logic Apps для корпоративной автоматизации, Relay для доступа к локальным системам и Notification Hubs для взаимодействия с мобильными пользователями.
← Архитектура безопасности и Zero Trust · Все домены · Мониторинг →
Отработать эти вопросы → · Тесты на время на ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Сдайте экзамен →