Consideraciones para tu cadena de herramientas de DevOps
¿Qué te conviene más, una cadena de herramientas de DevOps todo en uno o personalizable?
Robert Krohn
Responsable de ingeniería de DevOps
Contribución editorial: Chandler Harris
Una cadena de herramientas de DevOps es un conjunto de herramientas, a menudo de diversos proveedores, que funcionan como una unidad integrada para diseñar, compilar, probar, gestionar, medir y operar software y sistemas. Permite a los equipos de desarrollo y operaciones colaborar durante todo el ciclo de vida del producto y aborda aspectos básicos de DevOps, como la integración continua, la entrega continua, la automatización y la colaboración.
De la metodología ágil a DevOps
Cuando los principios de la metodología ágil se adoptaron de forma generalizada, revolucionaron la forma de crear productos. Pasamos a tener equipos pequeños e interdisciplinarios, así como sprints de una a dos semanas con los que se obtenían artefactos listos para la producción. Adoptamos ciclos de feedback ajustados y la mejora continua. Entregamos productos más rápido y con menos quebraderos de cabeza.
Es increíble lo rápido que cambian las cosas. Ahora, con la nube, SaaS y los servicios ininterrumpidos, el ciclo de vida del desarrollo es mucho más rápido. Es habitual que varias etapas de desarrollo y pruebas se realicen simultáneamente. Si bien la metodología ágil suele tener sprints de una a dos semanas, los equipos de los entornos nativos en la nube actuales iteran e implementan varias veces al día. Los flujos de trabajo y los códigos base no paran de evolucionar. Los equipos utilizan marcas de función, implementaciones progresivas y pruebas A/B para la implementación continua de código limpio y de calidad.
Esto ha promovido la evolución de la metodología ágil a DevOps, un conjunto de prácticas que automatizan e integran los procesos entre los equipos de desarrollo de software y de TI para que puedan compilar, probar y publicar software con mayor rapidez y fiabilidad. Los equipos de DevOps se miden por la rapidez con la que envían código a producción. Se definen por el número de iteraciones lanzadas al día y por el tiempo que tarda un cambio de código en pasar de las pruebas a la implementación y la producción. Los proyectos habituales de mi equipo tienen hasta veinte cambios al día. En algunos proyectos de mayor envergadura, llega a haber cien cambios al día.
Este flujo de trabajo acelerado es posible gracias a nuevas herramientas que permiten a los equipos colaborar en el desarrollo, las pruebas y la implementación. En particular, una cadena de herramientas de DevOps ayuda a los equipos a abordar cada etapa del ciclo de vida del desarrollo de forma extraordinariamente rápida.
¿Qué es una cadena de herramientas de DevOps?
Una cadena de herramientas de DevOps incluye las herramientas y la tecnología con las que los equipos de desarrollo y operaciones pueden colaborar durante todo el ciclo de vida del software. Se ocupa de aspectos básicos de DevOps, como la integración continua, la entrega continua, la automatización y la colaboración.
DevOps es un cambio cultural en el que el desarrollo y las operaciones funcionan como una unidad integrada, por lo que no existe una sola herramienta que posibilite los principios y prácticas de DevOps. En su lugar, una cadena de herramientas de DevOps es un conjunto de herramientas, a menudo de diversos proveedores, que funcionan como una unidad integrada para diseñar, compilar, probar, gestionar, medir y operar software y sistemas. A menudo, las organizaciones y los equipos deben probar diferentes combinaciones de herramientas hasta dar con la cadena de herramientas adecuada.
Si examinas un producto de DevOps sofisticado, la cadena de herramientas de DevOps debe poder ocuparse de diferentes partes del ciclo de vida del desarrollo muy rápidamente y ofrecer diferentes perspectivas para diferentes usuarios. Debe contar también con herramientas de desarrollo que se ocupen de cada etapa del ciclo de vida del desarrollo, incluidas la integración y la entrega continuas, la automatización de pruebas y la implementación de alta velocidad. En cuanto al aspecto de las operaciones de DevOps, las herramientas deben incluir funciones para la supervisión y la gestión de incidentes. Además, las herramientas deben tender un puente entre el desarrollo y las operaciones proporcionando registros y feedback continuos.
Material relacionado
Pruébalo gratis
Material relacionado
Explorar integraciones
Si imaginas que el lado izquierdo del símbolo de infinito es el lado del producto y el derecho, el de las operaciones, al gestor de productos que envía una nueva función a producción le interesa ver cómo el proyecto se divide en tareas e historias de usuario. El desarrollador del lado izquierdo del proyecto necesita ver cómo mover la función a producción, incluyendo tickets del proyecto, historias de usuario y dependencias. Además, si los desarrolladores se adhieren al principio de DevOps de "tú lo creas, tú lo gestionas", también tendrán interés por la corrección de incidentes.
Pasando al lado de las operaciones del ciclo de vida, el ingeniero de fiabilidad del sitio debe conocer los servicios que se pueden medir y supervisar para poder resolver cualquier problema que pueda surgir. Sin una cadena de herramientas de DevOps que relacione todos estos procesos, el resultado es un entorno caótico, desordenado y sin correlación. Con una cadena de herramientas bien integrada, se puede tener un mejor contexto de lo que está sucediendo.
Opciones para crear tu cadena de herramientas de DevOps
Al decidir qué cadena de herramientas de DevOps es la adecuada, primero es importante conocer las prácticas recomendadas fundamentales de DevOps y cómo ayudan las herramientas con estas prácticas. A continuación, define una estrategia de herramientas comunes con la que los equipos puedan colaborar en el desarrollo, las pruebas y la implementación.
Cuando las organizaciones adoptan DevOps, suelen tener dos opciones: una cadena de herramientas de DevOps "todo en uno" o una cadena personalizada. Elegir la configuración correcta es importante, ya que modela los procesos de DevOps de un equipo.
Cadena de herramientas de DevOps todo en uno
Una solución DevOps todo en uno es una solución completa que puede no integrarse con otras herramientas de terceros. Puede resultar útil para empresas o grupos que estén comenzando su recorrido en DevOps, o para un equipo que quiera poner en marcha un proyecto rápidamente. La desventaja de este tipo de cadena es que la mayoría de los equipos consolidados ya tienen un conjunto de herramientas que podría no integrarse con la solución completa. Además, una cadena de herramientas completa puede sufrir el síndrome del "aprendiz de todo, maestro de nada". Una sola herramienta no será capaz de evolucionar al ritmo de unos mercados con cambios vertiginosos. Por último, la mayoría de las veces las empresas necesitan integrar herramientas heredadas en una cadena de herramientas de DevOps y una cadena de herramientas todo en uno puede limitar esta posibilidad.
Cadena de herramientas de DevOps personalizable
El otro enfoque consiste en utilizar una cadena de herramientas de DevOps que se pueda personalizar con diferentes herramientas según las necesidades de un equipo. Esto permite a los equipos incorporar las herramientas que ya conocen y les gustan en una cadena de herramientas de DevOps más amplia. Por ejemplo, un equipo puede usar Jira para la planificación y el seguimiento del flujo de trabajo, Kubernetes para aprovisionar entornos de desarrollo individuales, GitHub para la programación colaborativa y Jenkins para la integración continua, entre otras. Las organizaciones pueden personalizar sus flujos de trabajo por equipos y/o proyectos.
La integración es fundamental para este tipo de cadenas de herramientas. Si las distintas herramientas no se integran, los miembros del equipo dedican tiempo innecesario a cambiar de pantalla o a iniciar sesión en varios lugares, y puede resultar complicado compartir información entre herramientas. No es una buena experiencia para desarrolladores ni para usuarios que busquen información de contexto. Si estás respondiendo ante un incidente, no tienes tiempo de consultar un manual ni de buscar información clave sobre una nueva herramienta.
Conclusión
DevOps trata de eliminar los grupos aislados y hacer que el ciclo de vida del desarrollo sea más rápido, altamente automatizado y colaborativo, ya sea entre departamentos o dentro de un mismo equipo. Para elegir las herramientas de DevOps adecuadas y que funcionen en conjunto, es esencial analizar al detalle tu proceso actual de desarrollo de software y operaciones de TI, y decidir qué debe mejorar.
Más información sobre las herramientas para cada etapa del ciclo de vida de DevOps.
Compartir este artículo
Tema siguiente
Lecturas recomendadas
Consulta estos recursos para conocer los tipos de equipos de DevOps o para estar al tanto de las novedades sobre DevOps en Atlassian.