Statikus publikálás nagy exporter gép nélkül
Statikus WordPress-publikálás skálázása Lambda-feldolgozókkal
A WordPress-kiszolgáló maradhat a forrásoldalak kiszolgálásánál, az exporter vezérli a feladatot, a párhuzamosítható feldolgozást pedig Lambda-függvények végezhetik.
WordPress forrás
↓ oldalak
Exporter vezérlő
├→ Lambda oldal-előállítás
├→ Lambda assetletöltés
├→ Lambda HTML-átírás
└→ Lambda telepítés
↓
S3 munkaterület → cél S3 → CloudFront
Hol fut a munka?
A vezérlő exporternek nem kell minden nehéz feladatot helyben elvégeznie
A Static Publisher eleve a WordPress/PHP folyamatán kívül futtatja a bejárást és a telepítést. Lambda-delegálással az exporter az oldal-előállítást, az assetek letöltését, a végső HTML-átírást és a telepítést is külön Lambda-feldolgozókra bízhatja.
WordPress / forrásoldal
│
│ kiszolgálja a kért nyilvános oldalakat
▼
Exporter vezérlő
│ kezeli a sort, biztonsági és részleges publikálási
│ döntéseket, manifestet, újrapróbálást, naplót és állapotot
│
├─ oldalcsomagok ─────→ Lambda + Chromium ─┐
├─ assetcsomagok ─────→ Lambda ────────────┤
├─ átírási csomagok ──→ Lambda ────────────┤→ S3 munkaterület
└─ telepítési csomagok → Lambda ────────────┘ │
└→ cél S3 → CloudFront
Mi korlátozza továbbra is az oldal-előállítást? Az oldalt előállító Lambda-feldolgozók továbbra is lekérik az oldalakat a WordPress forrásból. A nagyobb párhuzamosság ezért nem teszi korlátlanná a forrást: a WordPress kiszolgálási kapacitása, a Lambda-korlátok és a célrendszer teljesítménye továbbra is számít. Az assetkezelés, átírás és telepítés viszont nem terheli ugyanígy a WordPresst.
A publikálás menete
A számítási kapacitás csak akkor fusson, amikor tényleg publikálás történik
A worker modell elválasztja a folyamatosan elérhető szerkesztői rendszert a publikálás rövid ideig szükséges feldolgozási kapacitásától.
- A WordPress csak sorba állítja a feladatot — A WordPress tárolja a beállításokat és a publikálási kérést. A PHP nem futtatja a Node exportert és nem közvetíti a telepítési adatforgalmat.
- Az exporter vezérli a folyamatot — A vezérlő felosztja a munkát, alkalmazza a biztonsági és részleges publikálási szabályokat, kezeli az újrapróbálást és a folyamat állapotát.
- A feldolgozás csomagokban kerül Lambdára — Lambda-függvények állíthatják elő az oldalakat, tölthetik le az asseteket, írhatják át az S3-ban lévő kimenetet és másolhatják a kész fájlokat a célhelyre. Egy meleg Chromium-folyamat több oldalt is feldolgozhat egymás után.
- A kész kimenet S3-ban marad — Teljes delegálásnál az elkészült HTML és a letöltött assetek az S3 munkaterületén maradnak, ott történhet az átírás, majd közvetlen S3→S3 másolással a telepítés. A vezérlőnek nem kell mindent visszatöltenie és újra előkészítenie.
Mikor változtatja meg a Lambda-delegálás az infrastruktúraigényt?
Delegált feldolgozás
Akkor hasznos, ha a publikálás rövid, párhuzamos terhelési csúcsokat okoz
- Nem szeretné az exporter gépét a legnagyobb publikálási feladatra méretezni.
- Elég oldal vagy asset van ahhoz, hogy számítson a párhuzamos oldal-előállítás, letöltés, átírás vagy telepítés.
- A számítási költség inkább a tényleges publikálási munkát kövesse, ne folyamatosan fenntartott tartalékkapacitást.
Helyi feldolgozás
Maradhat az egyszerűbb modell, ha egy exporter gép bőven elég
- A webhely kicsi, és a publikálási idő már most elfogadható.
- A WordPress forrás nem tudna érdemben több párhuzamos oldalkérést kiszolgálni.
- Egyszerűbb egy folyamatosan futó worker gépet üzemeltetni, és nincs szükség külön Lambda-környezetre.
Gyakori kérdések
Lambda-delegálás a Static Publisherben
A Lambda-delegálás teljesen leveszi a terhelést a WordPressről?
Nem.
Van még szerepe az exporternek delegálás után?
Igen. Ő marad a vezérlő: kezeli a feladatsort, a biztonsági és részleges publikálási döntéseket, a manifestet, az újrapróbálást, naplózást, gyorsítótár-frissítést és a végső feladatállapotot.
Kell minden publikáláshoz erős VM?
Nem. A vezérlő viszonylag könnyű maradhat, mert a delegált feldolgozási fázisok csak a feladat idejére használnak Lambda-kapacitást. A tényleges költséget és sebességet továbbra is a beállított feldolgozók, az AWS-korlátok és a forrásoldal kapacitása határozza meg.
Mi történik a fájlokkal teljes delegálásnál?
Az elkészült HTML és a letöltött assetek az S3 munkaterületén maradnak. Az átírás ott végezhető el, a kész objektumok pedig közvetlenül S3-ból másolhatók a cél S3-helyre.
Static Publisher architektúra
A WordPress legyen tartalomforrás, ne publikálási munkagép
A Static Publisher külön kezeli a szerkesztői WordPresst, a publikálást vezérlő exportert és az opcionális Lambda-feldolgozást. A termékoldalon ez együtt látható a teljes, részleges és célzott publikálással.
