La situación actual
Miedo al cambio
Cuando trabajé en un grupo de desarrolladores, temíamos que la plataforma fuese inestable y nos cohibíamos en cambiar la solución. Desconfiamos, y muchas veces con razón, de los desarrolladores y de sus desarrollos. Como tenemos miedo al cambio, recurrimos a procesos burocráticos para controlar y gestionarlos excesivamente rígidos. ¿Quién no ha sufrido durante una semana, o incluso más, para que el comité de cambios ITIL se reúna y discuta la vialidad de los cambios propuestos por los técnicos?
Inseguridad sobre los desarrollos creados
Nadie tiene garantías de que el nuevo código o sistema desarrollado funcione como lo esperamos en la plataforma productiva. ¿El servidor será capaz de soportar la carga actual del servicio? ¿Habrá algún código oculto que no valide la solución? Muchas veces no tenemos la respuesta a estas preguntas y nos empeñamos en seguir con la implementación.
Aislamiento
Los desarrolladores, una vez entregan su software a los operadores, se desentienden completamente de su implementación. Solo actúan si el problema es muy grave y apremiante. Por otro lado los operadores no involucran a los desarrolladores en sus decisiones sobre la plataforma, lo que hace que los desarrolladores pierdan contacto con la realidad de la plataforma productiva. Este comportamiento genera silos de conocimiento que no ayudan al desarrollo e implantación de las nuevas soluciones.
La palabra Devops, proviene de la unión de dos palabras anglosajonas “Developer” y “Operations”. Devops es un movimiento reciente (2009), tan reciente que no hay una entrada en Wikipedia sobre el mismo. Devops plantea solucionar los problemas a que nos enfrentamos constantemente en los ambientes de desarrollo y operación. Devops es un concepto paraguas que involucra cualquier intención de mejorar los procesos actuales de desarrollo de software, facilitando las interacciones entre desarrollo y operaciones. Es una propuesta bottom-up (las mejores que existen) de experimentados administradores de sistemas que saben que los desarrolladores, testers, managers, técnicos de redes y administradores de sistemas son parte de un equipo con un solo objetivo: proporcionar a los clientes un software competitivo, seguro y de gran calidad. Devops quiere ser el nuevo paradigma de desarrollo de aplicaciones cambiando el modelo actual, reactivo, centrado en procesos operacionales (ITIL es uno de ellos) a un nuevo modelo ágil y automatizado. Devops quiere alinear los objetivos de los desarrolladores y operadores para que ambos trabajen como equipo quitando barreras y alentando la comunicación.
Como ya saben, en la nube la aplicación es rey. En el pasado, la unidad de despliegue en el Data Center era el servidor, con un OS especifico para una o varias aplicaciones, se conectaba a la red y se le asignaba una dirección IP. Antes la aplicación era secundaria. Ahora, y gracias a la virtualización, se crean servidores específicos para cada aplicación. Que importa si el sistema operativo es Linux o Windows, si puedo virtualizar servidores sobre el hardware que cumplan los requisitos de la aplicación.
Si la virtualización permite desarrollar servidores a la medida del software ¿no deberían los desarrolladores definir especificaciones para las maquinas donde se ejecutará el software? Es más, ¿estas especificaciones no podrían definirse de manera semiautomática y enviarlas instantáneamente al proveedor de nubes? ¿Acaso todo esto no implica una revolución en los perfiles del personal técnico de las compañías o de sus procesos de desarrollo de software?
Los negocios se beneficiarán de Devops porque la nueva filosofía de desarrollo asiste a dos de las cualidades estratégicas más poderosas y deseadas por los negocios. La agilidad de negocio y el alineamiento IT. Devops alinea los objetivos del personal de desarrollo y operaciones con los objetivos del negocio. Las empresas se beneficiarán de esta nueva filosofía porque los equipos de desarrollo y operaciones estarán involucrados y facultados para obtener los mismos objetivos de la compañía.
Como manager de empresa IT, un primer paso, podría ser solicitar Devops, en vez de desarrolladores o administradores de sistemas. Este cambio de búsqueda deja claro que quieres gente comprometida con los objetivos de la empresa, capaces de ejercer múltiples funciones y la empresa es capaz de instruir a los empleados si requieren de alguna habilidad. Este primer paso puede ser el detonante del cambio de cultura de tu empresa IT. Un manager también debe de tomar en consideración qué cambios realizar en los parámetros de medición del performance de cada miembro del equipo. Lo que se cuantifica, influye e incentiva las conductas de los empleados. Comunica a los empleados qué parte fundamentan cumplen dentro del proceso de la empresa. El éxito de los individuos y grupos debe de ser medido de acuerdo al éxito de todo el ciclo de proceso e implementación.
Otro paso importante es unificar y automatizar los procesos. El método Devops analiza todo el ciclo desarrollo/implementación como uno solo. Procesos individuales pueden ser usados en cada fase, como desarrollo ágil de software en la fase de codificación o Visible Ops en la fase de operaciones, pero de manera que los dos procesos individuales puedan ser gestionado como uno solo.
Herramientas de control de versiones de software que permita compartir, documentar y mantener al día los desarrollos ya son disponibles y conocidas por todos; solo hace falta cambiar la mentalidad y permitir que todos los miembros involucrados en el ciclo de desarrollo y operación puedan leer y cambiar elementos si es necesario y de acuerdo a políticas de acceso. Actualmente existen grupos de trabajos creando herramientas que sirven para el desarrollo y operación de aplicaciones de forma unificada. Puppet, Chef o Cucumber Nagios son algunas de ellas. Frases como infraestructuras como código, modelos impulsados por automatización e implementación continua serán escuchadas dentro de poco en la jerga de los Devops.
Si desean saber más del movimiento Devops les aconsejo que accedan a los blogs, páginas web de los Devops, pero si desean estar al tanto de todo lo que pasa en el mundo Devops sigan a los gurús del tema en Twitter. Para finalizar les dejo una lista de fuentes:
Damon Edwards
Twitter: @damonedwards
John Allspaw
Twitter: @allspaw
Lindsay Holmwood
Twitter: @auxesis
Andrew Shafer
Twitter: @littleidea
Paul Nasrat
Twitter: @nasrat
Mick Pollard
Twitter: @_lunix_
Robert Dempsey Twitter: @rdempsey