1-DevOps-ROMPER-CON-LA-ARQUITECURA-MONOLITICA

Clave 1 DevOps:

Las 4 claves para alcanzar el éxito en la metodología DevOps

Romper con la arquitectura monolítica

devops-ayscom

Breve introducción a la metodología DevOps  

En los últimos años, la metodología DevOps se ha afianzado como la respuesta a la necesidad de estandarizar un proceso mediante el cual, un desarrollo software (nueva funcionalidad, mejora o corrección) pasa de la implementación a la explotación.

Se trata de un enfoque ágil cuyo objetivo principal es reducir los tiempos necesarios dentro del ciclo de vida software (migración entre versiones, ejecución de pruebas, detección de bugs, etc.).

Para alcanzar ese objetivo, la metodología se basa en la idea de reducir la distancia entre los técnicos de Desarrollo (Dev) y los de Sistemas (Ops), permitiendo a ambos equipos trabajar de forma más cercana, aportando mayor agilidad y productividad al entorno de trabajo.

El pilar fundamental sobre el que se basa el sistema de trabajo es la automatización de todos los procesos que intervienen en el ciclo de vida de una aplicación: integración, pruebas, despliegue, monitorización y operación.

Implica un cambio en la cultura y organización global de los equipos de trabajo, fomentando así la colaboración, interacción y cooperación.

En la siguiente tabla, se resumen las implicaciones que tienen los beneficios de la metodología DevOps:

 

ayscom-beneficios-metodologia-devops-tabla

 

En esta primera entrega vamos a explicar la primera de las 4 fases, las cuales han de llevarse a cabo de manera secuencial y se que irán repitiendo en distintas iteraciones en forma de bucle infinito.

Asumir todas las fases de esta metodología DevOps puede suponer un gran reto. Avalados por la dilatada experiencia de Ayscom, proporcionamos los mecanismos necesarios para aplicar este proceso de manera exitosa, lo que repercutirá claramente el la calidad final del producto.

ayscom-DevOps

«La experiencia adquirida por Ayscom tras años aplicando metodologías de desarrollo ágil nos ha permitido identificar estas etapas que tradicionalmente se habían relegado, y trabajar junto con nuestros clientes para ayudarles a afrontarlas de manera exitosa.»

1-DevOps-ROMPER-CON-LA-ARQUITECURA-MONOLITICA

Clave 1: Romper con la arquitectura monolítica

ayscom-monolithic-and-microservice-architecture

¿Qué es arquitectura monolítica?

Dentro del mundo de las Tecnologías de la Información, se considera una aplicación monolítica aquella cuyas distintas partes y funcionalidades están acopladas e implementadas en un solo programa. Este tipo de arquitectura software obliga a que todos los módulos del sistema estén alojados en un único servidor, lo que hace que sus distintas partes dependan completamente del conjunto. Durante años, este tipo de aplicaciones se ha considerado el estándar debido a que permitían obtener un mayor grado de eficiencia, así como al elevado coste que suponía multiplicar el número de servidores y recursos necesarios para poder ejecutar diversos módulos independientes.

Durante la última década, con el auge de las tecnologías de virtualización, la computación en la nube y los contenedores, se ha extendido un nuevo paradigma para el desarrollo de aplicaciones basado en la modularización de sus distintos componentes, para convertir cada uno en una entidad por sí misma. Estas entidades reciben el nombre de «microservicios», y se conciben como paquetes independientes capaces de responder de forma autónoma al resto del sistema, lo que reduce la tasa de errores críticos que se pueden producir durante la ejecución. Además, tener un sistema modular dividido en múltiples paquetes software facilita el mantenimiento y evolución del mismo, ya que el sistema completo es menos susceptible de errores cuando se modifica o actualiza tan solo uno de sus componentes.

¿Y qué es arquitectura de microservicios?

El auge de las arquitecturas basadas en microservicios ha facilitado la implantación de metodologías ágiles como patrón para el desarrollo de productos software. Esto se ha producido como consecuencia de los principales puntos a favor que encontramos en este tipo de arquitecturas y que facilitan su sincronización con formas de trabajo basadas en DevOps, entre los cuales cabe destacar:

