Control de flotas de vehículos de guiado automático

Azure App Service
Azure Container Apps
Azure Container Registry
Azure IoT Hub
Azure Virtual Network

Esta arquitectura de ejemplo muestra un enfoque integral para un fabricante de equipos originales (OEM) de automoción e incluye una arquitectura de referencia y varias bibliotecas de código abierto publicadas que se pueden reutilizar. Microsoft ha reorganizado el software de control de flota para que esté altamente disponible, con redundancia geográfica y neutral para el proveedor, y para que se ejecute en un contexto de nube híbrida.

Architecture

Redundancia geográfica con conmutación por error sin tiempo de inactividad para una disponibilidad del 99,9 % y recuperación ante desastres

Captura de pantalla de una instancia del back-end, que consta de los siguientes componentes, se implementa en dos regiones de Azure: Azure IoT Hub, Ingestion, RabbitMQ, Mission State, Vehicle State, Job Manager y Geo DB.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

  • Una instancia del back-end, que consta de los siguientes componentes, se implementa en dos regiones de Azure: Azure IoT Hub, Ingestion, RabbitMQ, Mission State, Vehicle State, Job Manager y Geo DB. IoT Hub se conecta al conjunto de aplicaciones creadas mediante una arquitectura de microservicios que se puede implementar en Azure App Service mediante la característica Web Apps de Azure App Service, Web App for Containers o Kubernetes.
  • Un sistema de elección de líder determina qué back-end controla los AGV en la planta de producción en un momento dado. Si se produce un error en el back-end responsable, la elección del líder transfiere inmediatamente el control al back-end de la otra región.
  • Gracias a esta arquitectura de conmutación por error con redundancia geográfica y sin tiempo de inactividad, el software de control de AGV que se ejecuta en Azure logra una disponibilidad del 99,9 %, siempre que la conexión a Internet y los subsistemas externos, como SAP, no sean factores limitantes.

Kubernetes y RabbitMQ para implementaciones independientes del centro de datos

Captura de pantalla de Kubernetes y RabbitMQ implementados en un dispositivo de Azure IoT Edge.

Descargue un archivo Visio de esta arquitectura.

En escenarios en los que la conexión a Internet entre una planta de producción y Azure es un factor de limitante, nuestro software de control de AGV también se puede implementar en nodos de proceso locales. Al usar Kubernetes y RabbitMQ como tecnologías independientes de la plataforma, la capa de aplicación descrita en la sección anterior se implementa en un dispositivo Azure IoT Edge.

Implementación de la especificación VDA 5050 para la comunicación independiente del proveedor de AGV

Captura de pantalla de la solución de control de la flota de AGV de back-end en Azure.

Descargue un archivo Visio de esta arquitectura.

Gracias al cumplimiento de la especificación del conector de vehículo VDA 5050, nuestro software de control de AGV puede comunicarse con todos los tipos de AGV de diferentes proveedores que también cumplen con VDA 5050.

Flujo de trabajo

En esta arquitectura, puede ver información general de los distintos servicios y componentes que se usan para ejecutar la solución de control de flota de AGV de back-end en Azure:

  • Cuando los desarrolladores confirman el nuevo código, Acciones de GitHub lo analiza automáticamente para encontrar rápidamente vulnerabilidades y errores de codificación. También se puede usar para implementar aplicaciones y componentes de infraestructura automáticamente.
  • Un registro de contenedor almacena las imágenes de contenedor usadas para los diferentes servicios del back-end de control de flota de AGV.
  • Los servicios de back-end se implementan en Web App for Containers.
  • Estos servicios de back-end pueden conectarse a sistemas externos mediante el protocolo VDA 5050. También pueden conectarse a una plataforma de streaming administrada, como Kafka, y almacenar información del vehículo en una base de datos de Azure SQL.
  • Azure Key Vault almacena contraseñas, claves y certificados.
  • Application Insights implementa el registro y la supervisión de las aplicaciones que se ejecutan como servicios de back-end.
  • Las identidades administradas se conectan a los diferentes servicios y recursos de Azure, lo que elimina la necesidad de que los desarrolladores administren las credenciales. Proporcionan una identidad que usan las aplicaciones al conectarse a los recursos que admiten la autenticación de Microsoft Entra.

Componentes

Azure App Service es un servicio de plataforma como servicio (PaaS) para compilar y hospedar aplicaciones en máquinas virtuales (VM) administradas. Administra la infraestructura de proceso subyacente en la que se ejecutan las aplicaciones. App Service proporciona supervisión de las cuotas de uso de los recursos y las métricas de la aplicación, registro de la información de diagnóstico y alertas basadas en métricas.

