Curso · Tema 2 · Lección 18 de 19

DevOps y DevSecOps

Cómo cambia la gestión de un proyecto cuando desarrollo y operación se organizan como un flujo continuo y automatizado, cómo se mide ese flujo (DORA), y cómo se integra la seguridad en cada paso en vez de dejarla para el final.

Lo que vas a ser capaz de hacer al terminar
  • Definir DevOps como forma de organizar desarrollo y operación (no una herramienta ni un puesto), y recorrer su ciclo.
  • Distinguir integración continua, entrega continua y despliegue continuo; explicar IaC y observabilidad.
  • Usar las métricas DORA e interpretarlas, y explicar qué cambia en la gestión del proyecto.
  • Explicar DevSecOps (shift left, automatización, colaboración) y situar SAST, DAST, SCA, IAST, gestión de secretos y escaneo de IaC en el ciclo.
Por qué importa para el examen

Tema 2, diap. 89-100. Objetivo del tema: "conocer los ciclos de DevOps y DevSecOps y aplicarlos en un proyecto real". Preguntas probables: emparejar herramientas con su categoría (SAST/DAST/SCA), las cuatro métricas DORA, "¿qué es shift left?", "¿qué diferencia hay entre entrega y despliegue continuo?", "DevOps vs. gestión tradicional". Ampliación: CALMS, la quinta métrica DORA actual, IAST, SBOM.

1. Qué es DevOps

DevOps = desarrollo + operaciones. Sus ideas, según las diapositivas:Tema 2, diap. 90. Kim, Humble, Debois y Willis (2016), The DevOps Handbook.

DevOps no es una herramienta ni un puesto de trabajo: es una forma de organizar el desarrollo y la operación como un flujo continuo.

El problema que resuelve: tradicionalmente, desarrollo quería cambiar (sacar funcionalidades) y operación quería estabilidad (que nada cambie para que nada se rompa). Desarrollo "tiraba el software por encima del muro" y operación sufría las consecuencias. Las entregas eran grandes, poco frecuentes y arriesgadas. DevOps rompe el muro: el mismo equipo (o equipos que colaboran de verdad) es responsable de construir y de operar ("you build it, you run it").

Un marco útil para recordar sus pilares (ampliación) es CALMS: Cultura (responsabilidad compartida, sin culpables), Automatización, Lean (flujo, lotes pequeños, eliminar esperas), Medición (DORA), Sharing (compartir conocimiento).Ampliación. CALMS: Jez Humble, a partir de CAMS de Damon Edwards y John Willis. Fíjate en que la C va primero: comprar herramientas sin cambiar la cultura no es DevOps.

2. El ciclo DevOps

El famoso "infinito" de la diap. 91: la mitad Dev y la mitad Ops enlazadas por un bucle de feedback.Tema 2, diap. 91.

FaseQué pasaTusBus
PlanIdeas → backlogPriorizar "avisos de incidencias" en el backlog
CodeDesarrollar → commitRama corta, PR con revisión
BuildCompilar → empaquetarEl pipeline construye la app y la imagen del backend
TestAutomatizar → validarPruebas unitarias, de integración, SAST
ReleaseBuild → desplegableVersión 1.4.0 lista y firmada
DeployAutomatizar → enviarDespliegue al 5 % de usuarios primero
OperateEjecutar → dar soporteEl backend atiende a los usuarios en hora punta
MonitorObservar → detectarAlertas si la latencia del cálculo de llegada supera 300 ms
FeedbackAprender → mejorarLos datos de uso muestran que nadie usa "favoritos": vuelve a Plan

Fíjate: es un PDCA (lección 11) que gira muy rápido, en días u horas en vez de meses.

Las cuatro prácticas técnicas

Automatización + integración continua + entrega continua, más:Tema 2, diap. 92. Humble y Farley (2010), Continuous Delivery.

3. DevOps y la gestión del proyecto

DevOps cambia la forma de gestionar el proyecto:Tema 2, diap. 93.

Gestión tradicionalDevOps
Entrega al finalEntrega frecuente
Desarrollo → OperacionesDesarrollo + Operaciones
Pruebas tardíasPruebas automatizadas continuas
Cambios controlados por fasesFeedback continuo
Estado del proyectoEstado del producto en producción
Métricas de actividadMétricas de flujo y entrega

Consecuencias para lo que has visto en el curso:

Las métricas DORA

