De una arquitectura monolítica a una basada en microservicios - Juan Carlos Abaunza
2412
post-template-default,single,single-post,postid-2412,single-format-standard,bridge-core-2.4.1,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,qode-theme-ver-22.6,qode-theme-bridge,disabled_footer_top,qode_header_in_grid,wpb-js-composer js-comp-ver-6.2.0,vc_responsive
arquitectura microservicios

De una arquitectura monolítica a una basada en microservicios

La arquitectura de microservicios (del inglés Micro Services Architecture) es un método de desarrollo de software que consiste en construir una aplicación como un conjunto de pequeños servicios, con operaciones bien definidas e independientes entre sí. Ya lo vimos más en detalle en el anterior post de esta arquitectura.

Cada microservicio ejecuta su propio proceso y se encarga de implementar una funcionalidad completa del negocio. Puede estar programado en distintos lenguajes y usar diferentes tecnologías de almacenamiento de datos. A la hora de hacer un despliegue, cada servicio se hace de forma independiente.

arquitectura microservicios

Las principales diferencias entre una estructura tradicional y una de microservicios, es que la tradicional se realiza de forma monolítica, es decir, todas las partes de la aplicación que podían implementarse se encontraban en esa única aplicación de forma integral. Al contrario, una de microservicios descompone una aplicación en sus funciones principales. Cada función se denomina microservicio y se puede diseñar e implementar de forma independiente. Esto permite que funcionen de forma aislada a los demás servicios de la plataforma.

La tendencia se ha hecho popular en los últimos años a medida que las empresas buscan ser más ágiles y avanzar hacia un DevOps y pruebas continuas. Los microservicios pueden ayudar a crear software más rápido, que sea escalable y lograr un modelo nativo de la nube.

Tras saber con más detalle que son los microservicios, vamos a conocer cuáles son las ventajas de implementarlo en nuestros proyectos.

Ciclo de vida del desarrollo en microservicios

Para obtener los beneficios potenciales y esperados del desarrollo en microservicios (esto es aplicable a casi cualquier nueva forma de trabajo o gestión), es necesario asegurar los Factores Críticos de Éxito a desarrollar bajo este modelo.

El primer Factor Crítico de Éxito que debe asegurar cualquier organización (pública o privada), es descubrir los factores críticos de éxito que son aplicables a su contexto. En otras palabras, lo primero es asegurar la correcta “Definición e implantación de una estrategia de desarrollo en microservicios, que asegure la viabilidad del cambio y la obtención de los beneficios según el Ciclo de Vida previsto”.

Una estrategia suele ser la visión de una situación futura con unos beneficios asociados, que nos transporta a un estado “ideal” en el que nos vemos trabajando con soltura y en un ambiente de inmensa alegría compartida bajo el nuevo modelo de desarrollo en el que todo es sencillo, funciona a la primera y los equipos están eufóricos y en armonía. De hecho, las estrategias no suelen fallar (son “perfectas”) lo que falla es la implantación de la estrategia.

Dicho esto, nuestra recomendación es definir una estrategia para microservicios que se pueda implantar de forma real. Para ello nos basamos en el Ciclo de Vida del desarrollo en microservicios. Se muestra un esquema a continuación.

La Estrategia de Desarrollo en microservicios debe ser definida para cada entidad y debe ser implantable. En hiberus utilizamos una metodología de Ciclo de Vida adaptada al desarrollo en microservicios.

En general, el Ciclo de Vida se divide en tres Fases: Lanzamiento, Expansión y Estabilización. Cada una de estas fases necesita de cierto tiempo y otros recursos, a la vez que nos aportan cierto valor y alcance.

La Fase de Expansión es la que mayor beneficio nos da en el tiempo, por lo que cuanto antes lleguemos a ella antes obtendremos el valor del desarrollo en microservicios. Sin embargo, si la Fase de Lanzamiento no se realiza correctamente en la Fase de Expansión puede que nos de valor, pero a un coste insostenible. Adicionalmente, si la Fase de Expansión no se realiza correctamente, no podremos llegar a la “eficiencia prometida”, la intuiremos, pero no la obtendremos.

Nuestra recomendación es definir la Estrategia a la vez que definimos su implantación utilizando la metodología del Ciclo de Vida. Este enfoque supone hacernos las preguntas adecuadas y aportar respuestas viables a los ámbitos funcional, de arquitectura, de metodología y de equipo (u organización) para cada fase.

Así obtendremos los Factores Críticos de Éxito (de la Estrategia de Desarrollo basada en microservicios) específica para cada organización (pública o privada) y para cada Fase del Ciclo de Vida. No hay que olvidar el definir qué resultados suponen la finalización de las fases y realizar una previsión del comportamiento de las principales magnitudes de la fase siguiente.

De forma práctica, este ejercicio no es complicado y se debe realizar independientemente del tamaño de los equipos, de los volúmenes de desarrollo o del alcance funcional que se quiere tener con el desarrollo en microservicios. Además, nos permitirá estimar la inversión necesaria (no solo la económica) y el retorno esperado.

La teoría es fácil y los conceptos también lo son, lo que ya no es tan fácil, y es en donde la experiencia y la visión global aportan su valor diferencial, es identificar los “Factores Críticos de Éxito Reales”, los que de verdad hay que asegurar y anticipar su gestión en el Ciclo de Vida. ¡Cuidado!, la tecnología debe estar al servicio de la estrategia y nunca la estrategia debe estar supeditada al uso de una tecnología determinada (bueno, seguro que hay casos en el que deba ser así, pero no es lo usual en empresas no tecnológicas).

Es importante seguir esta metodología antes de empezar con las iniciativas de desarrollo en microservicios, pero aún es mucho más importante si ya se ha empezado la iniciativa y no está funcionando como se espera. Si no se revisa la estrategia y su implantación podemos tener una Fase de Lanzamiento “eterna” con el sufrimiento organizacional que conlleva.

Desde hiberus, fomentamos encarecidamente que se cuente con asesoramiento y apoyo externo en la Definición de la Estrategia de Implantación de microservicios, ya que disponer de experiencia en distintos entornos y alcances, así como seguir una guía metodológica como la nuestra suponen ya un Factor Crítico de Éxito.



A %d blogueros les gusta esto: