zhu difeng - Fotolia
Construir un entorno DevOps con microservicios y contenedores
Al ofrecer una mayor agilidad y flexibilidad, los microservicios y contenedores pueden ser un complemento ideal para el ambiente DevOps de una empresa.
Ha habido un montón de rumores en el mercado de la nube recientemente alrededor de los microservicios, contenedores y DevOps. Mientras que las organizaciones pueden beneficiarse de estas tres tecnologías –especialmente si utilizan microservicios y contenedores para reforzar un entorno DevOps– es importante entender primero cómo trabajan juntos, junto con sus respectivos inconvenientes y fortalezas.
"Para algunos, los contenedores o microservicios son DevOps", dijo Chris Riley, analista DevOps en Fixate IO, un especialista en marketing de contenido enfocado en DevOps.
Los contenedores juegan un papel clave en un entorno DevOps porque soportan las implementaciones de pila completa. “[Los microservicios y contenedores] introducen una gran cantidad de desafíos, pero veo a los contenedores metiéndose en el camino hacia la definición básica de lo que es DevOps en unos pocos años", dijo Riley.
Mientras tanto, los microservicios están cambiando no solo cómo las organizaciones lanzan nuevas aplicaciones, sino también las arquitecturas de aplicaciones. Los microservicios son esencialmente un patrón de diseño, dijo Riley. "[Ellos] soportan DevOps, pero también la idea de [desarrollo] ágil de mantener las cosas muy pequeñas y repetitivas", dijo.
Usando microservicios y contenedores para soportar un entorno DevOps
Con rutas más rápidas al mercado y canales de distribución más amplios, las aplicaciones están ofreciendo a las empresas una nueva fuente de ingresos, dijo Susan Wu, directora de marketing técnico de Midokura, una compañía de software de virtualización de red. Esto está impulsando enfoques de desarrollo de software como DevOps, que proporcionan a las empresas la agilidad necesaria para ofrecer nuevos servicios más rápidamente que sus competidores.
Debido a que los enfoques DevOps abarcan todos los canales de entrega, pueden aumentar la frecuencia de despliegue y conducir a un tiempo de salida al mercado más rápido para los productos. Las organizaciones que utilizan DevOps a menudo ven tasas de fracaso inferiores en nuevos lanzamientos, tiempos de espera más cortos entre arreglos y tiempos más rápidos de recuperación, dijo Wu. Pero mientras que los beneficios de DevOps son obvios, la intersección entre el uso de microservicios y los contenedores para soportar un entorno DevOps está apenas empezando a quedar claro.
Hay dos aspectos clave de los microservicios. Uno de ellos es el empaquetado y el despliegue de aplicaciones para que sean portables a través de proveedores de nube, dijo Wu. El otro es repartir la aplicación en componentes débilmente acoplados, de una sola función, que utilizan REST para la comunicación.
En cuanto a los contenedores, las organizaciones los utilizan para empaquetar y desplegar aplicaciones monolíticas y aplicaciones basadas en microservicios. Una de las razones por la cual los desarrolladores utilizan Docker, por ejemplo, es porque ofrece una manera sencilla para empaquetar el código y empujarlo a los canales de entrega, lo que agiliza el flujo de trabajo DevOps, dijo Wu. En general, DevOps representa más un cambio cultural que uno tecnológico para los desarrolladores, agregó. Con las aplicaciones tradicionales, monolíticas, hay una curva de aprendizaje empinada para que los desarrolladores se familiaricen con una base de código en particular. En un entorno DevOps, hay más flexibilidad.
"Con DevOps y microservicios, los equipos de desarrolladores pueden trabajar en la aplicación débilmente acoplada y elegir la oferta tecnológica más adecuada para sus necesidades", dijo Wu. "Los nuevos miembros del equipo pueden construir más rápidamente si solo tienen que familiarizarse con el servicio en el que están trabajando”.
Otro de los beneficios de la utilización de contenedores y microservicios en un entorno DevOps es que los desarrolladores pueden implementar de forma independiente cada servicio, lo que ayuda con el aislamiento de fallos. Si un componente es problemático en una aplicación monolítica, esas cuestiones pueden traer abajo todo el sistema. Con la contenerización y los microservicios, ese no es el caso.
Errores que deben evitarse
A pesar de los beneficios, hay problemas potenciales que evitar al usar contenedores y microservicios en un entorno DevOps. Por ejemplo, para utilizar contenedores y microservicios, las organizaciones a menudo necesitan implementar múltiples nuevas herramientas, lo que puede conducir a una mayor complejidad. Debido a que los microservicios y contenedores son dos conceptos relativamente nuevos, las organizaciones necesitan evaluar cómo lograr el máximo valor con ellos, tanto para los desarrolladores, como para el negocio.
Los contenedores deben ser automatizados, y el estado de todos los contenedores debe ser claramente visible. Con las aplicaciones ya cortadas en muchos microservicios, las organizaciones deben administrar cuidadosamente las dependencias entre los contenedores.
Así como las organizaciones han adoptado previamente la gestión del ciclo de vida de las aplicaciones, también deben considerar la adopción de la gestión del ciclo de vida de los contenedores. Por último, si un conjunto de contenedores pasa la prueba de aceptación de los usuarios, las organizaciones deben asegurarse de que conjunto exacto de contenedores va a producción. Es por eso que el aislamiento del registro es importante; al tener un registro único aprobado, que es rápida y fácilmente poblado por los contenedores procedentes de la etapa anterior, se hace posible liberar contenedores extremadamente rápido. Y, después de todo, la rápida liberación de software de calidad es lo que todo el mundo espera de la revolución DevOps.