¿Qué es un Microservicio?
¡Dīvide et īmpera! ¿Y por qué no en Software?
Un microservicio es un componente pequeño y autónomo diseñado para realizar una función específica. A diferencia de la arquitectura monolítica (un programa hace todo), tan utilizada en desarrollos SAP personalizados, los microservicios permiten que las distintas partes de una aplicación se desarrollen, desplieguen y escalen de manera independiente.
¿Cuáles son los beneficios principales de un Microservicio?
Independencia y Bajo Acoplamiento
Los microservicios son componentes independientes entre sí, lo que permite que los cambios en uno no afecten a los demás y que se desarrollen y desplieguen de manera autónoma.
Escalabilidad y Flexibilidad
Cada microservicio se puede escalar de forma individual. Esto es útil cuando una parte de la aplicación necesita manejar más carga sin requerir recursos adicionales para el sistema completo.
Reutilización
Al estar enfocados en una funcionalidad específica, los microservicios se pueden reutilizar en distintos contextos o proyectos dentro de la organización. Por ejemplo, un microservicio de autenticación se puede usar en varias aplicaciones, ahorrando tiempo y recursos de desarrollo.
La reutilización implica software sustentable. Cuanto más se reutiliza, menos código se escribe, menos consumo del procesador, más mantenible y escalable en el tiempo.
¿Alcanza con que un servicio sea chico para considerarlo un Microservicio?
No, no alcanza. La clave al diseñar un microservicio es que mantenga su “agnosticismo”. Esta palabra, de origen griego, significa “sin conocimiento”, y en este contexto implica que un microservicio debe funcionar de manera autónoma, sin importar quién lo invoca o con qué fin específico. Esto permite que el microservicio sea fácilmente reutilizable en distintas aplicaciones sin necesidad de adaptaciones adicionales.
¿Cómo beneficia a las empresas trabajar con Microservicios?
Diseñar las soluciones con microservicios tiene un alto impacto en el TCO (Total Cost of Ownership) de las empresas. Al tener tantas piezas de código reutilizadas, el costo del soporte así como el costo de las pruebas de las soluciones disminuye notablemente.
Supongamos un escenario en donde tenemos un microservicio que modela a un empleado en SAP y que publica datos de marcajes de reloj. Además nuestra plataforma aplicativa tiene 3 soluciones que muestran estos datos.
La compañía decide cambiar nuestro sistema de relojes, migrándolo de nuestro sistema X a un sistema Y. En lugar de tener que modificar 3 aplicaciones, simplemente se ajusta el microservicio impactando automáticamente en todas las aplicaciones que lo utilizan.
Ahora sobre el mismo ejemplo, supongamos que la compañía decide crear una nueva aplicación para los responsables de tiempos de Capital Humano para poder ver los marcajes desde su dispositivo móvil. El componente del microservicio que expone los datos, ya existe, ya está operativo y funcional y por ende ya está probado. Con lo cual, la tasa de probabilidad de error de nuestra nueva solución disminuye. Ahora suponiendo que nuestra aplicación solo consume microservicios, de los cuales solo el 20% son nuevos, la probabilidad de error en nuestra aplicación es extremadamente baja y por lo tanto el proceso de prueba mucho más acotado.
¿Qué otras ventajas tienen los Microservicios?
En arquitecturas más comprometidas con los conceptos de reutilización, los microservicios son parte de arquitecturas manejadas por eventos. Estas arquitecturas no solo logran reutilización a niveles de capa de negocio y de microservicios, sino que además logran reutilización a nivel de integración.
De esta manera una solución lanza un evento, y aquellas aplicaciones que se encuentren suscritas a dicho evento, pueden reaccionar consumiendo los datos necesarios de un microservicio de origen.
Por ejemplo, en un sistema SAP S4HANA un comprador genera una orden de compra. Esto dispara un evento en SAP, el cual es notificado al servicio Event Mesh de BTP. Este servicio notificará a todos aquellos sistemas que estén suscritos. Supongamos por ejemplo un sistema de mail, que es notificado. Este sistema, consume entonces el microservicio que publica los datos de las órdenes de compra, y arma el correo correspondiente para notificar a un proveedor.
Con esta arquitectura cualquier sistema que se sume posteriormente a nuestra suite de productos corporativos, tendrá la potestad de suscribirse al evento y consumir el microservicio que necesite del origen, sin necesidad de volver a desarrollar una integración que exponga los datos de la orden de compra. El resultado es escalabilidad, no solo en capa de negocio y servicios, también en la capa de integración.
¿Qué diferencial ofrece Newex con respecto a Microservicios?
Contamos con más de 150 microservicios ya probados en nuestras plataformas SAP, compatibles con SAP ECC y SAP S4HANA, que permiten ser utilizados en cualquier solución de nuestros clientes. Esto agiliza notoriamente los tiempos de desarrollo y definen patrones de diseño sanos en nuestros clientes.
Podés conocer más acerca de nuestros servicios haciendo click aqui.