Nuevas tendencias: contenedores y microservicios

contenedores y microsiervos_iecisaBLOGRubén Ruiz Sánchez

Hemos visto en los últimos años cómo las tecnologías de virtualización han mejorado bastante los tiempos de respuesta de los departamentos TI para acompañar a los proyectos de negocio, y también la adopción de multitud de proyectos de arquitectura orientada a servicios (SOA) para poner orden en la integración de los sistemas de información en las organizaciones. Hoy quiero compartir dos innovaciones tecnológicas que están haciendo mucho ruido en el mercado: Microservicios, en el ámbito de la arquitectura de aplicaciones, y Contenedores, en el ámbito de la infraestructura virtualizada.

Por un lado, la arquitectura basada en Microservicios pretende solucionar problemáticas específicas de las aplicaciones monolíticas, que son las habituales que nos encontramos en el entorno empresarial. La idea que subyace es la división de las aplicaciones por módulos (Microservicios) autocontenidos, expuestos vía API REST, y que ofrecen una funcionalidad siguiendo la regla de mínimo acoplamiento y máxima cohesión.  Además, en lugar de utilizar mecanismos de integración como un ESB, se utilizan mecanismos “lightweight” como sistemas de colas, que transmiten los mensajes pero no realizan ninguna otra funcionalidad añadida de orquestación, monitorización, etc.

Esta división en Microservicios permite la evolución de cada servicio/funcionalidad por separado, siempre que mantenga sus interfaces de acceso, y más importante, permite la ejecución y escalado horizontal de dichos módulos, permitiendo a la aplicación crecer y decrecer en función de la demanda o necesidades de negocio, como por ejemplo la realización de la facturación del mes, o la generación de las nóminas. Podéis ver con más detalle los Microservicios en este artículo de Martin Fowler y James Lewis.

Por otro lado, los contenedores hacen referencia a una “virtualización ligera” para entendernos. Los sistemas de contenedores, como por ejemplo el conocido Docker, utilizan una funcionalidad de Linux conocida como LXC (LinuX Containers), que en realidad lo que hace es ejecutar procesos de forma completamente aislada de otros y dentro de un mismo sistema Linux, de forma que dentro de cada uno de estos contenedores podríamos desplegar…¡¡¡un microservicio, por ejemplo!!!

Sin entrar en un detalle más técnico sobre Docker, otra de las grandes ventajas es la portabilidad de aplicaciones “containerizadas”. Me explico, allá donde tengamos Docker instalado, podremos ejecutar un contenedor que transporta el stack de ejecución para nuestro microservicio (ej. Linux + Tomcat + Java + Microservicio), de tal forma que con desplegar el contenedor mediante un comando en otra máquina habríamos realizado un despliegue completo en otro entorno (ej. desarrollo a test o producción), garantizando que el existe el mismo stack, configuración, código, etc. Estableciendo una analogía con la virtualización clásica, sería como mover una máquina virtual de un puesto de desarrollo a un servidor de test o producción, salvando las distancias, como que el tamaño de un contenedor suele ser muy reducido (probablemente Megas), el tiempo de arranque de un contenedor es de milisegundos o segundos, y el rendimiento es mucho mayor, ya que el sistema operativo Linux del host es compartido para todos los contenedores (procesos).

En los últimos meses, tanto Google como AWS han liberado sus servicios para gestión de contenedores en sus respectivas nubes (Google Container Engine y EC2 Container Service), lo que ha propiciado un buen punto de partida para todo aquel que quiera plantear sus nuevas aplicaciones o migraciones paulatinas de funcionalidades como microservicios en nubes públicas.

Como véis siendo dos elementos diferentes, arquitectura software e infraestructura, los Microservicios y los Contenedores encajan a la perfección. Espero que en este año 2015, cada vez más, podamos encontrar este tipo de soluciones innovadoras, que permitan a las organizaciones acompañar de una manera menos rígida y más ágil a las necesidades cambiantes del negocio.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s