Microservicios y Dockers: ¿Cómo evitar que la proliferación de contenedores impacte negativamente en la experiencia del usuario?

Por marzo 8, 2018

Los microservicios y la proliferación de los contenedores han comenzado a dejar de ser sólo un “hype” para ser adoptados en varias organizaciones, no sólo en ambientes de desarrollo, sino en ambientes de producción y atendiendo a millones de transacciones diarias, sea a través de consumo directo, o incluso expuestos a través de APIs. El entorno de aplicaciones móviles ha sido uno de los grandes impulsores de la adopción de microservicios y contenedores.

Con la velocidad de desarrollo de nuevas aplicaciones, sobre todo móviles, siendo liberadas en producción con una frecuencia a menudo diaria o semanal, se genera un nuevo desafío que es mantener este ambiente disponible y responsivo, bajo la óptica del usuario final, o sea, garantizar una experiencia excepcional de usuario y de cinco estrellas.

La arquitectura de microservicios es un enfoque que describe el desarrollo de una aplicación única como un conjunto de pequeños servicios, cada uno ejecutando su propio proceso y comunicándose a través de mecanismos ligeros, a menudo en una API con recursos HTTP. Una buena práctica es la división de una aplicación en unidades independientes, autónomas, y de bajo acoplamiento. Una de las grandes ventajas es que los micro servicios deben ser creados, mantenidos, ejecutados y distribuidos de forma totalmente independiente.

Hay una tendencia actual a la arquitectura de micro servicios y al entorno de aplicaciones móviles, con aplicaciones construidas a partir de múltiples componentes autosuficientes. En muchos casos, estos componentes son candidatos perfectos para la proliferación de contenedores, sobre todo de Dockers. Los desarrolladores se han adherido fuertemente a los contenedores porque facilitan el paso a una arquitectura de micro servicios y reducen la fricción. Otra razón para que los desarrolladores prefieran la arquitectura de microservicios es la rápida adopción de la cultura de DevOps, en la cual una aplicación dividida con pequeñas piezas lógicas interactúa a través de API, facilitando el desarrollo, pruebas y entrada en producción.

El uso de contenedores y micro servicios en conjunto mejoran las capacidades del entorno de nube, ya que el microservicio es escalable y reutilizable, mientras que los contenedores proporcionan recursos eficientes, principalmente el empaquetado de aplicaciones y sus dependencias en un contenedor virtual que puede ejecutarse en cualquier servidor.

Pero, ¿cuáles son los desafíos de mantener el desempeño en el ambiente productivo?

¿La alta granularidad de microservicios y Dockers no aumenta la complejidad del ambiente?

¿Cómo el equipo de seguimiento puede monitorear este rápido proceso de creación y mantener todos estos nuevos activos en la solución de seguimiento?

La sugerencia valiosa es: el monitoreo le da la visibilidad sobre su infraestructura y aplicaciones. No vaya a la producción sin la supervisión del entorno de microservicios y Dockers.

La posibilidad de fallas y degradación de los servicios son desafíos presentes en aplicaciones de micro servicios y contenedores Dockers. Esto se agrava por los posibles problemas que pueden ocurrir entre los diversos componentes y capas, especialmente las de un servicio móvil. La característica sensible a la degradación del rendimiento y la experiencia del usuario, típicas del entorno de aplicaciones móviles, demanda que se produzca el monitoreo fin a fin, desde la aplicación móvil, llegando hasta los servidores de aplicaciones, bases de datos y demás backends, para correlacionar estos dominios tecnológicos distintos y señalar la causa raíz. Dada la complejidad de este entorno, es fundamental contar con una plataforma de Big Data asociada a Analytics para proveer información sobre el ambiente y los negocios.

Seria en este contexto que el monitoreo de todos los componentes del servicio de aplicaciones móviles se vuelve cada vez más necesario, sobre todo con la inclusión de nuevas tecnologías como microservicios y contenedores (Dockers).

Escrito por André Piotto
Presales Management | Technical Sales |Indirect Channel Development & Enablement at CA Technologies
LinkedIn: @andrépiotto