Introducció

El Lliurament Continu (CD, per les seves sigles en anglès, Continuous Delivery) és una pràctica de desenvolupament de programari on els equips produeixen programari en curts cicles, assegurant que el programari pugui ser alliberat de manera fiable en qualsevol moment. L'objectiu és construir, provar i alliberar programari més ràpidament i amb més freqüència.

Objectius del Lliurament Continu

  1. Reduir el temps de lliurament: Minimitzar el temps entre la creació del codi i la seva posada en producció.
  2. Millorar la qualitat del programari: Mitjançant proves automatitzades i integració contínua, es redueixen els errors i es millora la qualitat del codi.
  3. Augmentar la freqüència de desplegament: Permetre desplegaments més freqüents i consistents.
  4. Facilitar la col·laboració: Millorar la comunicació i la col·laboració entre els equips de desenvolupament i operacions.

Components Clau del Lliurament Continu

  1. Pipeline de CD: Una sèrie d'etapes automatitzades que el codi ha de passar abans de ser alliberat en producció.
  2. Proves Automatitzades: Inclouen proves unitàries, d'integració, de regressió i proves de rendiment per assegurar la qualitat del codi.
  3. Infraestructura com a Codi (IaC): Utilitzar scripts per gestionar i aprovisionar la infraestructura, assegurant que els entorns siguin consistents i replicables.
  4. Monitorització i Feedback: Sistemes per monitoritzar el rendiment del programari en producció i obtenir feedback continu per millorar el procés.

Procés del Lliurament Continu

  1. Commit del Codi: Els desenvolupadors fan commits freqüents a un repositori de codi compartit.
  2. Construcció Automàtica: Cada commit desencadena una construcció automàtica del codi.
  3. Proves Automatitzades: El codi construït passa per una sèrie de proves automatitzades.
  4. Desplegament a Entorns de Prova: Si les proves són exitoses, el codi es desplega automàticament a entorns de prova.
  5. Aprovació Manual (opcional): En alguns casos, es pot requerir una aprovació manual abans del desplegament a producció.
  6. Desplegament a Producció: El codi es desplega automàticament a l'entorn de producció.
  7. Monitorització i Feedback: Es monitoritza el rendiment del codi en producció i es recull feedback per millorar el procés.

Eines Populars per al Lliurament Continu

Eina Descripció
Jenkins Una eina d'integració contínua i lliurament continu de codi obert.
GitLab CI/CD Una eina integrada en GitLab per a CI/CD.
CircleCI Una plataforma de CI/CD basada en núvol que suporta múltiples llenguatges.
Travis CI Una eina de CI/CD que s'integra amb GitHub.
Bamboo Una eina de CI/CD desenvolupada per Atlassian.

Exemple Pràctic: Pipeline de CD amb Jenkins

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                sh 'mvn clean package'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                sh 'mvn test'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                sh 'scp target/myapp.jar user@server:/path/to/deploy'
            }
        }
    }
}

Explicació del Codi

  • agent any: Indica que el pipeline pot executar-se en qualsevol agent disponible.
  • stage('Build'): Etapa de construcció on es neteja i empaqueta el projecte amb Maven.
  • stage('Test'): Etapa de proves on s'executen les proves del projecte amb Maven.
  • stage('Deploy'): Etapa de desplegament on es copia l'arxiu empaquetat al servidor de producció.

Exercici Pràctic

Configura un Pipeline de CD Bàsic

  1. Instal·la Jenkins: Si no tens Jenkins instal·lat, instal·la'l seguint les instruccions oficials.
  2. Crea un Nou Job: Crea un nou job de pipeline a Jenkins.
  3. Defineix el Pipeline: Utilitza el codi d'exemple anterior per definir el pipeline.
  4. Executa el Pipeline: Fes un commit al teu repositori i observa com Jenkins construeix, prova i desplega el teu codi.

Solució

Segueix els passos detallats a l'exercici pràctic per configurar i executar el teu pipeline de CD amb Jenkins.

Conclusió

El Lliurament Continu és una pràctica essencial en DevOps que permet als equips alliberar programari de manera ràpida, fiable i freqüent. Mitjançant l'automatització de la construcció, proves i desplegament, es millora la qualitat del programari i es redueix el temps de lliurament. En el proper tema, explorarem les diferències entre Integració Contínua (CI) i Lliurament Continu (CD).

© Copyright 2024. Tots els drets reservats