DevOps deriva de su significado en inglés: development y operations. Y es una metodología de desarrollo de software basada en la integración entre los equipos de desarrollo y operaciones, que permite que los desarrolladores puedan focalizarse sólo en las tareas de desarrollo y poder desplegar su código en cuestión de segundos.
Podría entenderse que entre ambas posiciones surjan choques laborales, dada la estructuración básica de cualquier empresa de desarrollo de software con independencia, por lo general, tanto de su volumen como de sus trabajadores.
Hay que incidir en que DevOps no consiste en aumentar la responsabilidad de los desarrolladores haciendo que además de realizar sus propias tareas de desarrollo, también abarquen funciones de sistemas, de tuning de rendimiento, de bases de datos…
Por lo tanto, lo que el Devops busca es crear un clima de cooperación y de comunicación que facilite las tareas entre ambos departamentos, y haga crecer la eficiencia en sus procesos. Al final, el objetivo de ambas aéreas es el mismo, por lo que este sería un buen punto de partida para conseguir una coordinación capaz de ofrecer mejores resultados a la compañía.
DevOps es especialmente útil de cara a la transformación digital y el desarrollo de productos digitales, tanto a nivel de usuario final como para el cliente interno que nuestras compañías demandan, optimizando la puesta en el mercado de cualquier producto, obteniendo más flexibilidad calidad del resultado final, y un menor coste con una altísimo frecuencia de releases.
Como se aplica
Una vez que la empresa tiene bien claras las ventajas que implementar esta metodología le pueden aportar, es el momento de diseñar el plan de trabajo y, ante todo, estimular el feedback entre ambos departamentos para que trabajen juntos.
La idea central es que se pueda desarrollar un software mucho más económico y a mayor velocidad, manteniendo los estándares de calidad. Para ello, es fundamental unificar los procesos de desarrollo y operaciones tratándolos como un único proceso. Esto requiere acercamiento real entre equipos de modo que los técnicos de desarrollo y los de operaciones colaboren unificando herramientas y procesos, sin perder su independencia profesional y su territorio de competencias. En este caso, la evolución iría a que ambas áreas tienen que empezar a pensar en su trabajo de una manera conjunta.
Algunos ejemplos sencillos de su uso podrían ser:
- Automatización. Resulta fundamental que la mayor cantidad posible de trabajos sean automáticos para no robar tiempo de los trabajadores.
- Metodologías y programas más ágiles: XP o Scrum son solo algunos de los ejemplos. Se trata de esquemas ya pensados para la optimización de este tipo de trabajo.
- Buenas prácticas. Puede parecer evidente, pero es fundamental contar con un listado de pequeños detalles que facilitan el trabajo. La planificación, medición de resultados y, cómo no, la posibilidad de compartir las críticas y de avisar de problemas reiterados.
Algunos perfiles DevOps
A continuación, vamos a ver alguno de los principales perfiles que han surgido especializándose en la cultura Devops y sus habilidades, ya que adoptar roles nuevos o redefinidos en muchas ocasiones no es suficiente:
- El DevOps pionero “evangelist”
Esta persona debe promover los beneficios de DevOps identificando y cuantificando la rentabilidad comercial resultante de adoptar esta metodología. Como agente de cambio y responsable inicial, el DevOps evangelist asegura la coordinación de los equipos de desarrollo y operativos, identifica los roles clave que gestionen los métodos de DevOps y se asegura de que los profesionales de IT estén capacitados para llevar a cabo esos cambios.
- El release manager
Los release managers se encargan de la gestión y coordinación del producto desde el desarrollo hasta la producción, centrándose en detalles más técnicos y trabas en los que un project manager típico no estaría involucrado. Los release managers supervisan la coordinación, la integración y el flujo de desarrollo, testing e implementación para apoyar la entrega continua del servicio.
- El arquitecto de automatización
Debido a la importancia de los sistemas automatizados en la cultura DevOps, este role se convierte en fundamental. También se les conoce como especialistas en integración, y analizan, diseñan e implementan estrategias para despliegues continuos, a la vez que garantizan una alta disponibilidad en los sistemas de producción y preproducción.
- El developer/tester de software
El desarrollador de software es el motor de cualquier organización DevOps. En DevOps, la categoría de desarrollador de software puede seguir siendo la misma, pero el nuevo rol del developer/tester de software aumenta el alcance de sus responsabilidades. Ya que no solo son responsables de convertir los nuevos requisitos en códigos, sino también en testing, implementación y monitoreo continuo.
- QA (XA)
Lo que actualmente se pide a los roles de QA es probar la funcionalidad del producto, pero el rol debe evolucionar para además incluir el testing de la experiencia del usuario. Si bien la función de garantía de calidad (QA) a menudo forma parte del desarrollo de software, se necesita un nuevo tipo de control cuando las organizaciones adoptan el enfoque DevOps.
- Administrador de sistemas
Los responsables en la administración de sistemas tradicionales se centran en mantener los servidores en funcionamiento. Es por ello, que su posición es fundamental para que el servicio, debido al cambio de metodología, que lo que hace ejecutar múltiples releases cada hora, incluso minutos, se produzcan sin interrupciones del servicio. Por lo que este perfil requiere un amplio control de calidad en los entornos de prueba, incluyendo controles muy estrictos sobre lo que está permitido ejecutar en sus servidores, para que a la vez de mantener la estabilidad del sistema, ofrecer un entorno seguro a posibles ataques externos.