Anatomia unui deploy
Deploy înseamnă să pui codul nou în producție fără să strici nimic. Un deploy bun are trei calități: e repetabil (aceiași pași de fiecare dată), e rapid (secunde, nu ore), și e reversibil (poți reveni imediat dacă ceva e greșit). Lecția asta e harta pașilor; restul cursului intră în fiecare.
Pașii unui deploy tipic
- Aduci codul nou pe server (git pull sau un artefact construit).
- Instalezi dependențele (composer install, npm ci).
- Construiești asset-urile (npm run build).
- Rulezi migrațiile de bază de date.
- Golești și reconstruiești cache-urile.
- Repornești worker-ii de coadă și, dacă e cazul, PHP-FPM.
Automatizează totul
Un deploy manual = pași uitați. Pune toți pașii într-un script (`deploy.sh`) sau într-un pipeline (GitHub Actions, GitLab CI, Forge, Deployer). Rulezi o comandă, nu zece.
Ce merge prost de obicei
- Cod care folosește o coloană/tabel care nu există încă (ordine greșită).
- Cache vechi servit după deploy (config, rute, vederi).
- Worker-i de coadă care rulează cod vechi (nu i-ai repornit).
- Permisiuni pe `storage/` pierdute după un `git pull`.
Medii
local (laptopul tău) → staging (o copie a producției, pentru testat deploy-ul și migrațiile) → production. Ideal ai staging. Minim: testezi migrațiile pe o copie a datelor de producție înainte.
Exercițiu
Scrie pe hârtie secvența exactă de pași pentru a face deploy la aplicația ta (sau la un proiect Laravel exemplu). Marchează care pași sunt periculoși (migrări, ștergeri) și care trebuie făcuți în ce ordine față de aducerea codului.
Greșeli frecvente
- Deploy manual, pas cu pas, din memorie.
- Rulezi migrațiile înainte să aduci codul care le folosește.
- Nu reconstruiești cache-ul și producția servește configurație veche.
- Faci deploy vineri seara și pleci.
De reținut
- Deploy bun = repetabil + rapid + reversibil.
- Pași: cod → dependențe → build → migrări → cache → workeri.
- Automatizează într-un script sau pipeline.
- Staging (sau măcar test pe copie) înainte de producție.
Pe scurt
Un deploy e o secvență fixă de pași. Automatizeaz-o, respectă ordinea (cod înainte de migrări), reconstruiește cache-ul, repornește workerii.