Es un acrónimo en inglés de development -desarrollo- y operations -operaciones; es un conjunto de prácticas que agrupan el desarrollo de software ( Dev ) y las operaciones de Tecnologías de la Información ( Ops ).

 

El objetivo con el cual fue creado esta metodología, es hacer más rápido el ciclo de vida del desarrollo de software y proporcionar una entrega continua de alta calidad; ya que normalmente estos ciclos de vida y desarrollo de proyectos de tecnología son muy largos. Esta práctica para desarrollar software de manera ágil esta vinculada claramente con la metodología Agile para la gestión de proyectos.

 

El término “desarrollo ágil o infraestructura ágil” se empezó a usar durante el 2008 en una conferencia en Toronto y desde ahí, su término se ha ido aplicando y cobrando relevancia en el mundo de la tecnología.

 

Hoy en día, DevOps pretende ser un modo de trabajo interfuncional sin “anclarse” a una herramienta única, sino potenciar el uso de múltiples herramientas que operen como en las diversas categorías:

 

  • Código. – herramientas para la escritura, desarrollo, administración, fusión y revisión del código fuente.
  • Construcción. – herramientas que nos apoyan en la compilación continua.
  • Pruebas. – herramientas para el “tester” o pruebas continuas que nos hagan visibles todos los posibles errores que pudiera tener previo a salir al ambiente “productivo” y generar problemas con los clientes finales.
  • Lanzamiento. – este tipo de herramientas nos apoyaran en llevar un control de cambios, aprobación de versiones y resguardo de la documentación del proceso.
  • Configurar. – nos brinda la capacidad de la gestión y configuración de la infraestructura del código.
  • Monitor. – esta herramienta nos apoyará en el monitoreo del rendimiento o desempeño del sistema o aplicativo con el usuario final.

 

Para mí, la principal característica del movimiento DevOps es generar un espacio de microservicios que nos permite a las empresas que nos dedicamos a la tecnología, brindar alta disponibilidad y estabilidad de nuestros desarrollos, mejoras y cambios a los sistemas tocando sus aspectos principales, sin el riesgo que normalmente lleva el realizar cambios en la base de datos, back end, front end, APIs, etc.

 

Con DevOps pretendemos descentralizar los desarrollos y generar un cambio radical en esas “arquitecturas monolíticas” donde los cambios y la funcionalidad parecían imposibles de lograr.

 

A continuación un ejemplo de cómo se visualiza un trabajo empleando DevOps:

 

Ejemplo DevOps