¿Qué es una arquitectura de microservicios?
En el desarrollo de software, una arquitectura de microservicios -también conocida simplemente como microservicios- se refiere a un enfoque arquitectónico en el que los sistemas de software complejos se descomponen en servicios pequeños e independientes.
Para entender los microservicios, es esencial comprender primero qué se entiende por servicios. Un servicio es una funcionalidad de software o un conjunto de funcionalidades que realiza una tarea automáticamente, reacciona ante eventos o satisface peticiones de datos de otro software.
Un sitio web de streaming de video, por ejemplo, emplea varios servicios. La herramienta de búsqueda del sitio es un servicio que se conecta a una base de datos con títulos y palabras clave relevantes para devolver los resultados más pertinentes. El reproductor multimedia del sitio es un servicio independiente que permite la reproducción de video de alta calidad y ofrece al espectador varias opciones, como su idioma preferido. El algoritmo que recomienda otros videos para ver es otro servicio que analiza las acciones del cliente para mejorar la experiencia del usuario.
En una arquitectura de microservicios, estos servicios pueden desplegarse de forma independiente y gestionarse con flexibilidad, lo que permite a los desarrolladores introducir cambios en la herramienta de búsqueda, por ejemplo, sin que ello afecte al reproductor multimedia, y viceversa.
¿Los microservicios son sólo pequeños servicios?
A pesar de lo que sugiere su nombre, un microservicio no es sólo un servicio más pequeño. Los microservicios toman el concepto de servicios y lo integran en el desarrollo de software. En lugar del enfoque tradicional, monolítico, en el que todas las piezas desplegables están contenidas en una única unidad de control electrónico o aplicación, una arquitectura de microservicios puede utilizar paquetes de software estandarizados llamados contenedores -construidos de forma independiente mediante kits de desarrollo de software (SDK)- para permitir una segmentación que permita que las piezas de la funcionalidad se desplieguen, actualicen y gestionen de forma independiente, como lo harían los servicios. Y las interfaces de programación de aplicaciones (API) conectan los servicios permitiendo que las aplicaciones o partes de aplicaciones se comuniquen entre sí.
Microservicios en la industria automotriz
Una arquitectura de microservicios ofrece numerosas ventajas en el mundo automotriz, ya que estandariza el desarrollo de software y ayuda a los fabricantes de equipos originales a integrar y desplegar continuamente nuevo software, lo que resulta esencial para hacer posibles los vehículos definidos por software del mañana.
Desde la velocidad del limpiaparabrisas hasta los controles de radio y el frenado automático de emergencia, cada característica y función de un vehículo representa un servicio o grupo de servicios que trabajan juntos. La independencia del software es esencial en los entornos automotrices, donde las actualizaciones de los sistemas críticos y no críticos para la seguridad deben mantenerse separadas. A medida que los fabricantes integran los sistemas heredados, deben asegurarse de que no invalidan las funciones de seguridad existentes y de que se mantienen en línea con la norma industrial ISO ISO 26262 para la seguridad funcional automotriz.
Cuando se diseña correctamente, una arquitectura de microservicios puede ayudar a los fabricantes de equipos originales a lograr la seguridad funcional de forma más rápida y eficiente. Probar y depurar cada servicio independientemente de los demás mejora la calidad, seguridad y fiabilidad generales del software. Este enfoque también permite actualizaciones de software más rápidas al facilitar a los fabricantes de equipos originales la corrección de errores y la solución de vulnerabilidades de seguridad.
Ventajas adicionales de una arquitectura de microservicios
En las arquitecturas de vehículos tradicionales, el software y el hardware están estrechamente acoplados, lo que dificulta la actualización de los componentes. Las fuertes dependencias entre las partes del software también dificultan el intercambio de partes del código sin romper la funcionalidad existente. Con una arquitectura de microservicios, el software se abstrae del hardware y de otros programas -mientras que las piezas dependientes del hardware se encapsulan de forma independiente-, lo que permite a los fabricantes de equipos originales sustituir el software sin afectar al hardware subyacente ni a otras funcionalidades del software.
Una arquitectura de microservicios mejora la comunicación entre programas al proporcionar API bien definidas para que los servicios se comuniquen entre sí. La segmentación facilita el desarrollo y despliegue de nuevas funciones mediante actualizaciones por aire, incluso después de que se haya vendido un vehículo, lo que proporciona a los OEM fuentes de ingresos adicionales y mejora la satisfacción del cliente.
Otra ventaja de la arquitectura de microservicios es que abre nuevas oportunidades de innovación al facilitar a los desarrolladores externos la creación de aplicaciones. Con un conjunto estandarizado de API disponibles en el SDK, los desarrolladores externos pueden crear e integrar de forma independiente el software del vehículo sin necesidad de comprender los entresijos del hardware subyacente.
En 2022, Aptiv adquirió Wind River, un líder mundial en la entrega de software para sistemas inteligentes de misión crítica, lo que nos permite aprovechar sus soluciones probadas que son ideales para apoyar las arquitecturas de vehículos de próxima generación a través de la abstracción de software y un enfoque nativo en la nube. Una arquitectura de microservicios es compleja y requiere un entorno de desarrollo integrado adecuado para gestionarla, como Wind River Studio. Como único proveedor de un cerebro y un sistema nervioso integrados para vehículos, Aptiv está bien equipado para ayudar a los fabricantes de equipos originales a adoptar una arquitectura de microservicios que cumpla sus requisitos de seguridad y ofrezca la mejor experiencia posible a sus clientes.