Управление парком автоматически управляемых транспортных средств

Служба приложений Azure
Приложения-контейнеры Azure
Реестр контейнеров Azure
Центр Интернета вещей Azure
Виртуальная сеть Azure

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

Архитектура

Геоизбыточность с отработкой отказа без простоя для доступности 99,9% и аварийного восстановления

Снимок экрана: экземпляр серверной части, состоящий из следующих компонентов, развертывается в двух регионах Azure: Центр Интернета вещей Azure, прием, RabbitMQ, состояние миссии, состояние транспортного средства, диспетчер заданий и геообъект.

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

Рабочий процесс

  • Экземпляр серверной части, состоящий из следующих компонентов, развертывается в двух регионах Azure: Центр Интернета вещей Azure, Ingestion, RabbitMQ, Mission State, Vehicle State, Job Manager и Geo DB. Центр Интернета вещей подключается к набору приложений, созданных с помощью архитектуры микрослужб, которые можно развернуть в службе приложений Azure с помощью компонента "Веб-приложения" службы приложений Azure, Веб-приложения для контейнеров или Kubernetes.
  • Система выбора лидера определяет, какая серверная часть управляет АТС на заводе в любой момент времени. Если происходит сбой серверной части, система сразу передает управление серверной части в другом регионе.
  • Благодаря такой архитектуре геоизбыточности и отработки отказа без простоя, программное обеспечение для управления АТС, которое работает в Azure, достигает доступности 99,9% при условии, что подключение к Интернету и внешние подсистемы, такие как SAP, не ограничивают передачу данных.

Kubernetes и RabbitMQ для развертываний, независимых от центра обработки данных

Снимок экрана: Kubernetes и RabbitMQ, развернутые на устройстве Azure IoT Edge.

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

В сценариях, когда Интернет-соединение между производственным предприятием и Azure является ограничивающим фактором, наше программное обеспечение для управления АТС также можно развернуть на локальных вычислительных узлах. С помощью Kubernetes и RabbitMQ, не зависящих от платформы, уровень приложений, описанный в предыдущем разделе, развертывается на устройстве Azure IoT Edge.

Реализация спецификации VDA 5050 для связи, не зависящей от поставщика АТС

Снимок экрана: внутреннее решение управления парком AGV в Azure.

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

Благодаря соответствию спецификации стандарта VDA 5050, наше программное обеспечение для управления АТС может взаимодействовать со всеми типами АТС от разных поставщиков, которые также соблюдают стандарт VDA 5050.

Рабочий процесс

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

  • Когда разработчики фиксируют новый код, GitHub Actions автоматически сканирует его на наличие уязвимостей и ошибок. Его также можно использовать для автоматического развертывания приложений и компонентов инфраструктуры.
  • В реестре контейнеров хранятся образы контейнеров, используемые для различных служб серверной части средства управления парком АТС.
  • Серверные службы развертываются в Веб-приложении для контейнеров.
  • Эти серверные службы могут подключаться к внешним системам с помощью протокола VDA 5050. Они также могут подключаться к управляемой платформе потоковой передачи, например Kafka, и хранить сведения об автомобилях в базе данных Azure SQL.
  • Azure Key Vault хранит пароли, ключи и сертификаты.
  • Application Insights реализует ведение журналов и мониторинг для приложений, которые выполняются как серверные службы.
  • Управляемые удостоверения подключаются к различным службам и ресурсам в Azure, устраняя необходимость в управлении учетными данными для разработчиков. Они предоставляют удостоверение для приложений, используемых при подключении к ресурсам, поддерживающим проверку подлинности Microsoft Entra.

Компоненты

Служба приложений Azure — это служба PaaS (платформа как услуга), используемая для создания и размещения приложений в управляемых виртуальных машинах. Она управляет базовой инфраструктурой вычислений, в которой выполняются ваши приложения. Служба приложений выполняет мониторинг квот по использованию ресурсов и приложений метрики, журналов сведений о диагностике и оповещений, основанных на метриках.

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

Центр Интернета вещей — размещенная в облаке управляемая служба PaaS, которая действует в качестве центра сообщений для двусторонней связи между приложением Интернета вещей и устройствами, которыми оно управляет.

Приложения контейнеров Azure — это полностью управляемая служба контейнеров без сервера для создания и развертывания контейнеров в большом масштабе.

Реестр контейнеров Azure — это управляемая частная служба реестра Docker, основанная на реестре Docker 2.0 с открытым кодом. Используйте реестры контейнеров Azure с существующими конвейерами разработки и развертывания контейнеров или используйте Задачи Реестра контейнеров Azure для создания образов контейнеров в Azure. Создавайте сборки по требованию или полностью автоматизированные сборки с помощью триггеров, таких как принятие исходного кода и обновление базового образа.

Идентификатор Microsoft Entra — это облачная служба управления удостоверениями и доступом, которая проверяет подлинность пользователей, служб и приложений.

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

RabbitMQ — это программное обеспечение брокера сообщений с открытым кодом, которое изначально реализовало расширенный протокол управления очередью сообщений (AMQP), а затем было дополнено архитектурой подключаемых модулей для поддержки протокола STOMP, MQTT и других.

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

База данных SQL Azure — это полностью управляемое ядро СУБД, предоставляемое по модели "платформа как услуга" (PaaS), которое выполняет большую часть функций управления базой данных, например обновление, исправление, резервное копирование и мониторинг, без участия пользователя.

Azure Key Vault — это облачная служба для безопасного хранения и получения доступа к секретам. Секрет — это то, к чему необходимо строго контролировать доступ, например ключи API, пароли или криптографические ключи.

