Editar

Compartir a través de


Bloques de creación para entornos de simulación de conducción autónoma

Azure Container Instances
Microsoft Entra ID
Azure Virtual Network
Azure Virtual Machines
Azure Pipelines

En la carga de trabajo de ejemplo que se describe a continuación, se indica la creación de una simulación que se ejecuta automáticamente y evalúa la función del vehículo simulado a través de una canalización de Azure DevOps. Esta canalización se ejecuta cada vez que un ingeniero comprueba una nueva versión del código fuente de la función de ejemplo o de su entorno de simulación.

Architecture

Diagrama que muestra bloques de creación para entornos de simulación de conducción autónoma.

Descargue un archivo Visio de esta arquitectura.

Capa de entrada del usuario

El desarrollador solo interactuará con esta capa. Contiene la estación de trabajo para desarrolladores (una VM de Azure en nuestro ámbito) y el archivo de especificación que describe el entorno de simulación.

Capa de orquestación

El término "Orquestación" tiene un significado amplio: algunos de los problemas que describe esta palabra se resuelven de forma sencilla, pero otros son mucho más complejos. Por ejemplo, el problema de "orquestación" referente a la creación, supervisión y destrucción de contenedores y VM se resuelve mediante muchas herramientas: la propia API de Azure es un "orquestador" suficiente para realizar esas tareas.

Flujo de trabajo

Sin embargo, es importante dividir la caja negra de la "orquestación" en componentes más pequeños.

  • API de simulación: esta API recibe un archivo de especificación y es el punto de entrada para controlar entornos y ejecuciones de simulación con la capa de orquestación.

  • Intérprete: este componente interpreta el archivo de especificación en una estructura lógica para el Administrador de simulación.

  • Administrador de simulación: se trata de la máquina de estados que convierte el objeto del entorno de simulación lógico en los estados y acciones deseados que otros componentes usarán. Este es el componente que desencadena la compilación, ejecución y desmontaje de la simulación. También administra las dependencias internas y los modos de error.

  • Programador: este componente asigna bloques de creación a los recursos de infraestructura y los inicia allí. Tiene en cuenta los requisitos de hardware y acceso, los recursos disponibles y los límites de recursos.

  • Administrador de entornos: este componente observa la infraestructura subyacente y responde a problemas, como cuando un host de contenedor se queda sin servicio.

  • Administrador de red: este componente administra las redes y el enrutamiento para entornos de simulación. Cada entorno debe estar en un entorno de red aislado, con bloques de creación aislados que reciben conexiones entrantes para la interactividad. Este componente también se usará para resolver bloques de creación dentro de una simulación (por ejemplo, a través de un DNS interno).

  • Administrador de acceso: este componente refleja la autorización o autenticación de Microsoft Entra ID en el resto del sistema.

  • Administrador de configuración: este componente actúa como un mecanismo de almacenamiento persistente para el estado de los entornos de infraestructura y simulación.

  • Abstracción de infraestructura: se trata de una capa de abstracción que convierte los comandos genéricos en comandos de API de Azure específicos para contenedores frente a VM.

  • Administrador de almacenamiento: este componente administra el aprovisionamiento y agrega el almacenamiento en entornos de simulación (por ejemplo, dispositivos raíz de VM o volúmenes conectados a contenedores).

  • Monitor de recursos: este componente supervisa el uso de recursos de nivel de infraestructura en una base de datos de serie temporal para exportarlo a la supervisión principal de ADP.

  • Administrador de registros: este componente agrega registros de bloques de creación para la inspección del usuario. También exporta los registros al registro principal de ADP.

La capa de orquestación es el foco principal de esta carga de trabajo de ejemplo.

Capa de infraestructura de simulación

