DevOps es uno de los términos más mencionados en el actual entorno de IT. Normalmente, se asocia a estrategias de transformación digital, y a metodologías como Continuous Delivery o desarrollo ágil.

Ya os contamos en El legendario origen del movimiento DevOps la génesis del término, pero como ocurre con la mayoría de las buzzwords tecnológicas, es complicado encontrar una definición canónica, y es frecuente de hecho encontrar usos del término contradictorios, o flagrantemente incorrectos.

Gran parte de la confusión viene de mezclar qué es DevOps con los requisitos necesarios o los beneficios obtenidos al implementar DevOps. Sin querer ser excesivamente dogmáticos acerca de un término cuyas líneas de contorno aún no han acabado de asentarse del todo, vamos a intentar al menos arrojar algo de luz sobre el concepto.

DevOps según WikiPedia

Comenzamos con lo más próximo que hoy en día podemos tener a una definición canónica. ¿Qué dice Wikipedia de DevOps?:

"DevOps es un acrónimo inglés de development (desarrollo) y operations (operaciones), que se refiere a una metodología de desarrollo de software que se centra en la comunicación, colaboración e integración entre desarrolladores de software y los profesionales de sistemas en las tecnologías de la información (IT)". DevOps es una respuesta a la interdependencia del desarrollo de software y las operaciones IT. Su objetivo es ayudar a una organización a producir productos y servicios software más rápidamente, de mejor calidad y a un coste menor. Las empresas con entregas (releases) muy frecuentes podrían requerir conocimientos de DevOps. Flickr desarrolló un sistema DevOps para cumplir un requisito de negocio de diez despliegues diarios. A este tipo de sistemas se les conoce como despliegue continuo (continuous deployment) o entrega continua (continuous delivery), y suelen estar asociados a metodologías lean startup. Grupos de trabajo, asociaciones profesionales y blogs usan el término desde 2009.

Diagrama que explica las tres partes de DevOps: QA, Technology Operations y Software Engineer.

Todo claro, ¿verdad? ¿O pensáis como yo que hay overflow de conceptos? Rescatemos de momento tres ideas clave:

Con estos conceptos en mente, repasemos algunas corrientes de opinión en torno a DevOps.

¿Es DevOps una cultura?

No, DevOps no es en sí una cultura, pero sí requiere de un fuerte cambio cultural y organizativo para su implementación. Un cambio cultural hacia la colaboración, la comunicación, y en último término la completa integración entre las antiguas áreas (en lo habitual rabiosamente estancas) de desarrollo y sistemas.

Este cambio cultural es tan complicado de conseguir en algunas organizaciones, que son muchos los que lo identifican directamente con DevOps, pero recordemos: DevOps es una metodología de desarrollo software, y un cambio de cultura no es en sí mismo una forma de desarrollar software.

¿Es DevOps una nueva raza de hombres orquesta?

Otro error común es confundir DevOps con modelos que algunas startups se ven abocadas a adoptar en sus inicios, en los que todos los miembros del equipo técnico saben de desarrollo, de sistemas, de tuning de rendimiento, de bases de datos... y hasta de cablear la oficina, comprar portátiles y hasta configurar el móvil de la gente de negocio. ¿Os suena ;-)?

Head of IT se encuentra entre dos caballos: Dev y Ops.

Ese modelo puede funcionar durante un tiempo, pero no escala. DevOps no consiste en aumentar la responsabilidad de los desarrolladores haciendo que lleven varias gorras (en particular dos, la de desarrollo y la de sistemas), sino en sustituir esas dos gorras por una sola: una nueva gorra DevOps.

¿Es DevOps una profesión?

Según Rob Steward, vicepresidente de desarrollo de producto de Progress Software, “una buena práctica de DevOps liberará a los desarrolladores para que se centren en hacer lo que mejor saben hacer: escribir software. DevOps elimina el trabajo y las preocupaciones de la puesta en producción del software una vez que está escrito”.

Si esto es así, ¿qué es un ingeniero DevOps? ¿No hemos quedado en que DevOps permite que un desarrollador sólo desarrolle? ¿Entonces por qué se buscan en el mercado –y cada vez con mayor demanda- perfiles con habilidades específicas para montar equipos DevOps?

La respuesta es sencilla: para un desarrollador pasar a un modelo DevOps resulta inmediato, mientras que un ingeniero de sistemas necesita nuevas habilidades. Estas habilidades, según una investigación de Puppet Labs, son, por este orden: scripting, don de gentes, reingeniería de procesos, y en último lugar experiencia con herramientas específicas. Un perfil que no es fácil de encontrar.

Así que no, DevOps no es una profesión, y estrictamente no existen ni perfiles DevOps ni ingenieros DevOps, sino “ingenieros de sistemas con capacidades específicas para integrarse en equipos DevOps”.

DevOps: un modelo de desarrollo de productos digitales

Como conclusión, quedémonos con una definición simple de DevOps con la que todos podamos estar de acuerdo: DevOps es una metodología de desarrollo software basada en la integración entre desarrolladores y administradores de sistemas, que permite que los desarrolladores puedan enfocarse sólo en desarrollar y puedan desplegar su código en segundos. ¿Y cómo ha evolucionado DevOps? En este post que hemos redactado en 2023, te contamos su evolución a lo largo de los años.

Además, aquí repasamos cómo esta forma de trabajar viene a solucionar un enfrentamiento tan viejo como el que nos relata otra famosa trilogía cinematográfica, la de Underworld.

Y si te has quedado con alguna duda, no te pierdas esta infografía en la que resolvemos dudas comunes.

Un caso práctico

Cada vez son más las empresas que apuestan por la filosofía DevOps, pero no son tantas las que aprovechan todas las ventajas de la nube. En este podcast hablamos con José María Álvarez y Tomás Fernández, de Leroy Merlin España, sobre cómo hacer DevOps usando el potencial de Google Cloud. ¿Por qué Leroy Merlin apuesta por trabajar con Google Cloud?

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.