Cesta 04Lekce 5 / 10

Navrhujte software pro cloud native prostředí

Propojte opakovatelnou infrastrukturu, nahraditelné procesy, trvalý stav a pozorovatelné chování. Posuzujte cloud native návrh nad rámec zabalení do kontejneru.

Praxe12 minZkontrolováno

Vydává Jak píšeme

Ověřte si porozuměníPlatforma po selhání nahradí worker pro sestavy. Co zajistí bezpečné opakování?Vypracovat cvičení
Platforma po selhání nahradí worker pro sestavy. Co zajistí bezpečné opakování?

Co se naučíte

  • Odlišit zabalení do kontejneru od cloud native chování.
  • Určit rizika stavu, opakování a nahrazení ve vygenerované službě.
  • Definovat kontrakt platformy, který agenti i lidé dokážou ověřit.

Definujte potřebné chování

Cloud native postupy podporují opakovatelný vývoj a provoz ve veřejných, soukromých i hybridních prostředích. CNCF zdůrazňuje systémy, které při změnách zůstávají spravovatelné, pozorovatelné a odolné. Kontejnery a orchestrace mohou tento přístup podporovat. Samy všechny tyto vlastnosti nezajišťují.

Začněte fiktivní službou sestav. Nástroj AI vytvoří endpoint, worker a kontejnerový image. Ukázka vytvoří správné PDF. Před produkcí musí tým odpovědět na další otázku: co se stane, když platforma během úlohy nahradí worker?

To je otázka návrhu aplikace i infrastruktury. Restart může obnovit proces, ale ztratit jeho nedokončenou práci.

Oddělte proces od trvalého stavu

Prototyp uchovává čekající úlohy a dokončené sestavy na disku kontejneru. Nahrazení kontejneru může obojí odstranit. Přidání dalších workerů může také vést k odlišným odpovědím podle toho, který worker požadavek obdrží.

Upravený návrh používá trvalé úložiště úloh a schválené objektové úložiště. Požadavek zaznamená identitu úlohy. Worker ji převezme, vytvoří výsledek a zaznamená jeho umístění. Kontroly přístupu platí i při stažení sestavy uživatelem.

OblastOtázka pro službu sestav
StavKteré záznamy musí přežít nahrazení procesu?
KonfiguraceJak stejný artefakt běží v každém prostředí?
IdentitaKterá identita služby může číst úlohu a zapisovat její výsledek?
Stav službyDokáže worker přijmout práci a dokončit ji?
UkončeníCo se stane s převzatou úlohou, když se worker zastaví?
KapacitaKterý limit nastane první: workery, databáze, úložiště nebo jiná služba?

Tajné údaje uchovávejte mimo image. Poskytujte je schváleným systémem tajných údajů. Zaznamenejte, které změny konfigurace vyžadují nové vydání nebo restart procesu.

Předpokládejme, že worker uloží PDF a pak se zastaví před potvrzením úlohy. Fronta úlohu doručí znovu. Druhý pokus nesmí zákazníkovi znovu účtovat platbu ani odeslat rozporné zprávy o dokončení.

Kde je to vhodné, použijte idempotentní operaci. Opakování stejného logického požadavku má zachovat zamýšlený účinek. Definujte stabilní identitu požadavku, trvale zaznamenejte výsledek a ověřte chování v každém bodě selhání. AWS tuto techniku popisuje v příručce bezpečného opakování.

Opakování potřebuje také limity. Použijte časový limit, limit počtu pokusů a prodlevu, která brání souběžným opakovaným požadavkům. Neúspěšnou práci zachovejte k prozkoumání, místo abyste ji opakovali donekonečna.

Umožněte kontrolu požadovaného stavu

Deklarativní konfigurace určuje zamýšlené nasazení. Řídicí komponenta se snaží tento stav udržovat. Kubernetes Deployment například spravuje repliky aplikace a řízené aktualizace. Aplikace stále musí nahrazení správně zvládat.

Verzujte infrastrukturu a konfiguraci aplikace. Změny kontrolujte běžným procesem dodávky. Sledujte skutečné dokončení úloh, stáří čekajících položek, selhání a limity závislostí. Běžící proces stále může být neschopný vytvořit sestavu.

Vyberte platformu, kterou tým dokáže provozovat

Cloud native nevyžaduje, aby se každá aplikace změnila na mikroslužby. Modulární aplikace na spravovaném běhovém prostředí může své požadavky splnit. Více služeb přidává více rozhraní, rozhodnutí o nasazení a provozní práce.

Vývojovému agentovi dejte skutečný kontrakt platformy: podporované běhové prostředí, způsob identity, datové služby, pravidla nasazení a potřebné důkazy. Vedle úspěšných požadavků testujte chování při přerušení a nahrazení. Pokračujte lekcí o dostupnosti a hranicích selhání.

Vypracovat cvičení

Fiktivní služba sestav ukládá úlohy a dokončené soubory na disk kontejneru. Nakreslete tok přes požadavek, úlohu, soubor a stažení. Označte trvalý stav. Definujte, co se stane, když se worker zastaví po zápisu souboru, ale před potvrzením úlohy.

Stáhnout pracovní list (Markdown)
Ověřte si porozumění ↑

Pokračovat v učení

Zdroje a další čtení

Související čtení od Taigy

← Předchozí lekce: Definujte infrastrukturu nad rámec prototypu