Salta el contingut

Introducció a CI/CD i Conceptes Fonamentals

1. Introducció a CI/CD

Què és CI/CD?

CI/CD són les sigles de Continuous Integration (Integració Contínua) i Continuous Delivery/Deployment (Lliurament/Desplegament Continu). Es tracta d'un conjunt de pràctiques i metodologies que permeten als equips de desenvolupament lliurar canvis de codi de manera més freqüent i fiable.

Per què és important?

Abans de CI/CD, els desenvolupadors treballaven en les seves còpies locals durant dies o setmanes, i després intentaven integrar tot el codi alhora. Això provocava el que es coneixia com "integration hell" (infern d'integració), amb conflictes massius, errors difícils de depurar i desplegaments arriscats.

CI/CD resol aquests problemes mitjançant: - Detecció primerenca d'errors: Cada canvi es prova immediatament - Reducció de riscos: Desplegaments petits i freqüents són menys perillosos - Feedback ràpid: Els desenvolupadors saben immediatament si alguna cosa ha fallat - Automatització: Menys errors humans en proves i desplegaments - Millor qualitat del codi: Les proves automàtiques garanteixen estàndards

Diferències entre CI, CD (Delivery) i CD (Deployment)

Continuous Integration (CI): - Els desenvolupadors integren el codi al repositori principal diverses vegades al dia - Cada integració es verifica mitjançant builds automàtics i proves - Detecta problemes d'integració de manera primerenca

Continuous Delivery (CD): - El codi està sempre en un estat desplegable - Els desplegaments a producció requereixen aprovació manual - Tot el procés està automatitzat excepte el botó final de "desplegament"

Continuous Deployment (CD): - Cada canvi que passa les proves es desplega automàticament a producció - No hi ha intervenció manual - Màxim nivell d'automatització


2. Conceptes Fonamentals

Pipeline de CI/CD

Un pipeline és una seqüència automatitzada de passos que el codi segueix des de commit fins a producció. Els passos típics són:

  1. Source/Checkout: Obtenir el codi del repositori
  2. Build: Compilar el codi i generar artefactes
  3. Test: Executar proves automàtiques
  4. Analysis: Anàlisi estàtic de codi, cobertura, seguretat
  5. Package: Empaquetar l'aplicació (JAR, Docker image, etc.)
  6. Deploy to Staging: Desplegament a entorn de pre-producció
  7. Integration Tests: Proves en entorn similar a producció
  8. Deploy to Production: Desplegament a producció

Artefactes

Els artefactes són els resultats d'un build: executables, llibreries, imatges Docker, paquets NPM, etc. Es guarden en repositoris d'artefactes per poder-los reutilitzar i desplegar en diferents entorns.

Environments (Entorns)

Els entorns típics en un workflow de CI/CD són:

  • Development: On treballen els desenvolupadors
  • Testing/QA: Per proves funcionals i d'integració
  • Staging/Pre-production: Rèplica de producció per validació final
  • Production: L'entorn final accessible pels usuaris

Build Triggers

Els events que inicien un pipeline:

  • Push/Commit: Cada vegada que es fa push al repositori
  • Pull Request: Quan es crea o actualitza una PR
  • Scheduled: Execucions programades (nightly builds)
  • Manual: Iniciats manualment per un usuari
  • Tag: Quan es crea una etiqueta (per exemple, una release)