¿Qué es esto de DevOps?

Publicado en

Todos aquí sabemos que algo con lo que siempre hemos podido contar en la industria de TI es con nuestra capacidad para deformar cualquier término de moda para hacer que signifique cualquier cosa que nos convenga. DevOps actualmente se encuentra en ese punto. Así que me toca compartir mi explicación de lo que entiendo por DevOps. Más allá de pretender que usted lector lo entienda igual, espero ayudarlo a enriquecer su perspectiva al respecto. A final de cuentas, mi trabajo es fácil ya que se cumple con brindar información y explicación. El de usted es mucho más complicado porque consiste en implementar en la vida real estas cosas de las que yo platico como si fuera muy sencillo lograrlas.

Ni tecnología ni metodología

“Nosotros aplicamos una metodología DevOps”, “conoce nuestra oferta de productos para DevOps”, “se busca ingeniero DevOps”. Este tipo de frases dan la idea de que DevOps es una tecnología y/o metodología sofisticada. En realidad, no es ninguna de las dos.

El término DevOps originalmente fue acuñado simplemente para referirse a la comunidad de gente interesada en estudiar cómo construir y operar sistemas de gran escala que evolucionen de forma rápida y continua. Lo que a Patrick Debois le interesaba cuando organizó el 1er devopsdays en 2009 era simplemente conocer a otras personas interesadas en la noción de poder manejar la infraestructura de TI de forma ágil. Es por ello que en realidad no existe un framework reconocido de DevOps, ni productos certificados para DevOps.

Si quisiéramos encasillar a DevOps como algo, lo más correcto desde mi punto de vista no sería definirlo ni como una metodología ni como una tecnología, sino como una cultura. Y la cultura no es algo que se adquiere ni se aplica de forma discreta ni consciente, sino que se forma y se exuda de forma continua e inconsciente. La cultura DevOps fomenta la colaboración entre los distintos partícipes —notablemente los equipos de desarrollo (Dev) y operaciones (Ops) pero no limitado a estos— a lo largo de todo el ciclo de vida de un sistema de software con el fin de entregar valor al usuario y al negocio de forma continua y consistente. Por cierto, al hablar de “operaciones” nos referimos a roles como administradores de servidores, redes, DBAs, soporte. Básicamente, las personas responsables de mantener los sistemas operando.

La cultura DevOps tiene sus orígenes en la filosofía ágil y lean. Podemos considerar que DevOps es una extensión de ágil que se preocupa no solo por la construcción del software, sino también por su puesta en producción, uso y retroalimentación.

Un rasgo característico de la cultura DevOps es que invita al equipo de operaciones a administrar infraestructura utilizando técnicas y herramientas similares a las que usan los desarrolladores (de ahí el término “infraestructura como código”). Ejemplos de esas técnicas es usar sistemas de control de versiones, pruebas automatizadas, scripts para instalación de ambientes, etcétera. Habiendo dicho eso, no debemos olvidar que dichas técnicas, a pesar de su utilidad, no dejan de ser meros instrumentos para expresar la cultura. En otras palabras, no sirve de nada tener herramientas si no hay cultura.

Conclusión

DevOps es algo complicado de definir, tal como su hermano Ágil, pero no por eso debemos dejarlo de lado. Debemos estar conscientes de que DevOps es en esencia una cultura, y por lo tanto no está atada a un conjunto de actividades específicas. La cultura DevOps se termina materializando en actividades y técnicas que pueden ser distintas en cada organización.

En una cultura DevOps, los desarrolladores y operadores colaboran para no solo construir el software, sino también entregarlo exitosamente al usuario y satisfacer sus expectativas de desempeño, disponibilidad, seguridad y evolución.