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
- Accedeix al Tauler de Jenkins: Inicia sessió al teu servidor Jenkins.
- 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
- Crea una nova pipeline a Jenkins anomenada
MyCDPipeline
. - Defineix les etapes de
Build
,Test
iDeploy
a la pipeline. - Afegeix els passos necessaris per construir, provar i desplegar una aplicació Docker.
- 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.
Jenkins: De Principiant a Avançat
Mòdul 1: Introducció a Jenkins
Mòdul 2: Conceptes Bàsics de Jenkins
- Visió General del Tauler de Jenkins
- Creant i Executant Feines
- Entenent les Pipelines de Jenkins
- Utilitzant Plugins de Jenkins
Mòdul 3: Pipelines de Jenkins
- Pipeline com a Codi
- Pipelines Declaratives vs Scriptades
- Creant una Pipeline Simple
- Sintaxi de Pipeline
Mòdul 4: Pipelines Avançades de Jenkins
- Etapes i Passos de Pipeline
- Execució Paral·lela en Pipelines
- Utilitzant Variables d'Entorn
- Millors Pràctiques de Pipeline
Mòdul 5: Administració de Jenkins
- Gestionant Nodes de Jenkins
- Configurant la Seguretat
- Còpia de Seguretat i Restauració de Jenkins
- Monitorant Jenkins
Mòdul 6: Integrant Jenkins
- Integració amb Sistemes de Control de Versions
- Integració amb Eines de Compilació
- Integració amb Eines de Prova
- Integració amb Eines de Desplegament
Mòdul 7: Jenkins per a la Integració i el Lliurament Continu (CI/CD)
- Entenent CI/CD
- Configurant una Pipeline de CI
- Configurant una Pipeline de CD
- Automatitzant Desplegaments
Mòdul 8: Temes Avançats de Jenkins
- Utilitzant Jenkins amb Docker
- Jenkins i Kubernetes
- Jenkins com a Codi amb Jenkinsfile
- Escalant Jenkins