El programa de investigación DORA (DevOps Research and Assessment), resumido en el libro Accelerate, identificó cuatro métricas que predicen el rendimiento de entrega de software:Tema 2, diap. 93. Forsgren, Humble y Kim (2018), Accelerate. dora.dev.

MétricaQué mideTipoMejor si…
Deployment Frequency · frecuencia de despliegueCada cuánto se despliega a producciónVelocidadMás frecuente
Lead Time for Changes · tiempo de entrega de un cambioTiempo desde el commit hasta que está en producciónVelocidadMás corto
Change Failure Rate · tasa de fallo de cambios% de despliegues que provocan un fallo que requiere intervención (rollback, hotfix)EstabilidadMás baja
Time to Restore · tiempo de recuperaciónCuánto se tarda en recuperar el servicio tras un falloEstabilidadMás corto
Change Failure Rate = despliegues que fallan / despliegues totales Ej.: 40 despliegues en el mes, 6 requirieron rollback o hotfix → CFR = 6/40 = 15 %

El hallazgo clave de la investigación: velocidad y estabilidad no son un trade-off. Los equipos de mejor rendimiento son a la vez los más rápidos y los más estables, porque desplegar a menudo obliga a lotes pequeños, automatización y recuperación rápida. El objetivo, en palabras de las diapositivas: entregar cambios rápidamente sin sacrificar estabilidad ni calidad.

Y una advertencia esencial: medir para mejorar el flujo, no para medir a las personas. Si las métricas se usan para evaluar o comparar individuos, se manipulan (desplegar cambios triviales para subir la frecuencia) y dejan de servir (ley de Goodhart: "cuando una medida se convierte en objetivo, deja de ser una buena medida").

Nota de actualización (ampliación): dora.dev lista hoy cinco métricas, agrupadas en rendimiento (throughput: lead time, frecuencia de despliegue, tiempo de recuperación de un despliegue fallido) e inestabilidad (tasa de fallo de cambios y la nueva tasa de retrabajo de despliegues, despliegues no planificados para arreglar incidentes). Para el examen, usa las cuatro de las diapositivas.

4. DevSecOps

DevSecOps es la integración proactiva de la seguridad en el flujo de trabajo de DevOps, de modo que las actividades de seguridad sean componentes intrínsecos (no fases separadas) del ciclo de vida del software.Tema 2, diap. 94. Tres principios:

Y su relación con CI/CD: CI automatiza la construcción y las pruebas del código (ahí entran SAST, SCA, secretos); CD automatiza el despliegue en entornos de prueba y producción (ahí entran DAST, escaneo de configuración, y los gates que bloquean).

La seguridad en cada fase del ciclo

Las diapositivas muestran dos versiones del ciclo con controles de seguridad en cada fase: la del Departamento de Defensa de EE. UU. y la del propio profesor (UMA).Tema 2, diap. 95-96. Reorganizado por fases:

FaseActividades de seguridad (diap. 96)
PlanificaciónObjetivos y requisitos de seguridad
DiseñoModelado y diseño de seguridad (threat modeling), patrones de seguridad, validación del diseño
DesarrolloProgramación segura, estándares de código, revisiones de código, SAST, escaneo de vulnerabilidades
Integración / pruebasPruebas de seguridad, pruebas de integración, DAST, pentesting
Entrega y despliegueEntrega segura, seguridad de configuración, IAST, plan de contingencia
Operación y monitorizaciónSeguridad de uso, monitorización de seguridad, diagnosis, auditoría de seguridad, reconfiguración dinámica, actualizaciones de seguridad

Tipos de herramientas

TipoQué analizaCuándoEjemplos (diap. 97)
SAST · Static Application Security TestingEl código fuente sin ejecutarlo ("caja blanca"): inyección SQL, XSS, malas prácticasAl escribir código, en cada PRSonarQube, Checkmarx
SCA · Software Composition AnalysisLas dependencias de terceros: vulnerabilidades conocidas (CVE) y licenciasEn cada build; continuamenteSnyk, Dependabot
DAST · Dynamic Application Security TestingLa aplicación en ejecución, desde fuera ("caja negra"), atacándola como lo haría un atacanteEn un entorno de pruebas desplegadoOWASP ZAP, Nessus
IAST · Interactive ASTLa aplicación en ejecución instrumentada por dentro mientras se prueba (combina SAST y DAST)Durante las pruebas funcionales—
Gestión de secretosGuardar claves y contraseñas fuera del código, con acceso controlado y rotaciónSiempreHashiCorp Vault, AWS Secrets Manager
IaC + escaneoInfraestructura como código y su análisis de configuraciones insegurasAl cambiar la infraestructuraTerraform + Terrascan
PentestingPrueba de intrusión manual por expertosAntes de hitos importantes, periódicamente—

