Microservice Definition Canvas

Microservice Definition Canvas - SOLUSOFT

Las arquitecturas de microservicios han tenido gran popularidad en los últimos años. Huir del software monolítico en favor de su descomposición en pequeños servicios independientes y autónomos permite que los sistemas sean más escalables, más rápidos de desplegar y también de realizar desarrollos incrementales de funcionalidad.

Al desarrollar arquitecturas de microservicios, los equipos se organizan del mismo modo. Equipos de trabajos con los perfiles mínimos necesarios, escogiendo las tecnologías más ventajosas para el propósito del microservicio.

Cuando se trabaja en el desarrollo de un microservicio, durante mucho tiempo, y con evoluciones, puede existir cierta tendencia a que el servicio acabe siendo tan grande que parezca más una solución monolítica que un microservicio. Si es tu caso, en lugar de arquitecturas de microservicios acabarás teniendo lo que se conoce coloquialmente como “monolito distribuido”. Para evitarlo, hay que definir correctamente los “límites de responsabilidad” del microservicio antes de empezar su desarrollo y respetarlos en cada incremento evolutivo.

Desde DZone proponen un canvas, similar al Business Model Canvas, que pretende ayudar a determinar con claridad y concreción los límites de responsabilidad y las principales cualidades de un microservicio. En Solusoft, hemos desarrollado una herramienta open source, el MDC Editor, que permite editar el canvas, embeberlo en una web, versionarlo y almacenarlo junto con el código fuente del microservicio.

Para definir nuestros microservicios, debemos completar los siguientes puntos:

    • Nombre: todo microservicio merece un nombre.
    • Descripción: resumir el propósito principal del microservicio.
    • Capacidades: enumerar las funcionalidades y tareas que el servicio debe satisfacer.
    • Implementación:
      • Cualidades: características no funcionales a destacar. Cuestiones específicas de disponibilidad, escalabilidad, seguridad, etc.
      • Lógica: características de la lógica de negocio y el procesamiento que deben realizarse para satisfacer la interfaz y las cualidades.
      • Datos: elementos de persistencia más relevantes para la implementación del servicio.
    • Dependencias:
      • Dependencias de servicios: enumerar los servicios externos necesarios que lleven a cabo la funcionalidad.
      • Suscripciones a eventos: lista de los hooks/topics que el servicio debe consumir para proporcionar la funcionalidad y tipos de datos esperados.
    • Interfaz:
      • Queries: consultas admitidas por el microservicio.
      • Comandos: operaciones permitidas en la interfaz (borrados, publicaciones, procesamientos, etc.).
      • Eventos publicados: lista de los hooks/topics en los que el servicio escribe los resultados de sus operaciones y tipos de respuesta.

Si quieres empezar a definir tus microservicios de forma homogénea y robusta, vente a probar la herramienta online gratuita o incluso colaborar en el proyecto en github.com/solusoftsl.

¿Te gusta esta página? Recomienda este sitio en tus redes sociales