Azure Virtual Network es el bloque de creación básico de una red privada en Azure. Este servicio habilita muchos tipos de recursos de Azure, como Azure Virtual Machines, para la comunicación segura entre estos, con Internet y con las redes locales.

IoT Hub es un servicio administrado PaaS, hospedado en la nube, que actúa como centro de mensajes centralizado para comunicaciones bidireccionales entre una aplicación de IoT y los dispositivos que administra.

Azure Container Apps es un servicio de contenedor sin servidor totalmente administrado para la creación y la implementación de contenedores a gran escala.

Azure Container Registry es un servicio privado administrado del Registro de Docker que usa Docker Registry 2.0, que es de código abierto. Puede usar las instancias de Azure Container Registry con las canalizaciones de desarrollo e implementación de contenedores existentes, o bien usar Azure Container Registry Tasks para compilar imágenes de contenedor en Azure. Compile a petición o automatice completamente las compilaciones con desencadenadores como las confirmaciones del código fuente y las actualizaciones de la imagen de base.

Microsoft Entra ID es el servicio de administración de identidades y acceso basado en la nube que autentica usuarios, servicios y aplicaciones.

Azure Storage ofrece una solución de almacenamiento en la nube duradero, de alta disponibilidad y escalable a gran escala. También incluye el almacenamiento de objetos, archivos, discos, colas y tablas.

RabbitMQ es una solución de software de agente de mensajes de código abierto que implementó originalmente el protocolo Advanced Message Queuing Protocol y, desde entonces, se ha ampliado con una arquitectura de complementos para admitir los protocolos Streaming Text Oriented Messaging Protocol y MQ Telemetry Transport, entre otros.

Azure Virtual Machines proporciona recursos de computación escalables a petición que ofrecen flexibilidad de virtualización sin necesidad de adquirir y mantener hardware físico.

Azure SQL Database es un motor de base de datos PaaS totalmente administrado que se encarga de la mayoría de las funciones de administración de bases de datos, como actualizar, aplicar revisiones, crear copias de seguridad y supervisar sin intervención del usuario.

Azure Key Vault es un servicio en la nube para el almacenamiento de los secretos y el acceso a estos de forma segura. Un secreto es todo aquello cuyo acceso desea controlar de forma estricta, como las claves de API, las contraseñas, los certificados o las claves criptográficas.

Application Insights es una característica de Azure Monitor que es un servicio de Application Performance Management (APM) extensible para desarrolladores y profesionales de DevOps. Puede usarla para supervisar las aplicaciones en directo. Detecta automáticamente anomalías en el rendimiento e incluye eficaces herramientas de análisis que le ayudan a diagnosticar problemas y a saber lo que hacen realmente los usuarios con la aplicación.

Alternativas

Esta arquitectura usa Kubernetes y la característica Web Apps de Azure App Service para ejecutar las aplicaciones para esta solución. Como alternativa, puede ejecutar estos microservicios en Azure Container Instances, que ofrece la manera más rápida y sencilla de ejecutar un contenedor en Azure sin tener que adoptar un servicio de nivel superior, como Azure Kubernetes Service (AKS).

En el ejemplo local se usan máquinas virtuales de Azure, que también se pueden reemplazar por tecnologías de contenedor.

Otra opción para ejecutar estos servicios es Azure Kubernetes Service (AKS). Ofrece Kubernetes sin servidor para ejecutar microservicios, una experiencia integrada de integración continua e implementación continua (CI/CD), y seguridad y gobernanza de nivel empresarial.

Considere también la posibilidad de usar Azure Monitor en combinación con Application Insights para analizar y optimizar el rendimiento de aplicaciones, contenedores, bases de datos y otros recursos, y para supervisar y diagnosticar problemas de red.

Esta arquitectura usa RabbitMQ como agente de mensajes. Microsoft Azure también ofrece compatibilidad nativa con soluciones de mensajería, como Azure Queue Storage o Azure Service Bus. Para ver una comparación, consulte Colas de Azure Storage y de Service Bus: comparación y diferencias.

Las aplicaciones y servicios de Azure se implementan mediante scripts de Terraform. Considere la posibilidad de usar plantillas de Azure Resource Manager (plantillas de ARM) nativas de Azure o Bicep para crear scripts.

Detalles del escenario

