Deiser Blog | Atlassian | ITSM | DevOps | Agile at Scale | Cloud

Los tres pilares DevOps: entrega, automatiza y escala

Escrito por Deiser | 17-may-2018 9:59:00

El universo del desarrollo de software y las tecnologías de la información (TI) se caracterizan por estar en constante movimiento y por su afán por mejorar en cada posible aspecto, y es precisamente allí donde la metodología Agile y DevOps entran en juego, ofreciendo estructuras que permiten un mejor progreso de los proyectos. En este post, te vamos a explicar, uno a uno, los tres pilares en los que se apoya la metodología DevOps.

La metodología Agile es una forma de gestionar un proyecto basado en la constante colaboración, dividiéndolo en varias fases, y DevOps se centra en la forma de colaborar entre los equipos de Desarrollo (Dev) y Operaciones (Ops), y existen tres pilares esenciales al momento de transformar la productividad en equipos de TI que bien lo resumen:

  1. La cultura.
  2. La ruptura de silos.
  3. La automatización. 

La siguiente frase, resume algo que predica la sabiduría popular hoy en día… pero cuando se baja a los detalles aparecen muchos malentendidos, y los pilares que mencionamos antes, precisamente buscan desmitificar las creencias reflejadas en la frase:

Si no haces DevOps, no sabes gestionar equipos de TI

Carlos Fernández y David García explican cómo implementamos DevOps en Deiser con las herramientas Atlassian.

Entonces... ¿Qué es DevOps?

DevOps es un macro cultural alrededor del trabajo que ofrece valor al negocio desde el aspecto de la colaboración entre los equipos de Desarrollo (Dev) y Operaciones (Ops), he allí su nombre, sin embargo, eso sería simplificar mucho, por eso te recomendamos ampliamente ver la siguiente charla:

 

Esos malentendidos y esa falta de referencias claras fueron algo que tuvimos en cuenta a la hora de agendar las distintas charlas que articularon la tercera parada del Deiser Tour, celebrada en la madrileña Torre Espacio el pasado jueves 10 de mayo. Como jugábamos en casa, decidimos presentar  ejemplos prácticos de cómo aplicamos la cultura DevOps a los problemas que tenemos cada día en Deiser, acompañados de una sólida introducción a lo que significa este término… y lo que no.

1. La cultura de empresa 

Antes de implementar las prácticas DevOps dentro de una empresa, uno de los aspectos más importantes de la madurez del equipo, la implementación de metodologías ágiles, y la configuración de las herramientas. En nuestro caso, hemos conseguido lanzar versiones de producto (Projectrak para Jira o Exporter for Jira) en producción en cuestión de minutos, e incluso, tener la tranquilidad de lanzar una nueva versión un viernes por la tarde.

¿Qué beneficios obtienen los desarrolladores (Dev) al implementar DevOps con el stack de herramientas Atlassian?

En la charla puedes aprender, cómo basamos el flujo a través de un tipo de issue en Jira Software que destinamos para las releases. Las releases de Jira Software articulan todo el flujo de trabajo, aprobaciones, revisiones del código e integraciones con otros productos como Bamboo y Bitbucket que están gobernados por esa unidad de trabajo.

De alguna manera, esto ejemplifica bien la recomendación de tratar todo el código como si estuviera en producción: todo build debe ser suficientemente robusto para ser lanzado…

Al contrario, en algunas organizaciones algunas versiones pueden no ver la luz, en nuestro caso, la gestión del producto aprovecha al máximo los esfuerzos de los desarrolladores y nunca se construyen funcionalidades o versiones del producto que no se lancen. Es lo que tiene contar con una cultura de empresa lo suficientemente fuerte que premite hacer de la necesidad, virtud.

2. Rompiendo silos: ¿Cómo distinguir DevOps del postureo?

