Ugrás a fő tartalomhoz

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

  1. Fejlesztő push-ol a GitHub repóba (main vagy staging branch-re)
  2. A szerver észleli a változást (webhook)
  3. Új release mappa jön létre a szerveren
  4. Composer install lefut - a függőségek telepítésre kerülnek
  5. Szimlink váltás - az új verzió lesz az aktív
  6. 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 current szimlink 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
Miért fontos ez?

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
Beállítás

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örnyezetBranchDeployCél
Lokálisbármelyik-Fejlesztés, tesztelés
StagingstagingAutomatikusÜgyfél jóváhagyás, tesztelés
ÉlesmainAutomatikusPublikus oldal

Best practices

Tesztelj deployolás előtt

  • Lokálisan ellenőrizd, hogy composer install hiba 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.