Salta el contingut

Workflow Típic de CI/CD

4. Workflow Típic de CI/CD

Flux de Treball Pas a Pas

Imaginem un desenvolupador que fa un canvi en una aplicació web. Vegem què passa:

Pas 1: Desenvolupament Local - El desenvolupador clona el repositori - Crea una branca nova per la funcionalitat: git checkout -b feature/new-login - Fa els canvis necessaris al codi - Executa proves locals: npm test

Pas 2: Commit i Push - Fa commit dels canvis: git commit -m "Add new login functionality" - Puja els canvis: git push origin feature/new-login - Crea una Pull Request/Merge Request

Pas 3: CI Pipeline s'Activa Automàticament, el sistema CI/CD detecta el push i inicia el pipeline:

┌─────────────┐
│   TRIGGER   │ ← Push detectat
└──────┬──────┘
┌─────────────┐
│   CHECKOUT  │ ← Descarrega el codi
└──────┬──────┘
┌─────────────┐
│    BUILD    │ ← Compila/empaqueta
└──────┬──────┘
┌─────────────┐
│    TESTS    │ ← Proves unitàries
└──────┬──────┘      proves d'integració
       │              anàlisi estàtic
┌─────────────┐
│   QUALITY   │ ← SonarQube, linters
└──────┬──────┘
┌─────────────┐
│  SECURITY   │ ← Escaneig vulnerabilitats
└──────┬──────┘
   ✅ SUCCESS

Pas 4: Review i Aprovació - Els reviewers examinen el codi - El pipeline mostra: ✅ All checks passed - S'aprova la Pull Request - Es fa merge a la branca principal

Pas 5: CD Pipeline (Deploy) El merge a main activa el pipeline de desplegament:

┌─────────────┐
│ BUILD PROD  │ ← Build de producció
└──────┬──────┘
┌─────────────┐
│   PACKAGE   │ ← Crea imatge Docker
└──────┬──────┘
┌─────────────┐
│  DEPLOY     │ ← Desplega a staging
│  STAGING    │
└──────┬──────┘
┌─────────────┐
│  SMOKE      │ ← Proves bàsiques
│  TESTS      │    (l'app arrenca?)
└──────┬──────┘
┌─────────────┐
│  APPROVAL   │ ← Aprovació manual
│  (opcional) │    o automàtica
└──────┬──────┘
┌─────────────┐
│  DEPLOY     │ ← Desplega a producció
│ PRODUCTION  │
└──────┬──────┘
┌─────────────┐
│  MONITOR    │ ← Monitorització
└─────────────┘

Estratègies de Desplegament

Blue-Green Deployment: - Tens dos entorns idèntics (Blue i Green) - Blue està en producció servint tràfic - Despleges la nova versió a Green - Proves Green exhaustivament - Canvies el tràfic de Blue a Green - Si hi ha problemes, tornes a Blue instantàniament

Canary Deployment: - Despleges la nova versió només a un % petit d'usuaris (5-10%) - Monitoritzes mètriques i errors - Si tot va bé, augmentes progressivament el percentatge - Si hi ha problemes, fas rollback ràpidament

Rolling Deployment: - Actualitzes els servidors un per un o en grups - Sempre hi ha servidors disponibles - Més lent però més segur - Comú en entorns Kubernetes