DevSecops Tech Series

Episodio 1: ¿qué es DevOps?

Por: Houssam Hammoudi

Antes de explicar DevSecops, es fundamental comprender qué es DevOps y cómo funciona.

DevOps reúne a dos grupos tradicionalmente opuestos, el grupo de desarrollo y el de operaciones. Cada uno de estos grupos tiene su filosofía y objetivos que se miden en diferentes métricas. Por ejemplo, el equipo de desarrollo tiene como objetivo tener lanzamientos de alta frecuencia que lleven correcciones y funciones a producción rápidamente. Sin embargo, el desempeño del equipo de operaciones se mide en función de la disponibilidad y estabilidad de esos sistemas.

Como se puede ver, estas dos filosofías chocan. Un grupo quiere que los cambios rápidos se apliquen a la producción y el otro grupo no quiere que los sistemas sean inestables, por lo que está en contra de los cambios rápidos.

Aunque estos dos equipos no están de acuerdo en muchas cosas, ambos están de acuerdo en que la competitividad empresarial se basa en la rapidez con la que pueden lanzar nuevos servicios, funciones de software al mercado y generar nuevas fuentes de ingresos. También comprenden que la reputación empresarial está relacionada con la estabilidad y la confiabilidad de estos servicios y características.

La adopción de la filosofía DevOps reconcilia estos dos objetivos y aporta muchos beneficios comerciales a la organización:

  • Velocidad de entrega rápida: las aplicaciones y características se están construyendo rápidamente.
  •  Calidad de entrega: las aplicaciones y la compilación del entorno son estables y están libres de errores.

 

DevOps modus operandi

Cinco pilares conforman la filosofía de DevOps: colaboración, automatización, integración continua, pruebas continuas, entrega continua y monitoreo continuo.

  • Colaboración: el equipo de operaciones y el equipo de desarrollo deben colaborar para comprender los requisitos de software y diseñar la infraestructura en consecuencia. Sin embargo, la colaboración no debe limitarse sólo a los equipos de desarrollo y operaciones; cualquier equipo involucrado en el proceso SDLC [GCGV(1] también debe colaborar.
  • Automatización: es uno de los pilares esenciales de DevOps. Los ingenieros de DevOps utilizan diferentes conjuntos de herramientas para ayudar a configurar los entornos y escalar la infraestructura para aprovechar al máximo los beneficios de la automatización. Además, la automatización aumenta la estabilidad y la velocidad de entrega al eliminar el tiempo perdido en tareas repetitivas y eliminar los errores humanos al realizar la configuración manual.
  • Integración continua (CI, por sus siglas en inglés): esta práctica de desarrollo se deriva de la metodología agile que abarca pruebas frecuentes en todo el proceso en lugar de probar solo al final del proyecto como lo hace la metodología en cascada. Este enfoque de integración continua permite a los equipos detectar errores más rápido que antes, y la integración se verifica mediante un proceso automatizado de construcción y prueba.
  • Pruebas continuas: son una práctica de desarrollo que consiste en ejecutar pruebas automatizadas como parte del SDLC. Esta tarea solía ser responsabilidad del equipo de garantía de calidad en el pasado; sin embargo, con más empresas que adoptan la filosofía de DevOps, se realizan pruebas continuas en cada paso del SDLC para medir y mitigar los riesgos comerciales. Como resultado, cualquier empresa debería poder identificar y comprender la solidez y estabilidad de cada versión candidata.
  • Entrega continua (CD, por sus siglas en inglés): esta práctica de desarrollo permite que los cambios de código se preparen automáticamente para ser lanzados al ensayo o producción en cualquier momento. Por lo tanto, la entrega continua va de la mano con la integración continua y se basa en la implementación de los cambios de código después de la etapa de compilación.
  • Monitoreo continuo: este enfoque es esencial para medir la estabilidad y disponibilidad del software. Es un aspecto fundamental de DevOps, que permite a los equipos pasar de reactivos a proactivos anticipando fallas, encontrando las causas raíz de los problemas rápidamente y minimizando el impacto para el usuario final.

DevOps aporta muchos beneficios a los equipos y organizaciones al aumentar las colaboraciones entre grupos, aumentar la velocidad y la calidad de la entrega de software y reducir los riesgos relacionados con el negocio. Todas estas cosas son geniales, pero ¿dónde está la seguridad en todo esto?