En la charla, titulada "titulada “Yo soy Dev, yo soy Ops y somos dos en un equipo", se ilustra perfectamente cómo distinguir entre alguien que sabe de DevOps, por qué es importante y cómo avanzar por la senda correcta de esta metodología. Aquí dejamos algunas claves que te permitirán entender cómo romper silos:

  •    ¿Cuál es la base de la metodología DevOps? Al ser una extensión de la metodología ágil, va más allá de los equipos de desarrollo y permite encontrar las tácticas que permitan eliminar los tiempos de espera y la descoordinación entre equipos que trabajan en distintas fases, con distintas herramientas, y con distintos tiempos. Es una cultura organizativa que se basa en las personas, donde cada uno debe aportar un grano de arena.

                       Ignatius (en la slide) nos ayudó a aclarar malentendidos comunes en torno al conocimiento DevOps.

  •     Sospechosos habituales: El headhunter que busca un perfil DevOps o la organización que quiere contratar servicios de consultoría para implementar DevOps... Es una de las mayores equivocaciones, al utilizar DevOps como un adjetivo, se olvida que la conexión entre los equipos exige una aproximación integral a la gestión del cambio.
    Se tata de una carrera de fondo que no se puede ganar con un sprint demoledor. Cualquier consultor y experto al que se contrate con el objetivo de hacer DevOps estarán abocados a la inopia si no trabajan en un contexto situado de equipo, donde se mire a las tecnologías y los flujos de trabajo existentes para hacer pequeñas mejoras incrementales.

  •     Un proyecto DevOps es humilde. Se empieza por medirse las fuerzas y definir bien el alcance de las bases que se quieran sentar. Tanto Luis como Leo lo dijeron claramente: “nuestro objetivo como consultores es que nuestros clientes no nos echen de menos: arreglar las cosas y que la empresa pueda seguir su camino”.

  •     Uses la tecnología que uses, es imprescindible eliminar fallos humanos con procesos de automatización, extendiendo la utilidad del código hacia la infraestructura y la configuración. Las implicaciones sobre los perfiles de TI son muy positivas, porque se consigue personal más proactivo y vigilante, que tiene mucho más valor cuando no está apagando fuegos: se monitoriza, se estudia el rendimiento en aras a plantear mejoras.

  •     Monitorizar el negocio es fundamental para deshacerse de la barrera entre las consideraciones técnicas y las estratégicas.

  •     Sigue a los referentes: Phoenix Project, the DevOps Handbook, y Jez Humble con su secuencia CALMS: Culture, Automation, Lean, Measurement, Sharing.

3. ¿Cómo automatizar permitirá a tu equipo ser más ágil? 

El beneficio de la automatización es obvio, te permite ahorrar tiempo, y enfocar tus esfuerzos en lo que en realidad importa. En esta oportunidad, cómo implementando dos herramientas (Bamboo & Docker) permiten agilizar los procesos del equipo de operaciones (Ops), mantenerlos comunicados con los desarrolladores (Dev) y lanzar software de forma más ágil.

            Charlie, experto en Atlassian Data Center explica cómo configurar la base de un código con Bamboo y Docker.

Al implementar Bamboo y Docker, es posible, a través de tres simples tareas, crear una imagen de Docker de Jira a partir de un archivo de Docker, generar un contenedor que sirva a la aplicación, y subir esa imagen al respositorio de imágenes de Docker para que esté disponible al resto de la organización.

En esta sesión Carlos Aparicio mostró algunas de las posibilidades que brinda Bamboo a la hora de integrarlo en el flujo de trabajo de operaciones con el objetivo de eliminar actividades manuales, tediosas y repetitivas.

Aprende a automatizar acciones que respondan a tus proyectos en Jira >>

La charla está inspirada en la experiencia de Charlie, quien en búsqueda de ser más ágil en su trabajo, y cansado de poner en marcha hasta cinco o seis máquinas con distintas versiones de herramientas Atlassian para peticiones de desarrolladores y consultores, se apoyó en Docker para diseñar un sistema que utilizamos actualmente para esos fines. De esta forma, Charlie se clonó a sí mismo y consiguió que cualquier miembro del equipo pudiera lanzar una aplicación en cuestión de minutos.

4 aspectos de Bamboo como herramienta de integración continua

  1. Build: Con Bamboo puedes centrarte en el código y no en el despliegue. Crea entornos de construcción, despliega multi entornos o gestiona triggers que inicien los planes de construcción de forma automática a partir de las condiciones que se hayan definido.

  2. Tests automáticos con plena visibilidad sobre los resultados.

  3. Deploy: Con Bamboo puedes sustituir las tareas repetitivas en un flujo de acciones automatizadas, securizando los resultados y minimizando el riesgo de errores.

  4. Connect: Además de las integraciones nativas con otras herramientas de Atlassian, como Jira, Bitbucket y Confluence, Bamboo tiene una buena integración con Docker que permite gestionar las imágenes y los contenedores de Docker.

¿Cómo acelerar el cambio DevOps dentro de tu organización?

Conseguir que una empresa tradicional dé los pasos para eliminar las barreras que hacen que el trabajo vaya más lento, que acerque la tecnología al negocio y se sumerja dentro de la cultura de la agilidad que representa DevOps es una gran interrogante, y está claro que no se puede predicar en el desierto.

Por eso es importante dar a conocer el verdadero valor de DevOps, que muchas veces inicia con la implentación de las herramientas, con una curva de aprendizaje inversa.