Esta capa representa todos los entornos de simulación en ejecución.

  • Entorno de simulación: la combinación de bloques de creación que indica el archivo de definición y los parámetros se crean aquí, en un aislamiento de red a parte de cualquier otro entorno de simulación.

  • Contrato del bloque de creación: es el estándar escrito que define de qué manera los bloques de creación envían los datos de salida, los errores y el estado a la capa de orquestación.

  • Canalización de los bloques de creación: esta área administra la creación y el almacenamiento de los bloques de creación.

  • Repositorio de bloques de creación: este es el sistema de almacenamiento y recuperación para imágenes del bloque de creación; por ejemplo, un registro de contenedor o una galería de imágenes de Azure.

  • Fábrica de bloques de creación: es la canalización de integración continua e implementación continua (CI/CD) que crea imágenes del bloque de creación mediante paquetes de componentes verificables e inmutables (por ejemplo, dpkg o apt) en un lenguaje de configuración declarativo (por ejemplo, Chef o Ansible).

Capa de almacenamiento

Esta capa almacena los resultados de la simulación de forma duradera y accesible. De ella se encarga principalmente el flujo de trabajo de Data Lake de la plataforma de desarrollo de aplicaciones móviles (MADP), aunque ese equipo debe encargarse de administrar la salida.

  • Interfaz de almacenamiento: es la interfaz que permite a los usuarios trabajar con el almacenamiento de resultados de simulación. Funciona en estrecha colaboración con el componente de orquestación del Administrador de almacenamiento anterior (aunque podría suplantarlo).

  • Almacenamiento: es el mecanismo de almacenamiento que se usa para guardar los resultados de la simulación (por ejemplo, los recursos Azure Blob Storage o Azure Disk Storage).

Componentes

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

Azure Virtual Network es el bloque de creación básico de una red privada en Azure. Azure Virtual Network permite muchos tipos de recursos de Azure, como máquinas virtuales de Azure, para comunicarse de forma segura entre ellos, con Internet y con las redes locales.

Azure Container Instances ofrece la forma más rápida y sencilla de ejecutar un contenedor en Azure, sin tener que administrar ninguna VM y sin necesidad de adoptar un servicio de nivel superior.

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 registros de contenedor de Azure con el desarrollo de contenedor y las canalizaciones de implementación 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.

Azure Pipelines forma parte de Azure DevOps Services y ejecuta compilaciones, pruebas e implementaciones automatizadas. También puede usar soluciones de CI/CD de terceros como Jenkins.

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.

Azure Monitor recopila la telemetría de supervisión de una variedad de orígenes locales y de Azure. Este servicio agrega y almacena la telemetría en un almacén de datos de registro optimizado para los costos y el rendimiento.

Alternativas

Esta arquitectura usa VM y contenedores para implementar las distintas herramientas y servicios. Como alternativa, también puede usar Azure Kubernetes Services (AKS). AKS ofrece Kubernetes sin servidor, una experiencia de CI/CD integrada, así como seguridad y gobernanza de nivel empresarial.

El mecanismo de almacenamiento que se usa para guardar los resultados de la simulación en esta arquitectura se basa en Azure Blob Storage o Azure Disk Storage. Como alternativa para cargas de trabajo más grandes, también puede consultar las soluciones de análisis y datos a gran escala de Azure para almacenar y analizar datos.

Igualmente, puede usar Azure Monitor para analizar y optimizar el rendimiento de la infraestructura, así como supervisar y diagnosticar problemas de red sin tener que iniciar sesión en las VM.

Detalles del escenario

Para evaluar la conducción autónoma (AD), los ingenieros de funciones deben simular el comportamiento de los vehículos con funcionalidades de AD. Consulte el escenario de ejemplo de conducción siguiente:

Un vehículo de prueba de conducción autónoma va a 80 millas por hora en el lado derecho de una autopista de 3 carriles. Hay un camión a 600 pies por delante en el mismo carril y en la misma dirección que va a 55 millas. No hay ningún vehículo cerca que vaya por el carril central. Las señales de la carretera son visibles, el sol brilla de forma perpendicular sobre el vehículo y la carretera está sin tráfico.

Una simulación finita del comportamiento de un vehículo mediante un escenario como este se denomina ejecución de simulación. En el escenario anterior, el comportamiento esperado del vehículo simulado es que adelante cómodamente el camión sin causar un accidente y sin infringir las reglas de tráfico. Al ejecutar una simulación para cada nueva versión de una función, los ingenieros de funciones de AD prueban si la nueva versión todavía muestra el comportamiento esperado.

