robots
Desde el primer momento ValerIA se planteo como un organizador capaz de manejar todos los conceptos del negocio de la empresa en el que este trabajando.
Una de las formas que tiene para llevar esto adelante es usando microservices tanto internos como de terceros.
¿Que es un microservice?
Un microservicio es responsable de una función específica o de un conjunto de tareas relacionadas y se desarrolla, implementa y gestiona de manera independiente.
Características clave de los microservicios:
-
Independencia: Cada microservicio es autónomo y puede ser desarrollado, desplegado, operado y escalado sin depender de otros servicios.
-
Especialización: Se enfocan en una sola capacidad o función de negocio, lo que facilita su mantenimiento y actualización.
-
Descentralización: La arquitectura de microservicios promueve el uso de bases de datos y herramientas independientes para cada servicio, evitando la dependencia de un único sistema centralizado.
-
Comunicación basada en API: Los microservicios se comunican entre sí a través de interfaces de programación de aplicaciones (APIs), usualmente utilizando protocolos ligeros como HTTP/REST o mensajería asíncrona o por MQTT.
-
Flexibilidad tecnológica: Permiten utilizar diferentes lenguajes de programación, bases de datos y herramientas para cada servicio, según las necesidades específicas.
-
Escalabilidad y Resiliencia: Al estar separados, pueden escalarse de manera independiente según la demanda. Además, el fallo de un microservicio suele tener un impacto limitado, mejorando la resiliencia del sistema en general.
¿Como se hace un microservice?
De las primeras cosas a determinar es que un microservice debe poder trabajar dockerizado, debe funcionar on demand (es decir que ValerIA es quien controla cuando y sobre que se ejecuta el programa), ValerIA debe poder comunicarse con el por MQTT o por HTTP y debe recibir los resultados por la misma via por la cual lo ha pedido.
Conexión entre ValerIA y el microservice
HTTP server
MQTT
El programa debe conectarse a un servidor de MQTT con contraseña y usuario que deben estar alojados en el config.js.
Y debe suscribirse al topic /valeria/microservices/{NOMBRE}/command
para recibir las solicitudes.
En el msg.payload
ira la información necesaria para la ejecución según la documentación del microservice.
Para la respuesta tendrá que publicar en un topic /valeria/microservices/{NOMBRE}/result
donde relacionara de forma incoaba el resultado al commando.
Variables de entrono
Los microservices tiene dos tipos de variables de entorno las fundamentales que irán alojadas en el proprio repositorio en un archivo config.js y otras seteables desde fuera. Este ultimo tipo de variables irán alojadas en un volumen del servidor con esta ruta {Unidad de amaneramiento}/config/{NOMBRE}.json
.