¡Compártelo!

¿Qué es DevOps? Aclarando el significado

Hay diversas opiniones sobre a qué se refería Daft Punk en su célebre tema Harder, Better, Faster, Stronger, pero podría ser la banda sonora de un proceso de adopción del paradigma DevOps en la empresa.

🎶 “Work it harder

Make it better

Do it faster

Makes us stronger”

Así:

  • mayor calidad de desarrollo, infraestructuras IT más resilientes, feedback constante y mejora continua (better),
  • entrega de valor rápida y frecuente y menor Time to Market (faster)
  • y capacitar a las empresas para poder responder a los cambios de la forma más eficiente y confiable posible en línea con sus objetivos de negocio (makes us stronger)

son algunas de las ventajas y objetivos que proporciona trabajar en DevOps, que está muy relacionado con otros conceptos de moda en el mundo del desarrollo como los microservicios, los contenedores, la integración continua, la entrega continua, las metodologías ágiles, etc.

El origen de DevOps

Los cambios económicos y sociales provocados por la Transformación Digital en la que vivimos inmersos y el auge -por pura necesidad- de las metodologías ágiles en las empresas han impulsado el uso de DevOps a la hora de desarrollar software, una búsqueda que a día de hoy suma más de 27 millones de resultados en Google.

El concepto surgió como fruto de la frustración que el consultor IT Patrick Debois  experimentó en 2007 durante un proyecto de migración del centro de datos del gobierno de Bélgica. Debois participaba inicialmente a cargo del testing y en esa posición sufrió los fallos de cooperación y comunicación a raíz de conflictos y malentendidos entre los desarrolladores y los administradores de sistemas (operaciones) del proyecto.

Un año después, durante la Agile Conference 2008 en Toronto, Canadá, Debois tuvo una fértil conversación con Andrew Shafer, fundador de Puppet Labs, sobre ampliar el alcance de las metodologías ágiles también al ámbito de la infraestructura y la administración de sistemas.

Patrick Debois siguió en acción y en 2009 creó DevOpsDays, un evento con el objetivo de aunar desarrollo (dev) y operaciones (ops) que celebró su primera edición en Gante (Bélgica) y que con el apoyo de otros referentes del movimiento DevOps John Willis, Kris Buytaert, Jennifer Davis, Damon Edwards, entre otros- se ha seguido organizando desde entonces en multitud de ciudades del mundo.

A medida que se amplificaba la conversación sobre DevOps (en eventos, conferencias, foros de internet…), iba saliendo a la luz la realidad sobre el modelo de desarrollo de software imperante hasta el momento: equipos aislados y solo preocupados por su parte del proyecto, líneas de comunicación inexistentes, largas jornadas de trabajo, errores sin corregir…  y en definitiva: clientes insatisfechos.

Y así se empezó a expandir la palabra de la “cultura DevOps” entre profesionales y organizaciones, conscientes de que en un entorno altamente competitivo, como es el desarrollo de software, no reaccionar ante el statu quo significaba firmar su sentencia de muerte.

Entonces, ¿es DevOps una cultura? No exactamente, pero sí tiene que ver con la cultura de una empresa.

¿Qué es exactamente Devops?

Como hemos visto, DevOps nació como un nuevo paradigma en contraposición al modelo de desarrollo de software tradicional con el objetivo de mejorar la comunicación y la colaboración entre los diferentes equipos de trabajo y aumentar así su eficiencia.

Se trata de una nueva forma de trabajo, un nuevo enfoque para crear software que hace hincapié en acortar distancias en la relación entre los equipos de desarrollo, sistemas/operaciones y Testing/QA. DevOps se basa por tanto en la idea ágil de que las personas y sus interacciones están por encima de herramientas y procesos.

qué es DevOps
Fuente: Wikipedia

Como metodología de desarrollo ágil, DevOps ofrece una serie de técnicas y prácticas de automatización y monitorización de procesos en cada fase del ciclo de vida de un producto digital:

  • Planificación
  • Programación (código)
  • Construcción
  • Pruebas
  • Entrega
  • Despliegue
  • Operación
  • Monitorización

Estas fases no están estrictamente delimitadas como en un ciclo en cascada, sino que DevOps se basa en un flujo iterativo en el que pueden solaparse diferentes procesos.

Fuente: Edureka

Por eso, el gran reto de practicar DevOps radica en alinear los objetivos de los diversos equipos que trabajan en un mismo proyecto de manera que se genere el caldo de cultivo necesario para poder lanzar aplicaciones confiables de manera rápida y frecuente.

Para conseguirlo, los implicados cuentan con herramientas diversas para la diferentes fases.

qué es DevOps
Fuente: Edureka

Work it Harder… Our Work is Never Over

Abrazar DevOps supone un esfuerzo para las empresas y requiere un cambio drástico en la cultura, el estilo de gestión (management), la organización y la arquitectura de software”, afirma Kris Buytaert.

“Por lo general, la gerencia no está preparada para realizar esos cambios, por lo que crean un nuevo silo en su organización llamado equipo DevOps, ponen en práctica un pipeline de despliegue semiautomatizado sin pruebas, implementan alguna forma de automatización, pero siguen realizando cambios manuales en la producción”.

Es necesario trabajar duro (Work It Harder) para afrontar el cambio organizacional que precisa DevOps, que también exige una mentalidad abierta y preparada para el cambio.

Por eso, DevOps suele representarse como un ciclo sin fin de fases que se realizan e integran de manera constante en función del feedback recibido. A fin de cuentas, la mejora continua e infinita es el fin último de Devops. Ya lo sentenció Daft Punk al final de su tema: Our Work Is Never Over.

qué es DevOps

Si quieres conocer más acerca de este enfoque, no te pierdas este artículo en el que diseccionamos las tendencias en DevOps de este año.

Artículos relacionados

gestión de stakeholders

Gestión de stakeholders: Guía para un Product Owner

Si algo va a definir el S.XXI será, sin duda, la inmediatez y nuestra capacidad de adaptación en un marco de constante cambio y evolución. Esto se vuelve todavía más importante en el mundo del desarrollo de productos digitales. En este contexto, satisfacer las demandas

manejar cambios en proyectos Agile

Estrategias para manejar cambios en proyectos Agile

Introducción En el desarrollo de software mediante metodologías ágiles, la capacidad de gestionar cambios continuos es esencial. La metodología promueve la flexibilidad y la adaptabilidad, permitiendo a los equipos responder de manera efectiva a los cambios en los requisitos del cliente o dueño del producto,

El arte de estimar esfuerzos y la duración de las tareas en Agile

El arte de estimar esfuerzos y la duración de tareas en Agile

La estimación en proyectos ágiles es esencial para una planificación efectiva. Utilizando enfoques como los puntos de historia y la colaboración activa, los equipos estiman el esfuerzo de desarrollo de manera iterativa para adaptarse a los cambios constantes de una manera práctica y efectiva para