27 de noviembre, 2018
3 minutos
DevOps: Qué es y su poder en la gestión de servicios IT
Es posible que hayas escuchado alguna vez el término DevOp o DevOps pero, o bien no acabes de situarlo o bien no sepas a qué se refiere en concreto.
Si ese es tu caso, en este artículo intentaremos explicar los curiosos orígenes de este término y su poder en la gestión de servicios IT.
El origen del término y el movimiento DevOps
Si te pica la curiosidad respecto al término DevOps debes saber que este movimiento nació de manera accidental. Seguro que has leído acerca del movimiento Agile, basado en dividir los procesos complejos para optimizarlos, además de poner toda la atención en el cliente.
Este movimiento está muy ligado a esta filosofía. De hecho, fue en Toronto en 2008 cuando se marca el inicio de esta filosofía de trabajo.
Andrew Clay está considerado el creador de la filosofía DevOps junto con el belga Patrick Debois. Ambos empezaron a trabajar en 2008 para llevar la filosofía Agile al mundo de la administración de sistemas. El resultado de su trabajo se haría público en San José (California) en 2009 y un año más tarde en Europa. El Hashtag en twitter #DevOps fue top mundial.
Eso sí, en ocasiones el DevOps y el Agile se confunden, cuando tienen puntos en común -ambos vienen de la misma filosofía-, pero tienen diferencias que veremos a continuación.
Pero, ¿qué es y qué no es el DevOps?
¿Cómo definir este modelo de gestión o trabajo?
Una de las ayudas nos la presta la Wikipedia, que define el DevOps así:
DevOps (acrónimo inglés de development -desarrollo- y operations -operaciones-) es una práctica de ingeniería de software que tiene como objetivo unificar el desarrollo de software (Dev) y la operación del software (Ops). La principal característica del movimiento DevOps es defender enérgicamente la automatización y el monitoreo en todos los pasos de la construcción del software, desde la integración, las pruebas, la liberación hasta la implementación y la administración de la infraestructura. DevOps apunta a ciclos de desarrollo más cortos, mayor frecuencia de implementación, lanzamientos más confiables, en estrecha alineación con los objetivos comerciales.
Así, podemos definir el DevOps a partir de algunas ideas clave que, seguro, resultan familiares a los practicantes de la filosofía Agile.
- DevOps está centrado en la administración de sistemas.
- DevOps es un método de creación de software.
- DevOps está basado en la integración entre administradores de sistemas y desarrolladores del software en equipos.
- DevOps permite crear software de manera rápida y de alta calidad, garantizando una alta frecuencia de actualizaciones.
Pero resolvamos algunas preguntas.
¿A qué nos referimos con la integración entre administradores de sistemas y desarrolladores del software?
El objetivo último de esta filosofía es la creación del software, y eso requiere integrar personal de ambas disciplinas sin que eso suponga crear una nueva forma de desarrollar software en sí misma. La creación de software sigue siendo la misma dependiendo de cómo deba hacerse, cambia la forma en abordar la creación.
Por otro lado, no podemos confundir esta metodología con la metodología que aplican algunas start-up en el momento de iniciarse.
Seamos sinceros: en los primeros momentos de una start-up todo el mundo debe saber hacer un poco de todo. Aunque esta ‘dinámica inicial’ de trabajo se aplica al desarrollo de software, a la larga adoptar el DevOps no debe significar que los desarrolladores pasen a ser jefes o tener más responsabilidades, sino a adoptar dinámicas que optimicen los tiempos de trabajo.
Las herramientas DevOps
El DevOps cuenta con diferentes herramientas que integra en una estructura de trabajo funcional.
No existe una única herramienta o sistema, sino que son muchas que se aplican de una u otra manera dependiendo del trabajo a realizar. Estas herramientas deben encajar en diferentes categorías que reflejen los aspectos del proceso de desarrollo:
- El código: es la base del software y DevOps implementa diferentes herramientas en la administración del código fuente y la fusión del código
- Construcción: la integración continua consiste en hacer integraciones automáticas de un proyecto con alta frecuencia para detectar fallos. Esto se aplica a la compilación y la ejecución de pruebas en un proyecto completo.
- Pruebas: pruebas continuas para poder detectar los fallos y debilidades del proyecto
- Paquete: creación de un repositorio de artefactos que desempeñan tareas concretas, como previa a la distribución final del software.
- Lanzamientos: gestión del lanzamiento, diferentes versiones y actualizaciones constantes.
- Configuración de la infraestructura para la distribución
- Monitoreo de la experiencia de los usuarios finales para detectar posibles márgenes de mejora.
Una de suites pensadas para DevOps es Puppet Labs, creada por Andrew Clay en 2006, y funciona en todos los sistemas operativos. Además, es utilizada por empresas como Disney, NYC Stock Exchange o Google, entre otras.
¿El DevOps es una cultura como lo es Agile?
Pues no, DevOps no es en sí una cultura como Agile, aunque es necesaria que su implementación vaya precedida por un cambio importante en cuanto a la colaboración, comunicación e integración entre las diferentes áreas de la empresa que se verán afectadas.
Sí es cierto, que una vez se ha implementado el DevOps en los work-flows de la empresa, el cambio cultural es muy grande y difícilmente hay vuelta atrás.
Cuéntanos tu opinión