Existen bastantes opiniones al respecto de qué es DevOps: ¿Una metodología? ¿Una forma de pensamiento? ¿Un conjunto de herramientas? ¿Un perfil profesional?
A mí me gusta definir DevOps como una filosofía colaborativa y comunicativa que persigue un objetivo: ofrecer la máxima satisfacción a los clientes. Y si hablamos de filosofía, hablamos de personas que realizan acciones y que adaptan y mejoran los procesos fomentando la innovación y la creatividad.
DevOps no es un concepto nuevo, su origen proviene de los principios Lean y Agile y consiste en fomentar una cultura altamente productiva y de mejora continua que elimine las barreras entre los equipos de desarrollo (Dev) y operaciones (Ops) para poder entregar a los clientes aplicaciones y servicios de calidad de una forma ágil y rápida.
Entonces, ¿por qué se habla tanto de ello actualmente? Podemos encontrar la respuesta en la evolución imparable del mercado. Un mercado cada vez más exigente en el que los cambios son constantes, y por lo tanto siempre requieren de adaptación por parte de las organizaciones, que deben ser cada vez más flexibles y ágiles en ajustarse a estas transformaciones. Esta necesidad ha hecho que cada vez más organizaciones estén interesadas en adoptar DevOps.
El papel Agile en la filosofía DevOps
El ciclo de vida tradicional del software presenta grandes limitaciones ya que ofrece un modelo de flujo en grandes lotes, requiere de mucho esfuerzo para el testing, genera riesgos al final del proceso (no aceptación por parte del cliente) y se hace difícil mantener la calidad del software entregado. Es muy habitual que las entregas se produzcan muy espaciadas en el tiempo, debido a que "la maquinaria" para llevar el producto al cliente resulta engorrosa y poco ágil.
Con el enfoque Agile se da solución a algunas de las limitaciones del modelo tradicional: se plantean objetivos a corto plazo, se fomenta un flujo en lotes reducidos, se ejecutan ciclos cortos de entrega y se obtiene feedback del cliente lo antes posible y de forma constante, lo que minimiza el riesgo de no aceptación y se maximiza el valor que se le ofrece, a la vez que se fomenta la confianza.
Pero Agile no resuelve algunos de los problemas del modelo tradicional: sigue requiriendo grandes esfuerzos de testing, presenta riesgos en el paso a producción (no aceptación por parte de Ops) o bien dificultades para montar entornos o efectuar modificaciones en las infraestructuras donde se despliegan las aplicaciones. Es en este punto donde entra DevOps.
Acabando lo que comenzó Agile
Para resolver los problemas a los que no llega Agile, hay que adoptar algunos de los principios y prácticas que marca DevOps:
- Crear un proceso automatizado, repetible, predecible, fiable, recuperable y monitorizable para la entrega continua de software de calidad
- Eliminar las acciones manuales y minimizar los riesgos
- Fomentar la entrega continua
- Facilitar la detección precoz de errores y solucionar los mismos lo antes posible para minimizar el coste
- Eliminar las barreras históricas entre Devs y Ops fomentando la confianza
- Fomentar la mejora continua a lo largo de todo el proceso
De esta forma, con DevOps las organizaciones consiguen una mayor frecuencia en los despliegues, reducen los errores de producción y ganan tiempo para corregirlos logrando así el time-to-market (lead time) para ofrecer un servicio de calidad a sus clientes.
¿Qué es DevOps? DevOps es una filosofía colaborativa y comunicativa que persigue un objetivo: ofrecer la máxima satisfacción a los clientes