Масштабируемая обработка заказов

Azure Cosmos DB
Azure HDInsight

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

Архитектура

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

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

Поток данных

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

  1. Сообщения о событиях вводятся в систему с помощью клиентского приложения (синхронно, по протоколу HTTP) и различных серверных систем (асинхронно с помощью Apache Kafka). Эти сообщения передаются в конвейер обработки команд.
  2. С помощью микрослужбы обработчика команд каждое сообщение о событии принимается и сопоставляется с одной из определенных команд. Обработчик команд извлекает любое текущее состояние, соответствующее выполнению команды, из базы данных моментальных снимков потока событий. Затем выполняется команда и выходные данные команды выдаются как новое событие.
  3. Каждое событие, выдаваемое в качестве выходных данных команды, фиксируется в базе данных потока событий с помощью Azure Cosmos DB.
  4. Для каждой вставки или обновления базы данных, зафиксированной в базе данных потока событий, событие создается каналом изменений Azure Cosmos DB. Подчиненные системы могут подписаться на любые темы событий, связанные с этой системой.
  5. Все события из канала изменений Azure Cosmos DB также отправляются в микрослужбу потока событий моментальных снимков, которая вычисляет любые изменения состояния, вызванные событиями, которые произошли. Затем новое состояние фиксируется в базе данных моментальных снимков потока событий, хранящейся в Azure Cosmos DB. База данных моментальных снимков предоставляет глобально распределенный источник данных с низкой задержкой для текущего состояния всех элементов данных. Она обеспечивает полную запись всех сообщений о событиях, прошедших через архитектуру, за счет чего обеспечивается надежное тестирование, устранение неполадок и сценарии аварийного восстановления.

Компоненты

  • Azure Cosmos DB — это глобально распределенная база данных Майкрософт с несколькими моделями, которая позволяет решениям эластично и независимо масштабировать пропускную способность и хранилище в любом количестве географических регионов. Она гарантирует пропускную способность, задержку, доступность и согласованность в соответствии с комплексными Соглашениями об уровне обслуживания (SLA). Этот сценарий использует Azure Cosmos DB для хранилища потоков событий и хранилища моментальных снимков, а также применяет функции канала изменений Azure Cosmos DB для обеспечения согласованности данных и восстановления сбоя.
  • Apache Kafka в Azure HDInsight — это управляемая реализация службы Apache Kafka с открытым исходным кодом для создания конвейеров и приложений потоковой передачи в режиме реального времени. Kafka также предоставляет функцию брокера сообщений, подобную очереди сообщений для публикации и подписки на именованные потоки данных. Этот сценарий использует Kafka для обработки входящих и подчиненных событий в конвейере обработки заказов.

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

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

Использование управляемых служб Azure, таких как Azure Cosmos DB и HDInsight, может помочь сократить затраты с помощью опыта Майкрософт в глобально распределенном облачном хранилище данных и получении. В этом сценарии конкретно рассматривается сценарий электронной коммерции или розничной торговли. Если у вас есть другие потребности в службах данных, изучите список доступных полностью управляемых интеллектуальных служб баз данных в Azure.

Потенциальные варианты использования

Другие варианты использования:

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

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

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

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

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

Availability

Подход к источнику событий этого сценария позволяет использовать слабо связанные системные компоненты, развертываемые независимо друг от друга. Azure Cosmos DB предлагает высокий уровень доступности и помогает организации управлять компромиссами, связанными с согласованности, доступностью и производительностью, всеми соответствующими гарантиями. Apache Kafka в HDInsight также предназначен для обеспечения высокого уровня доступности.

Azure Monitor предоставляет унифицированный пользовательский интерфейс для мониторинга различных служб Azure. Для получения дополнительных сведений см. раздел Мониторинг приложений и ресурсов в Azure. Центры событий и Stream Analytics интегрированы с Azure Monitor.

Сведения о других вопросах доступности см. в статье Контрольном списке для обеспечения доступности.

Масштабируемость

Kafka в HDInsight позволяет настраивать хранилища и масштабируемость для кластеров Kafka. Azure Cosmos DB обеспечивает быструю прогнозируемую производительность и масштабируется без проблем по мере роста приложения. Архитектура этого сценария, основанная на использовании микрослужб источников событий, также облегчает масштабирование системы и расширение ее функциональности.

Сведения о масштабируемости см. в разделе Контрольный список для повышения уровня производительности в Центре архитектуры Azure.

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

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

Модель безопасности Azure Cosmos DB проверяет подлинность пользователей и предоставляет доступ к своим данным и ресурсам. Дополнительные сведения см. в статье Безопасность базы данных в Azure Cosmos DB.

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

Устойчивость

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

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

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

Чтобы изучить стоимость выполнения этого сценария, все услуги были предварительно сконфигурированы в калькуляторе стоимости. Чтобы узнать, как изменится цена для конкретного сценария, измените соответствующие переменные согласно с ожидаемым объемом данных. В этом сценарии пример цен включает только Azure Cosmos DB и кластер Kafka для обработки событий, полученных из канала изменений Azure Cosmos DB. Процессоры событий и микрослужбы для исходных систем и других подчиненных систем не включаются, а их стоимость зависит от количества и масштаба этих служб, а также технологий, выбранных для их реализации.

Плата за использование Azure Cosmos DB выражается в единицах запроса (ЕЗ). При использовании единиц запроса вам не нужно резервировать пропускную способность для чтения и записи или подготавливать ресурсы ЦП, памяти и ввода-вывода. Azure Cosmos DB поддерживает разные интерфейсы API с разным набором операций — от простых операций чтения и записи до сложных запросов графа. Так как не все запросы одинаковы, им назначается нормализованное количество единиц запроса на основе объема вычислений, необходимых для обслуживания каждого запроса. Количество единиц запроса, необходимое для вашего решения, зависит от размера элемента данных и количества операций чтения и записи базы данных в секунду. Дополнительные сведения см. в статье Единицы запроса в базе данных Azure Cosmos DB. Эти предполагаемые цены основаны на Azure Cosmos DB, работающем в двух регионах Azure.

Мы предоставили три примера профилей затрат на основе количества ожидаемых действий:

  • Малый: этот пример ценообразования сопоставляется с 5 единицами ЕЗ, зарезервированными с хранилищем данных 1-ТБ в Azure Cosmos DB и небольшим кластером Kafka (D3 версии 2).
  • Средний: этот пример ценообразования сопоставляется с 50 единицами ЕЗ, зарезервированными с хранилищем данных 10-ТБ в Azure Cosmos DB и кластером Kafka (D4 версии 2).
  • Крупный: этот пример ценообразования сопоставляется с 500 единицами ЕЗ, зарезервированными с хранилищем данных 30-ТБ в Azure Cosmos DB и большим кластером Kafka (D5 версии 2).

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.

Основные авторы:

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

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

Ознакомьтесь с дополнительными материалами:

Ознакомьтесь со связанными материалами по архитектуре: