Objectiu del Projecte

L'objectiu d'aquest projecte final és aplicar tots els coneixements adquirits al llarg del curs per configurar i implementar un pipeline complet de CI/CD. Aquest projecte inclou la configuració d'un entorn de desenvolupament, la integració contínua, el lliurament continu i l'automatització de desplegaments. Al final del projecte, hauràs creat un pipeline funcional que automatitza tot el procés des del codi fins a la producció.

Requisits del Projecte

Abans de començar, assegura't de tenir els següents requisits:

  • Un repositori de codi font (per exemple, GitHub, GitLab).
  • Accés a una eina de CI/CD (per exemple, Jenkins, GitLab CI, CircleCI).
  • Un entorn de desplegament (per exemple, un servidor de proves o un servei de núvol com AWS, Azure o GCP).
  • Coneixement bàsic de scripts de shell i configuració de servidors.

Passos del Projecte

  1. Configuració del Repositori de Codi

  1. Crea un repositori nou en la teva plataforma de control de versions preferida (GitHub, GitLab, etc.).
  2. Afegeix el codi font del teu projecte al repositori. Pots utilitzar un projecte existent o crear un projecte nou.
  3. Configura les branques. Per a aquest projecte, utilitzarem dues branques principals: main (producció) i develop (desenvolupament).

  1. Configuració del Pipeline de CI

  1. Selecciona una eina de CI. Per a aquest exemple, utilitzarem Jenkins.
  2. Instal·la Jenkins en el teu servidor o utilitza una instància de Jenkins en el núvol.
  3. Crea un nou treball (job) en Jenkins per al teu projecte.
  4. Configura el treball per executar-se automàticament quan hi hagi canvis en la branca develop.
  5. Afegeix passos de construcció per compilar el codi, executar proves unitàries i generar artefactes (per exemple, fitxers .jar, .war, etc.).

Exemple de Configuració de Jenkinsfile

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                sh 'mvn clean install'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
        stage('Package') {
            steps {
                sh 'mvn package'
            }
        }
    }

    post {
        always {
            junit '**/target/surefire-reports/*.xml'
            archiveArtifacts artifacts: '**/target/*.jar', allowEmptyArchive: true
        }
    }
}

  1. Configuració del Pipeline de CD

  1. Configura un entorn de desplegament. Això pot ser un servidor de proves o un servei de núvol.
  2. Afegeix un nou treball (job) en Jenkins per al desplegament.
  3. Configura el treball per executar-se automàticament quan hi hagi canvis en la branca main.
  4. Afegeix passos de desplegament per transferir els artefactes generats al servidor de producció i iniciar l'aplicació.

Exemple de Configuració de Desplegament en Jenkinsfile

pipeline {
    agent any

    stages {
        stage('Deploy') {
            steps {
                sshagent(['deploy-key']) {
                    sh 'scp target/*.jar user@server:/path/to/deploy'
                    sh 'ssh user@server "cd /path/to/deploy && java -jar *.jar"'
                }
            }
        }
    }
}

  1. Automatització de Proves

  1. Afegeix proves automatitzades al teu projecte. Això pot incloure proves unitàries, proves d'integració i proves de sistema.
  2. Configura el pipeline de CI per executar aquestes proves automàticament després de cada construcció.

  1. Validació i Proves Finals

  1. Realitza canvis en la branca develop i verifica que el pipeline de CI s'executa correctament.
  2. Fusiona els canvis a la branca main i verifica que el pipeline de CD s'executa correctament.
  3. Prova l'aplicació en l'entorn de producció per assegurar-te que tot funciona com s'espera.

Exercici Pràctic

  1. Configura un pipeline complet de CI/CD per al teu projecte seguint els passos anteriors.
  2. Documenta el procés i els resultats obtinguts.
  3. Presenta el teu projecte amb una demostració del pipeline en funcionament.

Solució Exemple

Documentació del Procés

  1. Repositori de Codi: Enllaç al repositori
  2. Pipeline de CI: Configurat amb Jenkins, inclou passos de construcció, proves i empaquetat.
  3. Pipeline de CD: Configurat amb Jenkins, inclou passos de desplegament al servidor de producció.
  4. Proves Automatitzades: Inclou proves unitàries i d'integració.

Resultats Obtinguts

  • Pipeline de CI: S'executa correctament després de cada canvi en la branca develop.
  • Pipeline de CD: S'executa correctament després de cada canvi en la branca main.
  • Aplicació en Producció: Funciona correctament després del desplegament automatitzat.

Conclusió

En aquest projecte final, has aplicat tots els conceptes i habilitats apresos al llarg del curs per configurar i implementar un pipeline complet de CI/CD. Aquest projecte t'ha permès veure com totes les peces encaixen juntes per automatitzar el procés de desenvolupament i desplegament, millorant així l'eficiència i la qualitat del teu treball.

© Copyright 2024. Tots els drets reservats