Para ejecutar una simulación, los ingenieros de funciones de AD usan normalmente un conjunto de aplicaciones de software. Estos pueden incluir Virtual Test Drive (VTD), Time Partition Testing (TPT), Avionics Development System 2G (ADS2) y Automotive Data and Time-Triggered Framework (ADTF), que se comunican entre sí según sus configuraciones específicas para probar una función de conducción autónoma determinada, como el piloto de autopista. Una implementación de este conjunto de herramientas de software y sus configuraciones en máquinas físicas o virtuales (VM) locales o en la nube se denomina entorno de simulación.

Para garantizar la validez de los resultados de las pruebas que haya generado cada simulación que ejecute, debe asegurarse de que la simulación se inicia en un nuevo entorno de simulación establecido en su estado inicial.

Cada equipo de conducción autónoma necesita tener un conjunto independiente de aplicaciones que cuente con una configuración única en su entorno de simulación. Muchos equipos también necesitarán varios entornos de simulación diferentes. Por ejemplo, para evaluar un sensor LIDAR, necesitará realizar una simulación de objetos de alta resolución, pero no necesita a otros conductores, señales de carretera u otras características. Aunque cada entorno es único, hay una superposición significativa en las aplicaciones usadas. Por ejemplo, muchos equipos usan VTD en varios entornos de simulación.

Es posible ejecutar una simulación en un entorno de simulación que se compone de unidades reutilizables, encapsuladas y evaluadas de forma independiente. Estas unidades sirven como "bloques de creación" que usará para la creación automática y a petición de entornos de simulación en la nube de Azure. Estos entornos de simulación también se denominan plataformas de conducción automatizada (ADP).

Posibles casos de uso

Esta solución es ideal para los sectores de automoción y transporte. Los usos habituales de esta carga de trabajo incluyen:

  • Automatización de las pruebas de conducción.

  • Creación de prototipos, desarrollo, integración, pruebas, validación y comprobación de los sistemas de control en el sector de la automoción.

  • Registro de los datos del vehículo para su visualización.

  • Simulación de escenarios de conducción complejos en el sector de la automoción.

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 resistencia

Puede implementar VM en conjuntos de disponibilidad o zonas de disponibilidad, lo que le permite proteger las aplicaciones frente a eventos de mantenimiento planeados e interrupciones no planeadas.

Un conjunto de disponibilidad es una agrupación lógica de máquinas virtuales que permite a Azure conocer cómo se crea su aplicación para proporcionar redundancia y disponibilidad.

Las zonas de disponibilidad son ubicaciones físicas únicas en las regiones de Azure que ayudan a proteger las VM, las aplicaciones y los datos de los errores de los centros de datos. Cada zona se compone de uno o varios centros de datos. Las aplicaciones y las VM que residen en las zonas pueden permanecer disponibles incluso si se produce un error físico en un único centro de datos.

Escalabilidad

Puede escalar VM de Azure manualmente o mediante las características de escalado automático.

En el caso de las implementaciones de contenedores, Azure Containers Instances y Azure Kubernetes Services también están diseñados para escalar vertical u horizontalmente de forma manual o automática.

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.

Al igual que sucede con cualquier otra aplicación, el entorno de la simulación puede diseñarse para gestionar datos confidenciales. Por lo tanto, debe restringir quién puede iniciar sesión y usar el entorno, y también debe limitar los datos a los que se puede acceder en función de la identidad o el rol del usuario. Use Microsoft Entra ID para el control de identidad y acceso, y Azure Key Vault para administrar claves y secretos.

Para instrucciones generales de diseño de soluciones seguras, consulte Documentación de Azure Security Center.

DevOps

Para implementar nuevos entornos de simulación, es mejor usar procesos de CI/CD mediante una solución como 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. También puede optimizar los costos mediante el proceso para ajustar el tamaño de la capacidad de las VM desde el principio, junto con un cambio de tamaño simplificado, según sea necesario. Otras consideraciones se describen en la sección Costo de Marco de buena arquitectura de Microsoft Azure.

Pasos siguientes

Documentación del producto:

Rutas de aprendizaje de Microsoft:

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