La fabricación de automóviles se basa en vehículos guiados automatizados (AGV) para entregar piezas a las líneas de ensamblado. Los AGV son una parte fundamental de la fabricación Just-In-Time y la logística automatizada de la planta de producción. Las plantas de producción mediante AGV normalmente se enfrentan a tres desafíos:

  • La disponibilidad. Cualquier interrupción del servicio interrumpe la producción.
  • Conectividad. Las plantas de producción suelen carecer de una conexión confiable a la nube pública.
  • Bloqueo del proveedor. Las soluciones AGV tradicionales se basan en protocolos de comunicación patentados.

Esta arquitectura de ejemplo se divide en tres áreas operativas:

  • Una arquitectura de referencia de control de flota basada en Azure con redundancia geográfica, conmutación por error sin tiempo de inactividad, disponibilidad del 99,9 % y recuperación ante desastres eficaz.
  • Una implementación local independiente del centro de datos creada en Kubernetes y RabbitMQ.
  • Comunicación AGV neutral respecto al proveedor creada sobre la especificación VDA 5050 común.

Posibles casos de uso

Esta solución es ideal para los sectores de fabricación, automoción y transporte. Se aplica a los siguientes escenarios:

  • Actualmente, el cliente usa AGV en su proceso de fabricación.
  • El cliente experimenta baja disponibilidad con los AGV, lo que afecta a su rentabilidad de la inversión (ROI).
  • La planta de producción tiene una conexión incoherente con la nube pública.
  • El cliente es miembro de Open Manufacturing Platform (OMP).
  • El cliente es miembro del grupo de trabajo OMP Autonomous Transport System (OMP ATS).

Problemas clave

La producción de bienes de bajo costo se basa en la automatización del proceso de fabricación y la entrega Just-In-Time de las piezas a las líneas de ensamblado. Al transportar automáticamente las piezas a las líneas de ensamblado, los vehículos guiados automatizados contribuyen tanto a la fabricación Just-In-Time como a la automatización de la logística de la planta de producción. En una planta de producción masiva típica de automóviles de pasajeros, por ejemplo, se fabrica uno de estos vehículos cada minuto. Por lo tanto, cada minuto de interrupción de una línea de ensamblado en una planta de producción produce una pérdida financiera, por el orden de decenas de miles de dólares estadounidenses. Los OEM de automoción requieren un alto nivel de confiabilidad y disponibilidad para sus sistemas automatizados, y se enfrentan a una serie de desafíos:

  • Problema de disponibilidad. El software de control de flota de AGV existente no cumple el requisito de disponibilidad del 99,9 %.
  • Problema de conectividad. Algunas plantas de producción no tienen una conexión a Internet lo suficientemente estable con el ancho de banda necesario para permitir la comunicación entre el software de control de flota de AGV hospedado en la nube pública de Azure y los AGV en la planta de producción. Por lo tanto, hospedar el software de control de flota de AGV en un centro de datos que está fuera de la intranet de dicha planta de producción no era una opción.
  • Problema de bloqueo del proveedor de AGV. No era posible intercambiar los AGV existentes por otros nuevos de otro proveedor, porque el software de control de flota de AGV dependía del protocolo de comunicación patentado de los AGV existentes.

Una arquitectura que admita redundancia geográfica con conmutación por error sin tiempo de inactividad para una disponibilidad del 99,9 % y recuperación ante desastres puede resolver estos problemas.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Disponibilidad y escalabilidad

Las aplicaciones y los servicios que forman la solución de control de flota de AGV se implementan en dos regiones de Azure mediante zonas de disponibilidad, que son ubicaciones físicas únicas dentro de las regiones de Azure que ayudan a proteger las VM, las aplicaciones y los datos frente a errores del centro de datos. Azure App Service y AKS también se pueden implementar en zonas de disponibilidad. IoT Hub brinda alta disponibilidad dentro de una región mediante la implementación de redundancias en casi todas las capas del servicio.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.

Use Microsoft Entra ID para el control de identidad y acceso, y Azure Key Vault para administrar claves y secretos.

DevOps

Para implementar los microservicios en Kubernetes o Azure App Service automáticamente, es mejor usar procesos de CI/CD. Considere el uso de una solución de tipo Azure DevOps o Acciones de GitHub.

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

En general, use la calculadora de precios de Azure para calcular los costos y la calculadora de AKS para calcular los costos de ejecución de AKS en Azure. Para obtener más información sobre otras consideraciones, consulte la sección “Optimización de costos” en el Marco de buena arquitectura de Microsoft Azure.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Pasos siguientes

Documentación del producto:

Rutas de aprendizaje de Microsoft:

Artículos de información general del Centro de arquitectura de Azure:

Arquitecturas relacionadas: