CI/CD és deployment
Automatikus deployment és zero-downtime élesítés
A HelloWP által üzemeltetett Bedrock oldalakon a deployment teljesen automatikus. Nem kell FTP-vel fájlokat feltölteni, nem kell a szerverre bejelentkezni - a kód push után automatikusan megjelenik az éles oldalon.
Hogyan működik a deployment?
Az egyszerű verzió
Fejlesztő commitol → Push a Git repóba → Szerver automatikusan frissül
A részletes folyamat
- Fejlesztő push-ol a GitHub repóba (main vagy staging branch-re)
- A szerver észleli a változást (webhook)
- Új release mappa jön létre a szerveren
- Composer install lefut - a függőségek telepítésre kerülnek
- Szimlink váltás - az új verzió lesz az aktív
- Kész - az oldal az új kóddal fut
Zero-downtime deployment
A hagyományos WordPress frissítésnél a fájlok egyenként cserélődnek, ami alatt az oldal hibás állapotban lehet (pl. félig frissített bővítmény). A Bedrock deploymentnél ez nem fordulhat elő.
Hogyan valósul meg?
A szerveren a deployment könyvtárstruktúra így néz ki:
site/
├── current → releases/20240315143022 # Szimlink az aktív verzióra
├── releases/
│ ├── 20240315143022/ # Legújabb (aktív)
│ ├── 20240314091500/ # Előző
│ └── 20240312163045/ # Korábbi
└── shared/
├── .env # Megosztott konfigurációi
└── web/app/uploads/ # Megosztott feltöltések
- Minden deploy egy új mappát hoz létre a
releases/alatt - A
currentszimlink azonnal átvált az új mappára - Az átváltás atomi művelet - nincs köztes, hibás állapot
- Ha valami nem stimmel, a szimlink visszaállítása másodpercek kérdése
Egy webshop esetén a zero-downtime deployment azt jelenti, hogy a vásárlók soha nem látnak hibaoldalt frissítés közben. Nincs "karbantartás alatt" állapot.
Mi történik hiba esetén?
Automatikus visszaállítás
Ha a deployment során hiba történik (pl. a Composer nem tud telepíteni egy csomagot), a régi verzió aktív marad. Az oldal nem áll le, a látogatók nem észlelnek semmit.
Manuális visszaállítás
Ha egy sikeres deployment után derül ki a hiba, a HelloWP csapata másodpercek alatt visszaállíthatja az előző verziót.
Fejlesztőként a Git-ben is visszavonhatod a változást:
# Az utolsó commit visszavonása (új committal)
git revert HEAD
git push origin main
# → Automatikus deploy a visszavont állapottal
CI/CD pipeline
A HelloWP szerverei alapértelmezetten egyszerű webhook alapú deploymentet használnak. Összetettebb projekteknél GitHub Actions alapú CI/CD pipeline is beállítható.
Alap webhook deployment
Push → Webhook → Deploy
- Egyszerű, gyors, megbízható
- Minden push-ra automatikusan fut
- A legtöbb projekthez elegendő
GitHub Actions pipeline (összetett projektek)
Push → GitHub Actions → Tesztek → Build → Deploy
Ezt akkor érdemes használni, ha:
- Automatikus teszteket szeretnél futtatni minden push előtt
- Frontend build lépés szükséges (pl. npm build)
- Több környezetre (staging + éles) kell deployolni
- Code review kötelező a main branch-be mergelésnél
Ha szükséged van GitHub Actions pipeline-ra, jelezd a HelloWP csapatának, és beállítjuk a projekted igényei szerint.
Fejlesztői környezetek
| Környezet | Branch | Deploy | Cél |
|---|---|---|---|
| Lokális | bármelyik | - | Fejlesztés, tesztelés |
| Staging | staging | Automatikus | Ügyfél jóváhagyás, tesztelés |
| Éles | main | Automatikus | Publikus oldal |
Best practices
Tesztelj deployolás előtt
- Lokálisan ellenőrizd, hogy
composer installhiba nélkül lefut - Nézd meg az oldalt lokálisan, mielőtt push-olsz
Kis, gyakori deployok
- Inkább kis módosításokat push-olj gyakran, mint nagy változásokat ritkán
- Egy commit = egy logikai változás
- Ha valami elromlik, könnyebb megtalálni a hibát kis commitokban
Ne push-olj pénteken
Klasszikus szabály: ha nem muszáj, pénteken ne élesíts nagy változtatásokat. Ha probléma van, a hétvégén nehezebb kezelni.