Application Insights, компонент Azure Monitor, — это расширяемая служба управления производительностью приложений (APM) для разработчиков и специалистов по DevOps. Используйте ее для мониторинга работающих приложений. Эта служба автоматически отслеживает аномалии производительности и предоставляет мощные аналитические инструменты, которые помогут вам диагностировать проблемы и понять, что пользователи фактически делают в вашем приложении.

Альтернативные варианты

Эта архитектура использует Kubernetes и компонент "Веб-приложения" Службы приложений Azure, чтобы запускать приложения для этого решения. В качестве альтернативы вы можете запускать эти микрослужбы в службе "Экземпляры контейнеров Azure", которая предлагает самый быстрый и простой способ запуска контейнера в Azure без необходимости применять службу более высокого уровня, например Azure Kubernetes Service (AKS).

В примере в локальной среде используются виртуальные машины Azure, которые также можно заменить контейнерами.

Еще один вариант — запускать эти службы в Службе Azure Kubernetes (AKS). Она предоставляет бессерверную платформу Kubernetes для запуска микрослужб со встроенными возможностями непрерывной интеграции и развертывания,а также функции безопасности и управления корпоративного уровня.

Также можно использовать Azure Monitor в сочетании с Application Insights для анализа и оптимизации производительности приложений, контейнеров, баз данных и других ресурсов, а также для мониторинга и диагностики сетевых проблем.

В этой архитектуре в качестве брокера сообщений используется RabbitMQ. Microsoft Azure также обладает собственной поддержкой решений для обмена сообщениями, таких как Хранилище очередей Azure или Служебная шина Azure. Сравнение см. в статье Очереди службы хранилища Azure и очереди служебной шины: сходства и различия.

Приложения и службы в Azure развертываются с помощью скриптов Terraform. Для создания скриптов рекомендуется использовать собственные шаблоны Azure Resource Manager (шаблоны ARM) или Bicep.

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

При производстве автомобилей используются автоматизированные транспортные средства (АТС) для доставки частей к сборочным линиям. АТС являются критически важной частью своевременного производства точно в срок и автоматизированной логистики на производстве. Производственные предприятия, использующие АТС, сталкиваются с тремя проблемами:

  • Доступность Любое прерывание службы нарушает производственные процессы.
  • Возможность подключения. На производственных предприятиях часто отсутствует надежное подключение к общедоступному облаку.
  • Зависимость от поставщика. Традиционные решения АТС используют проприетарные протоколы связи.

Этот пример архитектуры делится на три рабочие области:

  • Эталонная архитектура управления оборудованием на основе Azure с геоизбыточностью, отработкой отказа без простоя, доступностью 99,9% и эффективным аварийным восстановлением.
  • Независимое от центра обработки данных и локальное развертывание, созданное на основе Kubernetes и RabbitMQ.
  • Независимая от поставщика связь для АТС поверх общей спецификации VDA 5050.

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

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

  • Клиент в настоящее время использует АТС в своем производственном процессе.
  • У клиента возникли проблемы с доступностью АТС, что влияет на рентабельность инвестиций.
  • У предприятия нестабильное подключение к общедоступному облаку.
  • Клиент является членом платформы Open Manufacturing Platform (OMP).
  • Клиент входит в рабочую группу OMP Autonomous Transport System (OMP ATS).

Ключевые проблемы

Для экономичного производства товаров требуется автоматизировать производственный процесс и доставку компонентов на линии сборки точно в срок. Автоматическая доставка компонентов на линии сборки поддерживает производство по модели "точно в срок" и автоматизацию логистики на предприятии. На стандартном заводе по массовому производству легковых автомобилей с конвейера сходит по одному автомобилю в минуту. Следовательно, каждая минута простоя линии сборки приводит к финансовым расходам в десятки тысяч долларов США. Изготовителям оборудования требуется высокий уровень надежности и доступности для своих автоматизированных систем, и они сталкиваются с несколькими проблемами:

  • Проблема доступности. Существующее программное обеспечение для управления АТС не удовлетворяет требованиям к доступности в 99,9%.
  • Проблема подключения. У некоторых заводов нет стабильного подключения к Интернету с требуемой пропускной способностью, которое поддерживало бы обмен данными между программным обеспечением для управления АТС, размещенным в общедоступном облаке Azure, и АТС на предприятии. Таким образом, нецелесообразно размещать программное обеспечение для управления АТС в центре обработки данных за пределами интрасети завода.
  • Проблема с зависимостью от поставщиков АТС. Невозможно было перейти на другого поставщика АТС, поскольку программное обеспечение для управления использовало проприетарные протоколы связи.

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

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

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

Доступность и масштабируемость

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

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

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

Используйте идентификатор Microsoft Entra для управления удостоверениями и доступом и используйте Azure Key Vault для управления ключами и секретами.

DevOps

Для автоматического развертывания микрослужб в Kubernetes или службе приложений Azure лучше использовать процессы CI/CD. Рассмотрите возможность использования решения, например Azure DevOps или GitHub Actions.

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

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

В большинстве случаев для оценки затрат следует использовать калькулятор цен Azure, а для оценки затрат на запуск AKS в Azure — калькулятор AKS. Дополнительные сведения по другим вопросам см. в разделе "Оптимизация затрат" в документации по Microsoft Azure Well-Architected Framework.

Соавторы

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

Автор субъекта:

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

Документация по продукту:

Схемы обучения Майкрософт:

Статьи с обзором Центра архитектуры Azure:

Связанные архитектуры: