DevOps

Argo CD több klaszterre: app-of-apps a gyakorlatban

A több klaszteres GitOps skálázása nem technikai, hanem szervezeti kérdés: ki birtokolja a repót és a sync-policyt? Az app-of-apps minta és a buktatói.

Röviden: A több klaszteres GitOps skálázása nem technikai, hanem szervezeti kérdés: ki birtokolja a repót és a sync-policyt? Az app-of-apps minta és a buktatói.

Egyetlen klaszteren a GitOps bevezetése viszonylag egyenes út: van egy repó, benne a kívánt állapot, és az Argo CD gondoskodik róla, hogy a valóság ehhez igazodjon. A gond akkor kezdődik, amikor több klasztered lesz — környezetenként, régiónként vagy csapatonként —, és a kérdés már nem az, hogyan syncelj, hanem hogyan tartsd kezelhetőnek a sokaságot. Az app-of-apps minta erre ad választ, de a valódi kihívás nem technikai, hanem szervezeti.

Mi az app-of-apps?

Az alapötlet egyszerű: van egy „szülő” alkalmazás, ami nem konkrét workloadot ír le, hanem további Argo CD-alkalmazásokat. Ezek a gyerekek írják le a tényleges telepítéseket. Így egyetlen belépési pontból, hierarchikusan kezelhető sok alkalmazás és akár több klaszter is. A szülő gondoskodik róla, hogy a megfelelő gyerekek a megfelelő helyre kerüljenek.

Miért skálázik jobban?

Ahelyett, hogy minden egyes alkalmazást kézzel regisztrálnál minden klaszteren, a hierarchia elvégzi ezt. Új környezet vagy csapat hozzáadása így deklaratív művelet: felveszed a szülőbe, és a rendszer legenerálja a szükséges gyerekeket. Ez rendet visz a káoszba, amikor a telepítések száma tucatokba vagy százakba szalad.

A valódi kérdés: ki birtokolja?

A több klaszteres GitOps technikailag megoldott. A nehéz rész a tulajdonlás. Néhány kérdés, amit előre el kell dönteni:

  1. Ki birtokolja a szülő-repót? A platformcsapat, vagy közös?
  2. Milyen a jogosultsághatár — melyik csapat mit módosíthat, melyik klaszteren?
  3. Ki felel egy sync-hibáért éjszaka?
  4. Mi a promóció útja környezetek között (dev → staging → prod)?

Ha ezekre nincs világos válasz, akkor a technikailag elegáns app-of-apps szervezeti káoszt fedez el.

A sync-policy tudatossága

A több klaszteres környezetben a sync-policy (mikor és hogyan igazodjon a valóság a repóhoz) nem lehet egységesen agresszív. A production klaszternél gyakran indokolt a kézi jóváhagyás vagy a fokozatos kiterjesztés; egy dev környezetnél mehet az azonnali automatikus sync. A policy legyen a környezet kockázatához igazítva, ne mindenütt ugyanaz.

A drift és a láthatóság

A GitOps egyik legnagyobb értéke, hogy észreveszi az eltérést (driftet) a kívánt és a valós állapot között. Több klaszternél ez a képesség még fontosabb, mert könnyű elveszíteni az áttekintést. Az Argo CD felülete megmutatja, mely alkalmazások szinkronban vannak és melyek nem — ezt a nézetet érdemes központi egészségjelzőként kezelni, és riasztani, ha valami tartósan eltér.

A promóció mint kódmozgás

A környezetek közötti promóció GitOps-ban nem kézi kattintás, hanem a kívánt állapot mozgatása a repóban — egy verzió előrébb léptetése egy környezet konfigurációjában. Ez auditálható és visszafordítható. Az app-of-apps ezt jól támogatja, ha a hierarchiát környezetek szerint tagolod, és a promóció egy jól definiált, review-zott változtatás.

A tulajdonlás és a jogosultsághatárok

A több klaszteres GitOps technikailag megoldott — a nehéz rész a tulajdonlás. Ki birtokolja a szülő-repót? Milyen a jogosultsághatár az egyes csapatok között? Ki felel egy sync-hibáért éjszaka? Ezekre a kérdésekre előre kell válaszolni, különben a technikailag elegáns app-of-apps szervezeti káoszt fedez el. A jogosultsághatárok tisztázása fontosabb, mint a technikai felállás.

Egy jó modell, hogy a platformcsapat birtokolja a szülő-repó vázát, a termékcsapatok pedig a saját gyerek-alkalmazásaikat, jól elhatárolt jogokkal. Így a felelősség tiszta, és egy csapat nem tud véletlenül belenyúlni egy másik telepítésébe.

A sync-policy a kockázathoz igazítva

A sync-policy — mikor és hogyan igazodjon a valóság a repóhoz — nem lehet egységesen agresszív. A production klaszternél gyakran indokolt a kézi jóváhagyás vagy a fokozatos kiterjesztés; egy dev környezetnél mehet az azonnali automatikus sync. A policy a környezet kockázatához igazodjon.

Mit jelent ez neked?

A több klaszteres GitOps-hoz az app-of-apps jó eszköz: hierarchikusan, deklaratívan kezeli a sok telepítést. De a technológia a könnyebb rész — a nehéz a tulajdonlás és a jogosultsághatárok tisztázása. Adj szigorú reviewt és óvatos sync-policyt a szülő-repónak, igazítsd a policyt a környezet kockázatához, és kezeld a promóciót review-zott kódmozgásként. Ha a szervezeti kérdéseket megválaszolod, a technika követi.