Cómo distinguir SAST y DAST en una pregunta: SAST = Static = código, sin ejecutar, temprano (izquierda). DAST = Dynamic = aplicación ejecutándose, más tarde (derecha). Se complementan: SAST encuentra el fallo en la línea de código pero da falsos positivos; DAST confirma que es explotable pero no dice dónde está en el código. SCA es distinta: no mira tu código, sino el de otros que usas (supply chain, lección 12). Un complemento natural de la SCA es el SBOM (Software Bill of Materials): el inventario de componentes que el temario de riesgos pide mantener.

Un ejemplo sencillo

El de las diapositivas, una aplicación web con una vulnerabilidad XSS (Cross-Site Scripting):Tema 2, diap. 98.

  1. SAST detecta el fallo durante el pull request.
  2. El desarrollador corrige el código.
  3. El flujo CI/CD bloquea el despliegue hasta que se resuelve (un gate).

Resultado: la vulnerabilidad se mitiga en minutos y no llega a producción. Compáralo con el modelo antiguo: un pentest semanas después del despliegue, un informe, un parche urgente, quizá una brecha y una notificación en 72 horas (RGPD, lección 17).

Beneficios

Según las diapositivas:Tema 2, diap. 99. Fuente citada: GitHub · DevSecOps.

5. Conclusiones

Las tres ideas con las que cierran las diapositivas:Tema 2, diap. 100.

  1. DevOps no es un proceso como tal, sino una forma de organizar el desarrollo y la operación como un flujo continuo.
  2. DevSecOps no es "DevOps + unos escáneres de seguridad", sino una cultura de seguridad continua que busca proteger sin frenar la innovación.
  3. DevOps y DevSecOps no sustituyen a otras metodologías de análisis, diseño, modelado, etc., sino que las integran en el ciclo de desarrollo. (Sigues necesitando requisitos, arquitectura, ADRs, gestión de riesgos… todo lo del curso.)

Referencias para implantarlo de forma gradual: OWASP DevSecOps Maturity Model (DSOMM), NIST SP 800-204 (seguridad en arquitecturas de microservicios y sus pipelines CI/CD) y BSIMM (modelo de madurez basado en lo que hacen realmente las empresas).

Trampas típicas
  • "DevOps es un puesto de trabajo / una herramienta": es una forma de organizar el trabajo (cultura + prácticas).
  • "Entrega continua = despliegue continuo": en la entrega, el paso a producción es una decisión; en el despliegue, automático.
  • "SAST analiza la aplicación en ejecución": eso es DAST; SAST analiza el código fuente.
  • "SCA analiza nuestro código": analiza las dependencias de terceros.
  • "Más velocidad implica menos estabilidad": DORA muestra que los mejores equipos tienen ambas.
  • "Las métricas DORA sirven para evaluar a cada desarrollador": miden el flujo del equipo, no personas.
  • "DevSecOps = añadir un escáner al pipeline": es una cultura de seguridad continua.
  • "DevOps sustituye al análisis y al diseño": los integra.

Práctica

Empareja cada herramienta con su categoría (según la diap. 97).

  • SonarQube
  • Dependabot
  • OWASP ZAP
  • HashiCorp Vault
  • Snyk
  • Terraform
SAST: SonarQube, Checkmarx. SCA: Snyk, Dependabot. DAST: OWASP ZAP, Nessus. Secretos: Vault, AWS Secrets Manager. IaC: Terraform (+ Terrascan para escanearla).

¿Qué tipo de análisis detecta cada problema?

  • Una consulta SQL construida concatenando texto del usuario, en el código fuente
  • Una biblioteca de logging con una vulnerabilidad conocida (CVE)
  • La web desplegada en pruebas responde a un ataque XSS enviado desde fuera
  • Una dependencia con licencia GPL incompatible con el producto
SAST = código propio sin ejecutar. SCA = dependencias de terceros (vulnerabilidades y licencias). DAST = aplicación en ejecución atacada desde fuera.

Clasifica cada métrica DORA.

  • Deployment Frequency
  • Lead Time for Changes
  • Change Failure Rate
  • Time to Restore
Frecuencia y lead time miden la velocidad de entrega; tasa de fallo y tiempo de recuperación, la estabilidad. Los mejores equipos destacan en las cuatro a la vez.

En un mes, el equipo de TusBus hizo 48 despliegues; 6 de ellos requirieron rollback o un hotfix urgente. ¿Cuál es la tasa de fallo de cambios?

6 / 48 = 0,125 = 12,5 %.

En TusBus, cada cambio que pasa todas las pruebas queda listo para producción, pero el concejal decide cuándo publicarlo (p. ej., esperar a la feria). ¿Qué práctica es?

  1. Integración continua sin entrega continua
  2. Entrega continua sin despliegue continuo
  3. Despliegue continuo con aprobación previa
  4. Infraestructura como código automatizada
Entrega continua: siempre preparado para entregar; el paso a producción es una decisión humana/de negocio. Despliegue continuo: llega a producción automáticamente.

¿Qué significa "shift left" en DevSecOps?

  1. Pasar la responsabilidad de seguridad del equipo de desarrollo al de operaciones
  2. Retrasar las pruebas de seguridad hasta tener la aplicación desplegada
  3. Incorporar la seguridad desde el diseño y el desarrollo temprano
  4. Reducir el número de controles de seguridad para entregar más rápido
"Izquierda" = fases tempranas del ciclo. Detectar antes es más barato (coste del error creciente).

¿Qué cambios introduce DevOps en la gestión del proyecto según el temario?

  1. De entrega al final a entrega frecuente
  2. De pruebas tardías a pruebas automatizadas continuas
  3. De métricas de flujo a métricas de actividad
  4. Del estado del proyecto al estado del producto en producción
  5. De desarrollo y operaciones juntos a fases separadas
Al revés en (c) y (e): DevOps pasa de métricas de actividad a métricas de flujo, y de "desarrollo → operaciones" a "desarrollo + operaciones".

Verdadero o falso: "Según la investigación DORA, para ganar estabilidad hay que desplegar con menos frecuencia".

  1. Verdadero
  2. Falso
Falso: velocidad y estabilidad no son un trade-off. Desplegar a menudo, en lotes pequeños y automatizados, reduce el impacto y el tiempo de recuperación.

Un directivo propone: "Para implantar DevSecOps compramos SonarQube y Snyk, los ponemos en el pipeline y ya está". ¿Qué le contestarías usando las conclusiones del temario?

Las herramientas ayudan, pero DevSecOps no es "DevOps + unos escáneres": es una cultura de seguridad continua. Hace falta shift left real (requisitos y threat modeling desde el diseño, programación segura, formación), colaboración entre desarrollo, operaciones y seguridad (no un equipo que aprueba al final), gates que de verdad bloqueen y alguien que gestione los hallazgos como riesgos (priorizar por exposición, no una lista interminable de avisos), además de DAST, gestión de secretos, seguridad de configuración y monitorización en operación. Y no sustituye al análisis y diseño: los integra. Conviene implantarlo de forma gradual (p. ej., OWASP DSOMM).

Repaso espaciado · lecciones 13, 15, 17

Tener un rollback automatizado preparado por si un despliegue falla es…

  1. Una mitigación
  2. Una contingencia
  3. Una transferencia
  4. Una evitación
Se actúa si el evento ocurre: contingencia. Desplegar en pequeños incrementos sería mitigación (reduce el impacto antes).

Un pipeline que bloquea el despliegue si falla el análisis de seguridad, y guarda el informe como evidencia, es un ejemplo de…

  1. Burocracia excesiva
  2. Gestión de personas
  3. Gobernanza en DevOps
  4. Planificación gradual
Controles automatizados + evidencias generadas automáticamente: la gobernanza integrada en el flujo (diap. 87).

Para profundizar

Fuente principal recomendada

dora.dev · DORA metrics (fuente primaria de las métricas). Forsgren, Humble y Kim (2018), Accelerate, caps. 1-2. Para DevSecOps: OWASP DevSecOps Maturity Model y la OWASP DevSecOps Guideline.

¿Dudas?

Si tu proyecto de prácticas está en GitHub, activa Dependabot y una acción de análisis estático y mira qué encuentran: es la forma más rápida de entender SCA y SAST. Pide a un asistente que te explique cada aviso y si es explotable.

Resúmenes imprimibles: Tema 2 · Glosario.