En Ayscom, una de nuestras áreas fundamentales es el desarrollo de software para nuestros clientes. Para realizar estos proyectos, trabajamos bajo el uso de la innovadora metodología DevOps, lo que  nos permite asegurar nuestro compromiso de calidad y eficiencia en todos ellos.

Haciendo uso de nuestra propia experiencia, en este artículo trataremos de abordar el concepto principal y todo aquello que lo rodea de la forma más completa y práctica posible, así como las ventajas que esta metodología de trabajo aporta a nuestros clientes con respecto a otras más tradicionales.

DevOps, como concepto formal, se puede definir de la siguiente manera:

DevOps es una metodología de desarrollo de software basada en la integración entre desarrolladores y administradores de sistemas, que permite acelerar la integración de nuevas funcionalidades, testear de forma automática y solventar errores de forma ágil.

Una vez que obtenemos una primera impresión de este término, es común que se generen múltiples inquietudes por parte de nuestros clientes sobre la metodología en la que se basa DevOps, tales como;

  • ¿Cuál es el proceso de implementación?
  • ¿Cómo es el flujo de comunicación con el cliente?
  • ¿Que ventajas aporta este método con respecto a las metodologías de desarrollo de software tradicionales?

 

Proceso de implementación

 

A continuación, mostramos el proceso de implementación que llevamos a cabo cuando un cliente nos transmite una necesidad de transformación del código de su software. Dicho proceso está dividido en cuatro fases (solución, implementación y desarrollo, testing y despliegue).

Además, en todas las fases del proceso el cliente está presente como un activo fundamental, estableciéndose un flujo de comunicación totalmente bidireccional, tal y como se presenta en el siguiente esquema: 

 

metodología DevOps

 

Una vez identificada la necesidad, tratamos directamente con el cliente para buscar la solución óptima a su problema de forma conjunta.  Aunque esta sea la primera fase del proyecto, no es lineal, por lo que se pueden incorporar continuas mejoras, comprometiéndonos a trabajar con transparencia y profesionalidad.

Para poder dar comienzo a la fase de desarrollo, tratamos de dar forma a esa solución a partir de un software y una planificación del proyecto de forma común con el cliente. Según avanza el proceso, se sube el código al repositorio y automáticamente comienza el proceso de integración continua.

Para realizar las pruebas del proyecto una vez subido al repositorio, es necesario hacer uso de una configuración de testing precisa. Una vez se obtienen los resultados, esto devuelve un feedback de información imprescindible a nuestros desarrolladores, ya que es la prueba que les indica el estado en el que se encuentra el código (existencia de fallos, posibles imprecisiones…).  

En el caso de que existan elementos erróneos, el código es revisado, vuelve a generarse y se sube hasta que el resultado es óptimo y preciso con respecto a lo que se ha planteado en la fase de análisis. Sólo cuando esto ocurre, el código es desplegado. 

Haciendo uso de la integración continua, cada vez que el código pasa la fase de testing, tenemos la capacidad de poder desplegarlo de manera automática en las máquinas correspondientes, además de hacer los cambios en configuraciones y bases de datos pertinentes. Sólo es necesaria una pequeña configuración previa para superar esta fase.

 

Enfoque cliente

 

El cliente es una parte fundamental del flujo de trabajo, participando de forma activa, pudiendo proponer todos los cambios y mejoras que considere oportunos. Aquí encontramos uno de los potenciales de nuestra implementación de DevOps, ya que uniéndolo con las metodologías ágiles, conseguimos un feedback continuo de los clientes que nos permite optimizar al máximo las soluciones aportadas

Como se ha comentado anteriormente, cualquier cambio que se desee realizar, recorre todo el proceso anterior instaurándose de manera automática en el entorno de producción.

Además,todos los procesos son realizados por un mismo equipo de trabajo de manera integrada, y cualquier cambio que se realice durante el proceso de desarrollo se detecta y se suma a lo realizado de forma automática.

Por lo tanto, sin ningún tipo de esfuerzo extra y haciendo uso de la integración continua, podemos incorporar mejoras o matices que nos hagan adaptarnos para obtener los resultados más optimizados posibles. 

 

Para un cliente, la ventaja principal de contar con un equipo de desarrollo que trabaje bajo la metodología DevOps supone una reducción del «time to market» en sus proyectos de desarrollo, por los siguientes motivos:

  • Robustez de la solución. La automatización de los continuos procesos de testeo reduce el margen de error y las continuas repeticiones en la implantación del código.
  • Mayor flujo de comunicación. El código se va desplegando automáticamente en los hosts del cliente, de forma que siempre podrá comprobar el estado del proyecto. 
  •  Reducción de la dispersión. Debido a una menor necesidad de equipos implicados, se obtiene una mayor agilidad y comunicación del cliente con los desarrolladores.
  • Respuesta rápida. Cualquier necesidad de desarrollo será incorporada haciendo uso de la integración continua.

 

 

 

Deja un comentario

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