En aquest tema, aprendrem com configurar un pipeline de Lliurament Continu (CD) per automatitzar el procés de desplegament de codi des de l'entorn de desenvolupament fins a l'entorn de producció. Un pipeline de CD ben configurat permet desplegar canvis de manera ràpida i segura, minimitzant els errors humans i millorant la qualitat del programari.
Objectius d'Aprenentatge
- Comprendre els components clau d'un pipeline de CD.
- Configurar un pipeline de CD utilitzant una eina popular.
- Implementar pràctiques recomanades per assegurar un desplegament eficient i segur.
Components Clau d'un Pipeline de CD
Un pipeline de CD típic inclou els següents components:
- Control de Versions: Emmagatzema el codi font i permet la col·laboració entre desenvolupadors.
- Integració Contínua (CI): Compila i prova el codi automàticament cada vegada que es fan canvis.
- Desplegament Automatitzat: Desplega el codi a diferents entorns (staging, producció) de manera automatitzada.
- Proves de Desplegament: Executa proves per assegurar que el desplegament ha estat exitós.
- Monitorització i Feedback: Monitoritza el desplegament i proporciona feedback continu.
Configuració d'un Pipeline de CD amb Jenkins
Pas 1: Instal·lació de Jenkins
- Descarrega i instal·la Jenkins des del lloc oficial.
- Inicia Jenkins i accedeix a la interfície web a través de
http://localhost:8080
.
Pas 2: Configuració del Projecte
-
Crea un nou projecte:
- A la pàgina principal de Jenkins, selecciona "New Item".
- Dona un nom al projecte i selecciona "Pipeline".
-
Configura el repositori de codi:
- A la configuració del projecte, selecciona "Pipeline" i després "Pipeline script from SCM".
- Selecciona "Git" i introdueix l'URL del teu repositori.
Pas 3: Definició del Pipeline
-
Crea un fitxer
Jenkinsfile
al teu repositori amb el següent contingut bàsic:pipeline { agent any stages { stage('Build') { steps { echo 'Building...' // Afegeix aquí els passos per compilar el teu codi } } stage('Test') { steps { echo 'Testing...' // Afegeix aquí els passos per executar les proves } } stage('Deploy') { steps { echo 'Deploying...' // Afegeix aquí els passos per desplegar el codi } } } }
-
Personalitza el
Jenkinsfile
segons les necessitats del teu projecte:- Build: Afegeix els passos necessaris per compilar el teu codi.
- Test: Inclou les proves automatitzades que vols executar.
- Deploy: Defineix els passos per desplegar el codi a l'entorn desitjat.
Pas 4: Execució del Pipeline
-
Desa i executa el pipeline:
- Desa els canvis al
Jenkinsfile
i puja'l al teu repositori. - A la pàgina del projecte a Jenkins, selecciona "Build Now" per iniciar el pipeline.
- Desa els canvis al
-
Monitoritza l'execució:
- Observa els logs de cada etapa per assegurar-te que tot funciona correctament.
- Si hi ha errors, revisa els logs per identificar i solucionar els problemes.
Pràctiques Recomanades
- Automatitza totes les proves: Assegura't que totes les proves es poden executar de manera automatitzada.
- Utilitza entorns de staging: Desplega primer a un entorn de staging abans de producció per detectar possibles problemes.
- Implementa rollback: Configura mecanismes per revertir desplegaments fallits de manera ràpida.
- Monitoritza contínuament: Utilitza eines de monitorització per detectar problemes en temps real i rebre feedback continu.
Exercici Pràctic
Configura un Pipeline de CD amb Jenkins
- Crea un repositori de codi amb un projecte simple (pot ser un projecte web bàsic).
- Defineix un
Jenkinsfile
amb les etapes de build, test i deploy. - Configura Jenkins per executar el pipeline cada vegada que es faci un canvi al repositori.
- Executa el pipeline i assegura't que totes les etapes es completen correctament.
Solució
pipeline { agent any stages { stage('Build') { steps { echo 'Building...' sh 'make build' // Exemple de com compilar el codi } } stage('Test') { steps { echo 'Testing...' sh 'make test' // Exemple de com executar les proves } } stage('Deploy') { steps { echo 'Deploying...' sh 'make deploy' // Exemple de com desplegar el codi } } } }
Conclusió
En aquesta secció, hem après com configurar un pipeline de CD utilitzant Jenkins, una de les eines més populars en l'àmbit de DevOps. Hem vist els components clau d'un pipeline de CD, com definir un Jenkinsfile
i les pràctiques recomanades per assegurar un desplegament eficient i segur. Amb aquesta base, estàs preparat per implementar pipelines de CD en els teus projectes i millorar el procés de desplegament del teu programari.
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