Empecemos muy rápidamente por decir lo que no es DevOps.
- Todos sabemos lo que hacen los equipos de desarrollo y de operaciones en una organización, pero cuidado, porque Devops, no consiste en sumar unos con otros.
- Tampoco es un producto; no se le puede poner un precio y venderlo.
- Y, finalmente, tampoco es un mito; hay muchas organizaciones que están consiguiendo importantes beneficios de DevOps- Algunos ejemplos son Netlix, Walmart, Facebook y General Electric.
Sigamos por los beneficios que conlleva; los más importantes se pueden resumir como:
- Mejora el time to market por la rápidez de desplegar software
- Incrementa la calidad al disminuir el número de bugs
- Disminuye el coste total del ciclo de vida del software
Entonces … ¿Qué es DevOps?
DevOps se puede definir como una forma de trabajar que integra los equipos de desarrollo y operaciones con el objetivo de incrementar la colaboración y la productividad a través de la automatización de procesos y la continua monitorización del rendimiento de las aplicaciones.
Los dos pilares clave de DevOps son Automatización y Despliegue continuo.
Por un lado, DevOps tiende a automatizar los más posible procesos como las pruebas de código, los procesos de integración y la provisión de infraestructura.
Por otro, es fundamental que el código se construya en ‘trozos’ pequeños, que haga posible sean integrados, probados y desplegados en horas y no en días o semanas.
La automatización también asegurará que los diferentes entornos (desarrollo, pruebas y producción) permanezcan iguales a lo largo del ciclo de vida del software.
El tercer pilar que es fundamental para DevOps es la monitorización en tiempo real del rendimiento de las aplicaciones. Esto permite medir el impacto que los cambios de código tienen en la aplicación y la detección temprana de bugs.
¿Qué hace falta para adoptar DevOps en una organización? Principalmente dos cosas: un cambio de mentalidad y nuevas herramientas.
El cambio de mentalidad es necesario para que los equipos de desarrollo y operaciones trabajen integrados, se comuniquen y compartan los mismos objetivos.
Las nuevas herramientas contribuyen a la automatización de los procesos relacionados:
- Herramientas escribir código y testearlo continuamente como Jenkins
- Herramientas para controlar las versiones de código como GitHub
- Herramientas de configuration management como Chef, Puppet o SaltStack, que permiten el despliegue rápido de nuevo código
- Herramientas de monitorización del rendimiento de las aplicaciones como New Relic.
En conclusión, DevOps es una filosofía que ayuda a las organizaciones que desarrollan software a innovar más rápido y dar respuesta a las necesidades de negocio. Pero tómate en serio su implementación; requiere tiempo, un cambio cultural e inversión en las herramientas adecuadas. ¡Suerte!