¿Qué es DevOps?

Aprovechando que me he leído el libro What is DevOps? (un e-book que, por cierto, es gratuito), voy a explicaros un poco de qué va el tema.

La idea principal del DevOps es la fusión del departamento de sistemas con el departamento de desarrollo. ¿Por qué? Pues porque la división de estos dos departamentos hace que sus miembros se vean como “enemigos”. Digamos que el objetivo del trabajo del departamento de sistemas es el mantener la aplicación funcionando, mientras que el objetivo del trabajo del departamento de desarrollo es (simplificando) añadir nuevas funcionalidades a la aplicación. El problema es que esas nuevas funcionalidades suelen ser vistas por el departamento de sistemas como potenciales desestabilizadores de la aplicación, es decir como más trabajo, por lo que sistemas intentará retrasar al máximo el despliegue en producción de esas nuevas funcionalidades (ha de pasar un tiempo en el entorno de test), lo que será percibido por desarrollo como un menosprecio o amenaza a su trabajo y ya tenemos montado el mal rollo dentro de la empresa.

Lo que propone DevOps es que uniendo ambos departamentos no sólo consigues una mayor harmonía dentro del departamento de IT, si no que consigues una mayor eficiencia a la hora de resolver incidencias. Por ejemplo, desarrollando la parte de logs ¿Cuántos de nosotros ha tenido un problema con una aplicación, ha ido a echarle un ojo al log y ver un galimatías que es incapaz de entender (no entremos cuando vemos el chorro de excepciones no capturadas tan típicas de una aplicación Java)? ¿Por qué? Pues por que el que ha programado la aplicación no sabe que información necesita sistemas, el es de desarrollo y pondrá la información que le resultaría útil a él o ella. Y no por ánimo de joder al pobre sysadmin a media hora de acabar su turno, si no simplemente porque no es consciente de lo que necesita el sysadmin.

Otra de las cosas interesantes que comentan, es hacer que la aplicación se “autoadministre”. Dado que sistemas ahora participa en el desarrollo, se puede añadir código que gestione las típicas incidencias que se resuelven reiniciando un demonio (¿a que jode una alerta a las tres de la mañana para, simplemente, reiniciar un Apache y que ya no te vuelva el sueño?). Hacer la aplicación más resiliente se le llama a esto. Si a esto le sumamos la aparición del IaaS (AWS, Rackspace, CloudBuilder, etc.) podemos hacer que la propia aplicación levante más frontales web cuando lo necesite, o pare un esclavo de base de datos y levante otro porque había fallos con la replicación de forma totalmente automática. Obviamente esto haría mucho más agradable el trabajo del sysadmin de guardia, que sólo sería despertado para incidencias gordas e interesantes, no para chorradas.

La verdad que es una idea que me parece interesante y creo que el futuro de sistemas a por ese camino, al menos en entornos web.

PD: Ya sabéis empresas web que estéis interesadas en un sysadmin molón y que sepa de qué va el rollo DevOps os invito a visitar mi perfil de LinkedIn. 😛

Anuncios

Un comentario en “¿Qué es DevOps?

  1. Daniel, buenos días, cómo va todo? te escribo desde Colombia.
    Tengo una duda con este tema: cuando hablas de equipo de sistemas y equipo de desarrollo, para mi es clara la separación de contextos, pero el departamento de sistemas, se refiere al equipo de infraestructura, encargado de configurar ambientes, servidores, base de datos y desplegar las aplicaciones?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s