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
- Reduir el temps de lliurament: Minimitzar el temps entre la creació del codi i la seva posada en producció.
- Millorar la qualitat del programari: Mitjançant proves automatitzades i integració contínua, es redueixen els errors i es millora la qualitat del codi.
- Augmentar la freqüència de desplegament: Permetre desplegaments més freqüents i consistents.
- Facilitar la col·laboració: Millorar la comunicació i la col·laboració entre els equips de desenvolupament i operacions.
Components Clau del Lliurament Continu
- Pipeline de CD: Una sèrie d'etapes automatitzades que el codi ha de passar abans de ser alliberat en producció.
- Proves Automatitzades: Inclouen proves unitàries, d'integració, de regressió i proves de rendiment per assegurar la qualitat del codi.
- Infraestructura com a Codi (IaC): Utilitzar scripts per gestionar i aprovisionar la infraestructura, assegurant que els entorns siguin consistents i replicables.
- 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
- Commit del Codi: Els desenvolupadors fan commits freqüents a un repositori de codi compartit.
- Construcció Automàtica: Cada commit desencadena una construcció automàtica del codi.
- Proves Automatitzades: El codi construït passa per una sèrie de proves automatitzades.
- Desplegament a Entorns de Prova: Si les proves són exitoses, el codi es desplega automàticament a entorns de prova.
- Aprovació Manual (opcional): En alguns casos, es pot requerir una aprovació manual abans del desplegament a producció.
- Desplegament a Producció: El codi es desplega automàticament a l'entorn de producció.
- 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
- Instal·la Jenkins: Si no tens Jenkins instal·lat, instal·la'l seguint les instruccions oficials.
- Crea un Nou Job: Crea un nou job de pipeline a Jenkins.
- Defineix el Pipeline: Utilitza el codi d'exemple anterior per definir el pipeline.
- 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).
Curs de DevOps Bàsic
Mòdul 1: Introducció a DevOps
- Què és DevOps?
- Història i evolució de DevOps
- Principis i beneficis de DevOps
- Cultura i mentalitat DevOps
Mòdul 2: Fonaments d'Integració Contínua (CI)
- Conceptes bàsics de CI
- Eines populars de CI
- Configuració d'un pipeline de CI
- Proves automatitzades en CI
Mòdul 3: Fonaments de Lliurament Continu (CD)
- Conceptes bàsics de CD
- Diferències entre CI i CD
- Eines populars de CD
- Configuració d'un pipeline de CD
Mòdul 4: Automatització de Desplegaments
- Introducció a l'automatització de desplegaments
- Eines d'automatització de desplegaments
- Desplegament continu (CD) vs. Lliurament continu (CD)
- Pràctiques recomanades per a l'automatització de desplegaments
Mòdul 5: Col·laboració entre Desenvolupament i Operacions
- Comunicació i col·laboració en equips DevOps
- Eines de col·laboració i gestió de projectes
- Integració de feedback continu
- Casos d'estudi i exemples d'èxit
Mòdul 6: Exercicis Pràctics i Projectes
- Configuració d'un entorn de CI/CD
- Automatització d'un pipeline de desplegament
- Implementació de proves automatitzades
- Projecte final: Implementació completa de CI/CD