¿Qué es DevOps?

Completado

DevOps es la unión de personas, procesos y productos para permitir la entrega continua de valor a los clientes. Pero, ¿qué significa eso? Unámonos al equipo mientras Mara explica qué es (y qué no) DevOps y qué es lo que hace que los mejores equipos tengan éxito.

Mara ha convocado a sus compañeros de equipo a una reunión breve. Todo el mundo ha acudido, pero nadie quiere estar allí. Ella pone una caja de donuts en la mesa.

Mara: —Hola, gracias por venir. Quería hablaros sobre nuestro mapa de flujo de valor y cómo podemos hacer que nuestros procesos sean más eficaces.

El mapa del flujo de valor de Mara sigue en la pizarra desde la anterior reunión:

Screenshot of a whiteboard showing the value stream map.

Mara: —El mapa del flujo de valor muestra dónde somos menos eficaces en entregar valor a nuestros clientes finales. Al igual que todo el mundo, podemos mejorar. Y podemos decidir qué áreas abordaremos en primer lugar.

Andy: Esto nos muestra dónde tenemos problemas, pero no lo que debemos hacer al respecto.

Mara: —Es cierto; es un ejercicio que nos ayuda a actuar en la dirección correcta. Con respecto a cómo proceder con nuestros problemas, creo que DevOps nos ayudará. En mi última empresa, aumentó la tasa de implementación, los plazos de ejecución eran menores y las operaciones tenían muchos menos incidentes. Nos llevó un tiempo conseguirlo, pero valió la pena. DevOps no es una solución rápida.

Tim: —Conozco a alguien que acaba de encontrar trabajo como ingeniero de DevOps. Me parece que es más para desarrolladores. Como tú, Andy.

Mara: —DevOps no es un puesto.

Amita: —¿Hay algún programa de software o plantilla que podamos conseguir para que nos ayude en el proceso? Puede que haya una hoja de cálculo de DevOps.

Mara: —DevOps no es un componente de software.

Andy: —Es más bien una metodología.

Mara: —En realidad, no.

Andy, Amita y Tim: —Entonces, ¿qué es?

Mara: —La definición que me gusta usar es la siguiente:

DevOps es la unión de personas, procesos y productos que permite ofrecer valor de forma continua a nuestros usuarios finales.

De hecho, Abel Wang, un asesor sobre aspectos relacionados con la nube en Microsoft, tiene un excelente conjunto de vídeos con respuestas rápidas a algunas de las grandes preguntas. Veamos cómo define Abel DevOps:

Pregunte a Abel

Nuestro objetivo es ofrecer a nuestros clientes juegos que les encantarán. Para ello, trabajamos juntos con un conjunto compartido de prácticas y herramientas.

Amita: —¿Qué significa eso? ¿Qué prácticas compartidas? ¿Qué herramientas compartidas?

Mara: —Con prácticas, me refiero a lo siguiente:

  • Planeamiento ágil: Juntos, vamos a crear un recurso de trabajo pendiente que todos los usuarios del equipo y la gente de administración pueden visualizar. Asignaremos prioridades a los elementos para saber en qué tenemos que trabajar en primer lugar. El trabajo pendiente puede incluir casos de usuario, errores y cualquier otra información que sea de ayuda.
  • Integración continua (CI): Automatizaremos la forma en la que compilamos y probamos nuestro código. La ejecutaremos cada vez que un miembro del equipo confirme cambios en el control de versiones.
  • Entrega continua (CD): La CD es cómo probamos, configuramos e implementamos desde una compilación en un control de calidad o un entorno de producción.
  • Supervisión: Usaremos la telemetría para obtener información sobre los patrones de uso y rendimiento de una aplicación. Podemos usar esa información para mejorar a medida que iteramos.

Amita: —No conozco las pruebas automatizadas. Mis pruebas son manuales y las hago cuando Andy me entrega el código. No tengo tiempo para cambiar cómo lo hago todo.

Tim: —De ninguna manera voy a permitir que nadie implemente en producción.

Andy: —Esto hará que los de administración se asusten. Nunca piensan más allá de la próxima versión y siempre la quieren para ayer.

Mara: —Entiendo a qué te refieres con lo de administración. He elaborado este documento sobre qué es lo que hace un equipo de alto rendimiento.

¿Qué hace un equipo de alto rendimiento?

Este es el documento que preparó Mara. La información se basa en los informes de investigación de DevOps y encuestas realizadas con profesionales técnicos de todo el mundo.

DevOps ayuda a las empresas a experimentar con maneras de aumentar la satisfacción y la adopción de los clientes. Puede mejorar el rendimiento de la organización y, a menudo, permite lograr mayor rentabilidad y cuota de mercado.

Utiliza métricas para crear cuatro categorías mediante las cuales comparar los equipos de alto rendimiento con los equipos de bajo rendimiento.

Equipos de alto rendimiento:

  • Implementar con más frecuencia

    De hecho, algunos equipos implementan hasta decenas de veces al día.

    Las prácticas como la supervisión, las pruebas continuas, la administración de cambios de la base de datos y la integración de la seguridad en una fase más temprana del proceso de desarrollo del software ayudan a que los equipos de alto rendimiento implementen con más frecuencia y con mayor capacidad de predicción y seguridad.

  • Reducir el plazo de ejecución desde la confirmación la implementación

    El plazo de ejecución es el tiempo necesario para que una característica esté disponible para el cliente. Al trabajar con lotes más pequeños, automatizar los procesos manuales e implementar con más frecuencia, los equipos de alto rendimiento pueden lograr en horas o días lo que antes llevaba semanas o incluso meses.

  • Reducir la frecuencia de errores de cambio

    Una nueva característica que produzca errores en producción o haga que otras características se interrumpan puede significar la pérdida de una oportunidad entre la empresa y sus usuarios. A medida que evolucionan los equipos de alto rendimiento, su frecuencia de errores de cambio se reduce con el tiempo.

  • Recuperarse de los incidentes más rápidamente

    Cuando se producen incidentes, los equipos de alto rendimiento pueden recuperarse más rápidamente. Actuar sobre las métricas ayuda a que los equipos de alto rendimiento se recuperen con mayor rapidez, a la vez que la implementación se realiza con más frecuencia.

La forma de implementar la infraestructura en la nube también es importante. La nube mejora el rendimiento de la entrega de software, y los equipos que adoptan características esenciales de la nube tienen más probabilidades de convertirse en equipos de alto rendimiento.

La subcontratación puede ahorrar dinero y proporcionar mano de obra flexible, pero se debe usar en las áreas correctas. Los equipos con un rendimiento bajo tienen más probabilidades de externalizar funciones completas (como las pruebas y las operaciones) que sus homólogos de mayor rendimiento.

Conclusión

DevOps es una de las principales razones por las que muchos equipos de alto rendimiento pueden ofrecer valor a los clientes en forma de nuevas características y mejoras más rápido que sus competidores. En este vídeo corto, Abel explica por qué debería conocer mejor DevOps:

Pregunte a Abel

Lo que DevOps no es

Al considerar qué es DevOps, también es importante asegurarse de que aprendemos lo que no es. Lo que DevOps no es:

  • Una metodología.
  • Un componente de software específico.
  • Una solución rápida para los desafíos de la organización.
  • Solo un equipo o puesto de trabajo (aunque estos puestos sean bastante comunes en el sector).