Capacidades de Gobernanza para Microservicios

I. N. Palacios
3 min readAug 16, 2021

--

¿Cuál es la importancia de un modelo de capacidad de microservicios? Los microservicios no son tan simples como desarrollar aplicaciones web con UI, lógica empresarial y bases de datos. Esto es lo suficientemente bueno para servicios simples o cuando se trata de menos microservicios. Los desarrolladores deben pensar más allá de la implementación de servicios cuando trabajan con microservicios a gran escala. Hay una serie de capacidades del ecosistema necesarias para la entrega exitosa de microservicios. Es importante asegurarse de que las capacidades requeridas estén en su lugar como condición previa. Desafortunadamente, no hay un modelo de referencia estándar disponible para implementaciones de microservicios.

Capacidades de proceso y gobernanza

DevOps

Para aprovechar la velocidad de entrega de microservicios, la organización debe adoptar procesos de desarrollo ágiles, integración continua, verificaciones de control de calidad automatizadas, canalizaciones de entrega automatizadas, implementaciones automatizadas y aprovisionamiento automático de infraestructura.
Las organizaciones que siguen un desarrollo en cascada o procesos de gestión de versiones pesados ​​con ciclos de versiones poco frecuentes son un desafío para el desarrollo de microservicios.
DevOps es clave para implementaciones exitosas. Complementa el desarrollo de microservicios al respaldar el desarrollo ágil, la entrega de alta velocidad, la automatización y una mejor gestión de cambios.

Herramientas de automatización

Las herramientas de automatización utilizadas en el desarrollo ágil, la integración continua, la entrega continua y la implementación continua son esenciales para la entrega exitosa de microservicios. Sin la automatización, la gestión de la entrega de muchos microservicios más pequeños será una pesadilla para cualquier empresa. Dado que la velocidad de los cambios en cada microservicio es diferente, puede valer la pena considerar diferentes canalizaciones para cada microservicio.
Entre las anteriores encontramos las siguientes:
​ ​ ​​ · Automatización de pruebas (Integración, aceptación…)
​ ​ ​​ · Simulación de servicios (Mocking)
​ ​ ​​ · Contratos orientados al consumidor
​ ​ ​​ · Pruebas de destrucción (Chaos testing)

Registro de contenedores

Un registro de microservicios es donde se colocan los binarios versionados de microservicios. Estos podrían ser un repositorio de artefactos simple o un verdadero repositorio de contenedores, como un registro de Docker. Generalmente, un registro de Docker almacena imágenes base, así como imágenes de aplicaciones creadas con esas imágenes base. Las herramientas de automatización se integrarán con el registro de Docker como parte del proceso de desarrollo y entrega para cargar y descargar imágenes.

Documentación de microservicios

Los microservicios imponen una gobernanza descentralizada, y esto contrasta bastante con la gobernanza SOA tradicional. Las organizaciones pueden tener dificultades para lograr este cambio y eso podría afectar negativamente el desarrollo de los microservicios.
Una de las consideraciones más importantes es tener un lugar donde todas las partes interesadas puedan ver todos los servicios, su documentación, contratos y acuerdos de nivel de servicio. Especialmente en un entorno de desarrollo ágil distribuido donde los equipos de scrum están capacitados para hacer sus diseños, es importante comprender qué puntos finales están disponibles, qué ofrecen y cómo acceder a ellos, alojados en un repositorio central.

Bibliotecas y arquitectura de referencia

La arquitectura de referencia proporciona un plano a nivel de la organización para garantizar que los servicios se desarrollen de acuerdo con ciertos estándares y pautas de manera coherente. Muchos de estos podrían traducirse a una serie de bibliotecas reutilizables que refuerzan las filosofías de desarrollo de servicios.
La estandarización de herramientas ayuda a las empresas a evitar diferentes tipos de implementaciones de microservicios que no son interoperables, por ejemplo, diferentes equipos que utilizan diferentes herramientas para la documentación de microservicios, diferentes registros de imágenes o diferentes herramientas de orquestación de contenedores.

Sobre este hilo publicaremos sobre algunas más de las características del modelo de capacidades de microservicios para infraestructura, soporte y de núcleo. Permanezcan atentos creadores.

--

--

I. N. Palacios

Enterprise Architect with 15+y in the use of languages and platforms, also 5+y designing tech solutions for finance, retail and e-commerce. SOA, MSA, EDA, Cloud