En aquest tema, aprendrem a configurar una pipeline de lliurament continu (CD) amb Jenkins. El lliurament continu és una pràctica de desenvolupament de programari on els canvis de codi es construeixen, es proven i es despleguen automàticament a un entorn de producció. Això permet als equips de desenvolupament lliurar programari de manera més ràpida i fiable.

Objectius del Tema

  • Entendre els conceptes bàsics del lliurament continu.
  • Configurar una pipeline de CD a Jenkins.
  • Integrar la pipeline amb eines de desplegament.
  • Automatitzar el procés de desplegament.

Conceptes Bàsics del Lliurament Continu

Abans de començar amb la configuració, és important entendre alguns conceptes clau:

  • Lliurament Continu (CD): És la pràctica de mantenir el codi en un estat que es pot desplegar en qualsevol moment. Això implica que el codi es construeix, es prova i es desplega automàticament.
  • Pipeline de CD: És una seqüència d'etapes que automatitzen el procés de desplegament del codi a un entorn de producció.

Configurant una Pipeline de CD a Jenkins

Pas 1: Crear una Nova Pipeline

  1. Accedeix al Tauler de Jenkins: Inicia sessió al teu servidor Jenkins.
  2. Crea una Nova Feina: Fes clic a "New Item" (Nou Element) i selecciona "Pipeline". Dona-li un nom a la teva pipeline, per exemple, CD-Pipeline.

Pas 2: Definir la Pipeline

A la configuració de la pipeline, defineix les etapes necessàries per al desplegament continu. Utilitzarem una pipeline declarativa per a aquest exemple.

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Afegeix aquí els passos per construir el teu projecte
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Afegeix aquí els passos per provar el teu projecte
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                // Afegeix aquí els passos per desplegar el teu projecte
            }
        }
    }
}

Pas 3: Integrar amb Eines de Desplegament

Per desplegar el codi, necessitem integrar la pipeline amb eines de desplegament com Docker, Kubernetes, o serveis de núvol com AWS, Azure, etc.

Exemple: Desplegament amb Docker

Si utilitzes Docker per desplegar la teva aplicació, pots afegir els passos de desplegament a la secció Deploy de la pipeline.

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Afegeix aquí els passos per construir el teu projecte
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Afegeix aquí els passos per provar el teu projecte
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                script {
                    // Construir la imatge Docker
                    sh 'docker build -t myapp:latest .'
                    // Pujar la imatge a un registre Docker
                    sh 'docker push myapp:latest'
                    // Desplegar la imatge a un entorn de producció
                    sh 'docker run -d -p 80:80 myapp:latest'
                }
            }
        }
    }
}

Pas 4: Automatitzar el Procés de Desplegament

Per assegurar que el desplegament es realitzi automàticament després de cada canvi de codi, pots configurar triggers a la pipeline. Per exemple, pots utilitzar un trigger basat en canvis a un repositori de control de versions com Git.

pipeline {
    agent any

    triggers {
        // Trigger basat en canvis a Git
        pollSCM('H/5 * * * *')
    }

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                // Afegeix aquí els passos per construir el teu projecte
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Afegeix aquí els passos per provar el teu projecte
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                script {
                    // Construir la imatge Docker
                    sh 'docker build -t myapp:latest .'
                    // Pujar la imatge a un registre Docker
                    sh 'docker push myapp:latest'
                    // Desplegar la imatge a un entorn de producció
                    sh 'docker run -d -p 80:80 myapp:latest'
                }
            }
        }
    }
}

Exercici Pràctic

Objectiu

Configurar una pipeline de CD que construeixi, provi i desplegui una aplicació simple utilitzant Docker.

Instruccions

  1. Crea una nova pipeline a Jenkins anomenada MyCDPipeline.
  2. Defineix les etapes de Build, Test i Deploy a la pipeline.
  3. Afegeix els passos necessaris per construir, provar i desplegar una aplicació Docker.
  4. Configura un trigger per automatitzar el desplegament després de cada canvi de codi.

Solució

pipeline {
    agent any

    triggers {
        pollSCM('H/5 * * * *')
    }

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                sh 'docker build -t myapp:latest .'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // Afegeix aquí els passos per provar el teu projecte
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                script {
                    sh 'docker push myapp:latest'
                    sh 'docker run -d -p 80:80 myapp:latest'
                }
            }
        }
    }
}

Resum

En aquest tema, hem après a configurar una pipeline de CD a Jenkins. Hem vist com definir les etapes de construcció, prova i desplegament, i com integrar la pipeline amb eines de desplegament com Docker. També hem après a automatitzar el procés de desplegament utilitzant triggers basats en canvis de codi. Amb aquests coneixements, estàs preparat per implementar pipelines de CD eficients i fiables per als teus projectes.

© Copyright 2024. Tots els drets reservats