DevOps

¿Qué es la metodología DevOps y cómo implementarla en mi empresa?

Por Ignacia Córdova

Uno de los mayores problemas que tenían los sitios web masivos como Google y Flickr en los años 2000 era que debían seguir funcionando de forma estable cuando se lanzaban nuevos códigos a la fase de producción. Para esto se generó un puesto de trabajo llamado “Software Reliability Engineer” o Ingenieros de Fiabilidad de Software. Estos ingenieros pertenecientes al área de operaciones eran los responsables de trabajar con los desarrolladores para lograr que estos sitios web estuvieran siempre disponibles. Este fue uno de los primeros pasos para que se creara la metodología DevOps, pero no fue hasta 2009 que John Allspaw y Paul Hammond, ingenieros de Flickr, realizaron la presentación “Más de 10 Deploys al día: la cooperación entre las áreas de desarrollo y operaciones” en la reunión anual de resultados de la empresa. Esta presentación consistía en dar a conocer su propia e innovadora metodología llamada DevOps. 

¿Qué es DevOps?

DevOps surge de mezclar los términos “Development” y “Operations”, o “Desarrollo” y “Operaciones”; y se basa en unir los procesos, las personas y la tecnología de estas áreas para evitar problemas de continuidad, como detenciones innecesarias del desarrollo o falta de información para seguir trabajando, con el fin de ofrecer nuevo valor a los clientes constantemente. Sin la metodología DevOps existían cargos en las áreas de desarrollo, operaciones, calidad y seguridad que estaban aislados y no conversaban entre ellos, lo que ocasionaba serios problemas de organización y aumento en los tiempos de generación de productos. Esta estrategía permite coordinación y colaboración para que el servicio se entregue al usuario de la mejor manera posible, otorgando calidad y confiabilidad. Con la ayuda de la cultura DevOps, y sus prácticas y herramientas, los productos finales tienen la capacidad de satisfacer mejor las necesidades del cliente y aumentar la confianza que ellos tienen hacia este, y así, la empresa puede cumplir sus objetivos en menor tiempo. 

Ventajas

Algunas de las ventajas de utilizar el sistema DevOps son las siguientes:

  • Alta frecuencia de lanzamiento: Los productos se entregan de forma más rápida y con mayor calidad, disminuyendo el time-to-market o plazo de lanzamiento.
  • Aumento de la productividad: Los problemas tienen menor complejidad y, por ende, se resuelven en menor tiempo.
  • Adaptación al mercado y a la competencia: Existe una mejor escalabilidad y disponibilidad para competir en el mercado.
  • Aumento de la seguridad del sistema: Al automatizar completamente los testeos de seguridad y cumplimiento, los desarrolladores pueden validar y demostrar mediante algún tipo de registro que los requisitos han sido cumplidos.
  • Mantenimiento de la estabilidad y la confiabilidad del sistema: Se forman entornos de funcionamiento más estables al reducir los “temidos” pasos de producción y existe una mejor utilización de los recursos disponibles en la empresa. 
Ciclo de vida de desarrollo de software propuesto por el método DevOps. Fuente: dynatrace.com

¿Cómo aplicar DevOps?

Para lograr aplicar DevOps en tu empresa hay varios métodos disponibles. La programación Agile se asocia a aumentar la capacidad de respuesta a los cambios de requerimientos y necesidades mediante reuniones diarias para saber el estado de los proyectos, y una comunicación continúa con el cliente, con el fin de conocer sus opiniones y requisitos. Se fundamenta en ciclos de desarrollo más cortos que otros métodos tradicionales como el desarrollo en cascada. Una forma popular de implementar procesos ágiles es Scrum, método en el cual un equipo colabora para acelerar el desarrollo y el control de calidad. Se basa en flujos de trabajo y roles asignados. Algunos de los términos que puedes encontrar al investigar sobre esto son: Sprints, time blocks, Scrum Master y Product Owner. Otro, nacido en las fábricas de la importante automotriz Toyota, es Kanban. Esta metodología se basa en un tablero donde se controlan los proyectos de software mediante el estado en curso o “WIP” (work in progress). 

Objetivos

Mediante estos métodos se pueden lograr los 5 principales objetivos de DevOps: cultura, automatización, lean, medición y sharing (CALMS). Con el término Cultura nos referimos a que ambos equipos desean colaborar y entienden que los procesos funcionan de mejor forma con esta metodología. En cuanto a la Automatización, con ella logramos reproducir infraestructura con una menor cantidad de “bugs” o errores. Lean sugiere eliminar los desperdicios y mejorar continuamente para reducir las pérdidas. Es decir, todo aquello redundante supone una pérdida de tiempo y no aporta valor. Cuando utilizamos Medición podemos saber cuánto tiempo tardan nuestras metas en común en cumplirse mediante métricas, y el uso compartido o Sharing nos permite compartir mejores herramientas internas entre todos los equipos. Con estos objetivos en mente el trabajo de operaciones y de desarrollo se convierte en colaboración y optimización de tareas que antes podían ser manuales, estáticas o que tomaban mucho tiempo. 

El objetivo de DevOps no es solo fomentar la colaboración entre equipos y lograr cumplir las obligaciones de forma más rápida y eficiente, sino que también, uno de sus principales valores es tener un cliente satisfecho y prestar servicios en un menor tiempo sin errores o caídas. Con esto la empresa puede ofrecer una mejor calidad, seguridad y rapidez en sus productos mediante nuevas funcionalidades, actualizaciones o versiones de forma más frecuente. ¿Quieres saber más sobre estrategias de DevOps para implementarlas en tu empresa? Conversemos.