Tovább a tartalomhoz

CI/CD és deployment

Automatikus deployment, CI/CD pipeline és zero-downtime élesítés Bedrock alapú WordPress oldalakon.

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.


Fejlesztő commitol → Push a Git repóba → Szerver automatikusan frissül
  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

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ő.

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

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.

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:

Terminál
# Az utolsó commit visszavonása (új committal)
git revert HEAD
git push origin main
# → Automatikus deploy a visszavont állapottal

A HelloWP szerverei alapértelmezetten egyszerű webhook alapú deploymentet használnak. Összetettebb projekteknél GitHub Actions alapú CI/CD pipeline is beállítható.

Push → Webhook → Deploy
  • Egyszerű, gyors, megbízható
  • Minden push-ra automatikusan fut
  • A legtöbb projekthez elegendő

GitHub Actions pipeline (összetett projektek)

Szekció neve “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

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

  • Lokálisan ellenőrizd, hogy composer install hiba nélkül lefut
  • Nézd meg az oldalt lokálisan, mielőtt push-olsz
  • 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

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.

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások