Pipeline de integración continua

Información general

Icono framework
Tipo de recurso
Activo
Etiquetas

¿En qué consiste?

El pipeline de integración continua es el flujo de trabajo único para implementar y gestionar el proceso de integración continua (CI) en la Plataforma de CI/CD corporativa.

Un pipeline de integración continua es una práctica clave en el desarrollo de software que se utiliza para automatizar y simplificar el proceso de integración, pruebas y entrega de código a lo largo del ciclo de vida de desarrollo de una aplicación. El objetivo principal de un pipeline de integración continua es detectar y abordar problemas de manera temprana en el desarrollo de software, lo que mejora la calidad del código y acelera la entrega de software funcional y confiable. A continuación, se detallan algunos componentes adicionales con los que se interacciona y cómo funciona en general:

  • Control de Versiones: Un sistema de control de versiones, como Git, se utiliza para gestionar los cambios en el código fuente y colaborar de manera efectiva en un equipo de desarrollo.

  • Motor de Integración Continua: Se utiliza un motor de integración continua que automatiza una serie de tareas relacionadas con el ciclo de vida de sotfware (como construcción y pruebas).

  • Herramientas adicionales: Se utilizan herramientas adicionales (como SonarQube, Dependency-Check, etc), para realizar pruebas exhaustivas al software y obtener información de estado sobre la calidad del mismo, posibles vulnerabilidades identificadas en las dependencias utilizadas, etc.

CadenaUnica

CadenaUnica, es el pipeline de integración continua a utilizar en la Plataforma de CI/CD corporativa y se trata de un pipeline genérico que permite automatizar los procesos de construcción y validación de software, adaptándose a diferentes proyectos y tecnologías gracias a su diseño flexible y parametrizable.

Fases de CadenaUnica

Descarga código fuenteUmbral de CalidadInicialización yconfiguración deCadenaUnicaCompilación yconstrucciónartefactos>PruebasunitariasAnálisis estáticode códigoAnálisis dedependenciasPipeline CI: CadenaUnicaVerificación yconstrucciónde la imagenAnálisis dedependenciasDetección de secretosPruebas de mutación

 

Stacks tecnológicos soportados

La compatibilidad con los distintos proyectos se garantiza gracias al alineamiento de estos a la definición de los stacks tecnológicos (conjunto de frameworks, herramientas, lenguajes y normas que deben cumplir los distintos proyectos) soportados por CadenaUnica.

Actualmente es compatible con los siguientes stacks:

  • Java (maven)
  • PHP (composer)
  • NodeJS/Angular/React (npm builder)

El detalle de cada uno de ellos se describe en Stacks tecnológicos soportados en CadenaUnica.

Gestión de Stoppers

Para garantizar que todos los componentes software se construyen con unos mínimos de calidad, seguridad, cobertura de pruebas, etc, se deben superar unos umbrales mínimos en determinadas fases del pipeline. Estos umbrales mínimos y las fases en la que se verifican son:

  • Pruebas Unitarias
  • Pruebas de Mutación
  • Umbral de Calidad
  • Análisis de dependencias
  • Detección de secretos
  • Verificación y construcción Imagen

Hasta el momento, aunque estos umbrales no se cumpliesen, el pipeline no ha detenido la ejecución de la construcción, ya que se ha estado trabajando en un mecanismo para excepcionar la no superación de umbrales, algo que consideramos necesario por posibles necesidades puntuales de los distintos sistemas de información  y que está alineado con el Modelo de Calidad.

Con la entrada en producción de CadenaUnica 1.3.1, ya se dispone del mecanismo de gestión de ventanas de excepción, por lo que en breve, se iniciará el control estricto de superación de umbrales por fases.

Inicialmente, el pipeline NO se ejecutará en modo ESTRICTO (es decir, NO se detendrá  que superar los umbrales definidos en cada una de las fases que lo posean), sino que se dará un periodo para que los proyectos corrijan las no conformidades encontradas en cada fase.

Cuando el pipeline se ejecuta en MODO NO ESTRICTO, las fases que no han superado los umbrales se identifica en color AMARILLO.

Se deben revisar y realizar las acciones correctoras necesarias para que dichas fases no se muestren en AMARILLO, sino en VERDE (superada correctamente).

Con una antelación de, al menos, dos (2) semanas, se informará de la puesta en funcionamiento del MODO ESTRICTO del pipeline, es decir, que cualquier no superación de umbral supondrá una PARADA del pipeline, imposibilitando la continuación del proceso de CI, incluso imposibilitando los despliegues.

Como se ha comentado, existe un mecanismo de excepciones, que permite establecer “ventanas de excepción” (un periodo de tiempo definido, en el cuál, aunque el pipeline se ejecute en MODO ESTRICTO, y no se superen  los umbrales definidos, se continuará con la construcción del componente como si se estuviese ejecutando el pipeline en MODO NO ESTRICTO).

Para poder activar esta excepción a un componente, la Dirección del Proyecto deberá solicitarla a la Oficina de Impulso DevSecOps con la siguiente información:

  • Sistema de información al que pertenece el componente.

  • Componente a excepcionar. NO se permite excepcionar Sistemas de Información al completo, aunque en una misma petición, se pueden indicar varios componentes.

  • Fecha de inicio y fin de la ventana de excepción para cada componente a excepcionar.

  • Nombre , Apellidos e identificador LDAP del Directorio del proyecto que autoriza la excepción. La existencia del ticket, supone la autorización explicita del Directorio del Proyecto, por lo que siempre debe estar como persona afectada, en caso de que no lo cree el Director del Proyecto. Justificación de la excepción, por cada componente a excepcionar.  

Esta petición se realizará mediante solicitud a través de NAOS:

  • Operación: Realizar petición
  • Servicio: DSO - Impulso DevSecOps
  • Componente: Soporte de las herramientas de apoyo DevSecOps
  • Elemento: (Sin determinar)

En el asunto indicar ‘[SOLICITUD VENTANA EXCEPCION] Texto libre’.

¿A quién va dirigido?

El alcance de este activo se extiende a toda la ADA. Todo componente software desarrollado podrá solicitar su integración en la Plataforma de CI/CD corporativa y así hacer uso del pipeline de integración continua.

¿Cómo lo solicito?

Para solicitar el uso de la Plataforma CI/CD Corporativa se debe realizar a través del siguiente servicio de NAOS:

  • Operación: Realizar petición
  • Servicio: DSO - Impulso DevSecOps
  • Componente: Inclusión de un nuevo sistema/componente en circuito DevSecOps (CI/CD)
  • Elemento: (Sin determinar)

Necesito soporte

Se brindará soporte al personal técnico TIC de la ADA mediante solicitud a través de NAOS:

  • Operación: Realizar petición
  • Servicio: DSO - Impulso DevSecOps
  • Componente: Soporte de las herramientas de apoyo DevSecOps
  • Elemento: (Sin determinar)

Reglas y pautas

Existen una serie de normas obligatorias y/o recomendadas que deben cumplir los usuarios y sistemas de información que utilicen el pipeline de integración continua:

Versiones