ayscom-monolithic-and-microservice-architecture

 Facilidad al realizar mejoras y correcciones. Si algo caracteriza a las arquitecturas basadas en microservicios, es que cada funcionalidad supone un módulo independiente del conjunto. Esto deriva en que las modificaciones que se realizan sobre un programa se simplifican tanto a nivel cuantitativo (cada módulo está compuesto por menos código, lo que agiliza el proceso de análisis, diseño e implementación de las soluciones) como cualitativo (al contener tan solo una funcionalidad concreta, la lógica detrás de cada parte del software se vuelve más simple). Esta reducción de la complejidad en el desarrollo acelera los procesos de implementación, permitiendo desplegar funcionalidades de valor con mayor frecuencia y sacando el máximo partido a las iteraciones del ciclo DevOps.

 Agilidad en el despliegue de nuevas funcionalidades. Otro de los factores diferenciadores de los microservicios es la rapidez con la que se despliegan. Esta cualidad es especialmente útil en entornos en los que se lanzan nuevas versiones o mejoras de forma frecuente, como es habitual al aplicar metodologías DevOps. Al poder desplegar nuevas versiones de forma rápida, no solo se mejoran los tiempos de desarrollo de nuevas funcionalidades, sino que se mejora la detección y corrección de errores, ya que la regresión a una versión previa del software se puede realizar rápidamente cuando se detectan problemas o errores en el funcionamiento de alguno de los módulos desplegados.

 Escalabilidad. Esta cualidad va en relación con la facilidad del despliegue de microservicios. Al tratarse de una arquitectura modular, es posible desplegar múltiples instancias de un microservicio con el fin de tener capacidad de respuesta cuando se produzcan picos de uso en partes concretas del sistema.

 

¿Cómo migrar a una arquitectura de microservicios?

Todas estas características se traducen en que implantar una arquitectura basada en microservicios se convierta en el punto de partida básico para el uso de la metodología DevOps. El principal inconveniente para dar el paso hacia este nuevo sistema es, como en muchos otros casos, la resistencia al cambio que se produce en la mayoría de empresas o grupos de trabajo, más justificado si cabe en este caso al tratarse de cambios que afectan a la arquitectura sobre la que se construyen los proyectos.

Otro de los inconvenientes a la hora de implantar una arquitectura basada en microservicios es decidir qué se hace con los proyectos que ya se han realizado o que están en proceso de desarrollo. La decisión más sencilla es aplicar microservicios a partir de cierto punto solo para las nuevas funcionalidades, pero esto obliga a mantener viejas infraestructuras, así como a mantener al equipo de trabajo anclado en viejos procesos, lo que al final deriva en una metodología de trabajo a medio camino entre el pasado y el futuro. Es necesario, por tanto, trazar un plan de transición hacia estas tecnologías que sirva de guía para afrontar nuevos proyectos y para mantener los que ya estén finalizados.

Otro punto a tener en cuenta es la necesidad de monitorizar las aplicaciones e infraestructura que soportan los desarrollos realizados. Como se explicará en apartados posteriores, la monitorización es otro de los factores clave a la hora de aplicar correctamente la metodología DevOps. Por lo tanto, será necesario adaptar los procedimientos y herramientas existentes de manera que sea posible tener una visibilidad de todo lo que ocurra en la nueva arquitectura basada en microservicios.

 

« Implantar una arquitectura basada en microservicios se convierte en el punto de partida básico para el uso de la metodología DevOps. […] Es necesario, por tanto, trazar un plan de transición hacia estas tecnologías que sirva de guía para afrontar nuevos proyectos y para mantener los que ya estén finalizados

Artículo de Alejandro Redondo

Desarrollador de negocio
alejandro_redondo@ayscom.com

No te pierdas la siguiente entrega:

Completar los procesos de testing

En el siguiente artículo de inminente publicación, hablaremos de la segunda fase de este proceso, dentro de las 4 claves que propone Ayscom para alcanzar el éxito en la metodología DevOps: Completar los procesos de testing

Descarga el Whitepaper

No te pierdas la siguiente publicación en el blog de Ayscom, mantente informado en nuestras redes sociales y además, aquí tienes a tu disposición el Whitepaper completo sobre las 4 claves de la metodología DevOps:

descargar aquí
WHITEPAPER-DEVOPS-AYSCOM

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *