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