Saltar al contenido
DevOps aporta una solución a la eterna brecha entre el desarrollo software y su operación o como puede sernos más familiar, el departamento de sistemas.

En el escenario actual en el que se busca un desarrollo ágil, flexible ante el cambio y con una respuesta rápida hacia el cliente; nos encontramos con un gran muro en el momento que necesitamos implementar ese código y buscar un mejor rendimiento e infraestructuras. El equipo de operaciones busca la estabilidad y optimización, contraria a la filosofía de la flexibilidad ágil.

El muro entre ambas partes es psicológico y físico, de procedimientos y cultural, que impide las comunicaciones entre desarrollo y operaciones, provocando un desconocimiento de qué es lo que pasa al otro lado del muro y sin ningún interés por saberlo. Un cruce de culpas que lleva a perder tiempo, dinero y clientes.

Para poner fin a esta situación nace la idea DevOps, que podemos definir como un movimiento cultural y operacional que promueve la colaboración entre el desarrollo software (Dev) y la operación del software (Ops) con el objetivo de facilitar que una IT de alto rendimiento alcance los objetivos de negocio.

Los principios en los que se apoya esta idea son los siguientes:
 
  1. Acción centrada en el cliente: El equipo de DevOps debe tomar medidas centradas en el cliente, invirtiendo en nuevos productos y servicios para conseguir el máximo nivel de satisfacción, respondiendo al cambio o a nuevas necesidades y recibiendo continua retroalimentación de este.
  2. Responsabilidad de inicio a fin: El equipo de DevOps debe proporcionar soporte de rendimiento hasta llegar al final del ciclo de vida. Esto mejora el nivel de responsabilidad y la calidad sobre los productos, dando así estabilidad a los equipos.
  3. Mejora Continua: La cultura DevOps se centra en la mejora continua para minimizar el desperdicio y alcanzar la excelencia. Continuamente se experimenta realizando mediciones para comparar los resultados y la evolución.
  4. Automatiza todo: Es un principio vital del proceso DevOps que no afecta solo al desarrollo de software, sino también a todo el panorama de la infraestructura. Evitar cualquier proceso manual y siempre con el foco en el desarrollo del producto, apostando por una entrega continua y reemplazando los centros de datos por plataformas en la nube e infraestructuras basadas en contenedores.
  5. Equipos autónomos: Equipos multidisciplinares en los que no hay especialistas sino miembros con diversas habilidades aportando retroalimentación continua en una cultura de confianza mutua y responsabilidad repartida.
  6. Monitorea y prueba todo: Es muy importante que el equipo de DevOps tenga un sólido monitoreo y procedimientos de prueba. Su objetivo debe ser maximizar el flujo y minimizar los pasos logrando pequeñas entregas de MVP y siempre aportando transparencia en el proceso.
Estos principios tienen una clara correspondencia con los principios agile, se enfocan al valor y a la mejora continua buscando la satisfacción del cliente. Pero, ¿qué beneficios tiene en comparación con las prácticas de desarrollo y operaciones por separado?
 
  • Menos fallos en cambios
  • Tiempo de ciclo más corto
  • Mayor frecuencia de despliegue
  • Recuperación de fallos en menor tiempo
  • Mayor calidad
  • Coste inferior
Los equipos que adoptan la cultura, las prácticas y las herramientas de DevOps mejoran el rendimiento y crean productos de mayor calidad en menor tiempo, lo que aumenta la satisfacción de los clientes.

Esta mejora de la colaboración y la productividad es fundamental también para alcanzar objetivos de reducción del tiempo de comercialización, adaptación al mercado y a la competencia, mantenimiento de la estabilidad y confiabilidad del sistema, así como la mejora del tiempo medio de recuperación.

Los equipos ponen en práctica el método DevOps implementando determinadas prácticas a lo largo del ciclo de vida de las aplicaciones. Algunas de estas prácticas ayudan a agilizar, automatizar y mejorar una fase específica, mientras otras abarcan varias fases y ayudan a los equipos a crear procesos homogéneos que favorezcan la productividad:
 
  • Integración y entrega continua
  • Control de versiones
  • Desarrollo ágil de software
  • Infraestructura como código
  • Administración de configuración
  • Supervisión continua
DevOps influye en el ciclo de vida de las aplicaciones a lo largo de las fases de planeamiento, desarrollo, entrega y uso. Cada fase depende de las demás y las fases no son específicas de un rol, porque en una auténtica cultura de DevOps, de una manera u otra, todos los roles están implicados en todas las fases.
Descripción imagen
Héctor Palmero Perfil en Linkedin

Facilitador de equipos y Scrum Master en BABEL, eterno aprendiz y apasionado de la mejora continua. Con Lean y Agile hallé el sentido común en el desarrollo software, y uno de mis objetivos profesionales es hacer partícipe de esta mentalidad a cuantas personas sea posible.

Mas post de Héctor Palmero