Skip to main content

¿Sabes realmente qué es DevOps?

Con el comienzo de 2017 nos llegan multitud de artículos con predicciones para el año y síntesis de lo que hemos dejado atrás. En el terreno de la tecnología, uno de los conceptos que más suenan (a nivel global ya lo hace desde hace años) es el de DevOps. Para muchas empresas DevOps puede resultar uno de los muchos términos que suenan a lo lejos y poco a poco van cogiendo fuerza en su entorno, pero no se atreven a dar el paso. Sin embargo, el trabajo de Xeridia en este nuevo movimiento nos ha demostrado que aquellas organizaciones que hagan el esfuerzo por adoptar DevOps obtendrán una ventaja competitiva sobre las demás.

Dicho esto, queremos aprovechar el blog para compartir con vosotros lo que ya llevamos unos años viviendo en primera persona. En este post vamos a hacer una primera inmersión en el mundo DevOps, y en las próximas semanas os iremos descubriendo sus beneficios, implicaciones, lecciones aprendidas, casos de éxito, herramientas y tecnologías que están revolucionando este sector.

Antes de comenzar, ¿realmente conocemos el significado de DevOps? A estas alturas ya sabemos que DevOps no es una tecnología. Tampoco es (o no deberíamos creer que es) una “buzzword” anglosajona que nunca llegará a España, ni la profesión de moda.

DevOps es una metodología con la que se cambia el modo en el que se gestiona el ciclo de desarrollo de software, a nivel tecnológico pero sobre todo a nivel cultural. Los equipos de desarrollo y de Operaciones (o sistemas) eliminan el trabajo “en silos” y comienzan a trabajar de una manera colaborativa y bidireccional. Entre todos cubren el ciclo completo de desarrollo de software, garantizando procesos mucho más rápidos y seguros, entregas más fiables y productos de calidad. Para conseguirlo, se introducen -como veremos después- nuevas herramientas que contribuyen a la automatización de tareas repetitivas y al trabajo en equipo, ayudando a agilizar los procesos y evitar trabajo duplicado y la introducción de nuevos errores.

definicion-devops

DevOps establece una “intersección” entre Desarrollo, Operaciones y Calidad, pero no se rige por un marco estándar de prácticas, sino que permite una interpretación mucho más flexible en la medida en que cada organización quiera llevarlo a la práctica, según su estructura y circunstancias.

«El objetivo final de DevOps es minimizar el riesgo de los cambios que se producen en las entregas y dar así un mayor valor tanto a los clientes como al propio negocio«

Ahora que tenemos algo más clara la definición de DevOps, veamos sus connotaciones prácticas, tanto a nivel cultural como tecnológico.

El fin de la “pared de la confusión” y el modelo unidireccional

Una de las problemáticas que pretende zanjar el movimiento DevOps es la llamada “pared de confusión”. Es el conflicto que surge cuando el equipo de Desarrollo hace el traspaso de código al equipo de Operaciones, y éste trabaja en el testing y en los scripts para el pase a producción. Es entonces cuando surgen incidencias que no se sabe bien a quién atribuir, si a Desarrollo por entregar código desarrollado con fallos o a Operaciones por realizar una mala configuración. Y mientras ambos equipos se ponen de acuerdo, la fecha de lanzamiento está cada vez más cerca y no hay tiempo para hacer más pruebas-error.

En esta situación cada departamento vela por sus intereses (el primero busca un sistema fluido y dinámico en el que poder añadir nuevas funcionalidades, el segundo la estabilidad por encima de todo) y tienen sus propias prioridades y forma de trabajar, provocando en más de una ocasión fricciones y falta de confianza entre los equipos. Precisamente DevOps entra en escena para aunar los intereses de ambos departamentos y crear un ambiente de confianza y cooperación mediante prácticas que fomentan una actitud positiva respecto al fallo y una cultura sin culpas (blameless culture), colaborativa, en la que la información fluye, el talento se intensifica y el equipo se siente comprometido. Se contribuye a la comunicación y trabajo bidireccional mediante actividades en la que desarrolladores y Operaciones trabajan estrechamente, por ejemplo en las tareas de pruebas y calidad.

Además de las implicaciones en las Personas, DevOps supone un cambio en los Procesos. DevOps va más allá de las metodologías ágiles y se fundamenta en la llamada metodología Lean. Trataré este tema en un post independiente pero como adelanto, la aplicación de principios Lean al ciclo de vida DevOps ayuda a lograr los objetivos y minimizar el riesgo de los cambios que se producen en las entregas de una manera más precisa y rigurosa, para dar aún más valor a clientes y al propio negocio.

A nivel tecnológico: la caja de herramientas

Además de esta transformación cultural, que implica a personas y procesos, DevOps conlleva también una adaptación (en mayor o menor medida según la organización) a nivel tecnológico. Y es que la selección de las herramientas es clave para asegurar la continuidad en la integración y en la entrega de los productos y servicios TI. Desde productos de líderes tecnológicos a alternativas Open Source o plataformas hechas a medida, la flexibilidad de DevOps permite a cada organización elegir las herramientas que más le convenga utilizar.

Lo importante es contar con una opinión experta que conozca bien las posibilidades de cada tecnología y definir las más convenientes en cada caso. Esto permitirá suavizar el proceso y minimizar los esfuerzos y posibles riesgos de la integración sin perder el foco del proyecto en la consecución de los objetivos DevOps fijados.

En Xeridia hemos visto cómo la correcta selección de tecnologías ha permitido a muchas empresas de desarrollo de software (y no hay que irse a Facebook o Google para vivirlo) reducir enormemente los tiempos de despliegue y resolución de incidencias, pasando de despliegues de actualizaciones cada 2 ó 4 semanas a desplegar cientos de funcionalidades al día. Además de ganar en agilidad, las frecuentes pruebas y subidas a producción les han ayudado a ganar en estabilidad y control, y lo que es más importante, a aumentar la confianza y satisfacción de sus clientes.

Por otro lado, esta nueva caja de herramientas contribuye también a ese ciclo bidireccional que comentaba antes. La monitorización de aplicaciones (a través de soluciones APM) permite la detección temprana de problemas y un seguimiento mucho más proactivo de los entornos, ya que Operaciones puede ponerse en contacto con Desarrollo (por ejemplo a través de una plataforma de gestión de tickets o de un chat) para una solución inmediata y consensuada.

Resumiendo, ¿cuál es el secreto de un caso de éxito DevOps? Primero, tomar la decisión de cambiar la forma de hacer las cosas. Segundo, la selección de las herramientas adecuadas y una integración muy precisa. Tercero, desarrollar un proceso colaborativo y fomentar un ambiente de trabajo en equipo.

¿Procedimiento revolucionario? Sí. Pero DevOps ya está aquí y ha venido para quedarse.

Cristina Bello es Responsable de Marketing de Xeridia