Introducció

L'execució paral·lela en pipelines de Jenkins permet que múltiples tasques es realitzin simultàniament, millorant l'eficiència i reduint el temps total de construcció. Aquest enfocament és especialment útil quan es treballa amb proves que es poden executar en paral·lel o amb tasques que no depenen les unes de les altres.

Conceptes Clau

  • Etapes: Les etapes defineixen les diferents fases del pipeline.
  • Passos: Els passos són les accions individuals dins d'una etapa.
  • Blocs paral·lels: Permeten definir múltiples branques que s'executen simultàniament.

Exemples Pràctics

Exemple 1: Pipeline Declarativa amb Execució Paral·lela

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building...'
            }
        }
        stage('Test') {
            parallel {
                stage('Unit Tests') {
                    steps {
                        echo 'Running unit tests...'
                    }
                }
                stage('Integration Tests') {
                    steps {
                        echo 'Running integration tests...'
                    }
                }
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
            }
        }
    }
}

Explicació del Codi

  • stage('Build'): Defineix una etapa de construcció.
  • stage('Test'): Defineix una etapa de proves que conté un bloc paral·lel.
  • parallel: Dins de l'etapa de proves, es defineixen dues sub-etapes que s'executen simultàniament: 'Unit Tests' i 'Integration Tests'.
  • stage('Deploy'): Defineix una etapa de desplegament que s'executa després de les proves.

Exemple 2: Pipeline Scriptada amb Execució Paral·lela

node {
    stage('Build') {
        echo 'Building...'
    }
    stage('Test') {
        parallel(
            'Unit Tests': {
                echo 'Running unit tests...'
            },
            'Integration Tests': {
                echo 'Running integration tests...'
            }
        )
    }
    stage('Deploy') {
        echo 'Deploying...'
    }
}

Explicació del Codi

  • node: Defineix el node en el qual s'executarà el pipeline.
  • stage('Build'): Defineix una etapa de construcció.
  • stage('Test'): Defineix una etapa de proves que conté un bloc paral·lel.
  • parallel: Dins de l'etapa de proves, es defineixen dues tasques paral·leles: 'Unit Tests' i 'Integration Tests'.
  • stage('Deploy'): Defineix una etapa de desplegament que s'executa després de les proves.

Exercicis Pràctics

Exercici 1: Crear una Pipeline amb Execució Paral·lela

Objectiu: Crear una pipeline que construeixi el codi, executi proves unitàries i d'integració en paral·lel, i després desplegui l'aplicació.

Instruccions:

  1. Crea una nova pipeline en Jenkins.
  2. Defineix les etapes 'Build', 'Test' i 'Deploy'.
  3. Dins de l'etapa 'Test', crea sub-etapes per a 'Unit Tests' i 'Integration Tests' que s'executin en paral·lel.

Solució:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building...'
            }
        }
        stage('Test') {
            parallel {
                stage('Unit Tests') {
                    steps {
                        echo 'Running unit tests...'
                    }
                }
                stage('Integration Tests') {
                    steps {
                        echo 'Running integration tests...'
                    }
                }
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
            }
        }
    }
}

Errors Comuns i Consells

  • Error: Conflictes de Recursos: Si les tasques paral·leles accedeixen als mateixos recursos, poden sorgir conflictes. Assegura't que les tasques paral·leles siguin independents.
  • Consell: Monitorització: Utilitza les eines de monitorització de Jenkins per assegurar-te que les tasques paral·leles s'executen correctament i per identificar colls d'ampolla.

Conclusió

L'execució paral·lela en pipelines de Jenkins és una tècnica poderosa per millorar l'eficiència de les construccions. Mitjançant l'ús de blocs paral·lels, pots executar múltiples tasques simultàniament, reduint el temps total de construcció i millorant la productivitat. Practica amb els exemples i exercicis proporcionats per dominar aquesta tècnica i aplicar-la als teus propis projectes.

© Copyright 2024. Tots els drets reservats