Esta área se enfoca en la automatización de los procesos de construcción del software, las pruebas y su despliegue en los diferentes entornos. La automatización busca agilizar la entrega, reducir errores humanos y aumentar la frecuencia de las liberaciones.
1. Integración continua
La integración continua (CI) es una práctica de desarrollo de software en la que los desarrolladores integran su código en un repositorio compartido de manera frecuente. Este proceso ayuda a detectar errores y mejorar la calidad del software al permitir una gestión más eficiente del código y permitir pruebas automáticas.
Acciones
- Nivel 1:
- Integración continua con pipeline estándar (que realice la compilación, un análisis estático y ejecute las pruebas unitarias) sobre rama Develop.
- Integración continua con pipeline estándar (que realice la compilación, un análisis estático y ejecute las pruebas unitarias) sobre rama Main.
- Nivel 2:
- Integración continua con pipeline estándar (que realice la compilación, un análisis estático y ejecute las pruebas unitarias) sobre las ramas no principales adoptadas de acuerdo a la metodología.
- Análisis estático configurado en el pipeline. El resultado del Quality Gate se informa en el pipeline o lo deja inestable.
- Análisis en el pipeline de vulnerabilidades en artefactos externos o imágenes de contenedores. Con impacto (fallo/inestable) si se introducen nuevas vulnerabilidades
- El pipeline se impacta (falla/inestable) si no se alcanza el Quality Gate establecido
- Nivel 3:
- La definición del proceso IC está versionada y en el SCV. IC con enfoque as code (Jenkinsfile, yaml, etc)
- Pruebas unitarias automáticas integradas en el pipeline e impacto al no cumplir con el porcentaje de cobertura mínimo.
- Pruebas funcionales ejecutadas automáticamente integradas en el pipeline con impacto y visualización de resultados
2. Estrategia de ejecución del pipeline
Definir cómo se orquestan y ejecutan los diferentes pasos dentro de un pipeline de CI/CD (construcción, pruebas, análisis de seguridad, despliegue, etc.). Esto incluye la definición de los triggers, las etapas, los flujos de trabajo y las herramientas utilizadas en cada fase.
3. Entrega continua
Extiende la integración continua automatizando el proceso de preparación para la liberación del software a los entornos de desarrollo o prueba. Implica que el software está siempre en un estado potencialmente desplegable basado en las ramas de integración definidas.
4. Despliegue continuo
Va un paso más allá de la entrega continua, automatizando el despliegue del software a los entornos de producción después de que ha pasado por todas las etapas de pruebas y validaciones.
No comments:
Post a Comment