Cesta 04Lekcia 5 / 10

Navrhnite softvér pre cloud native prostredie

Prepojte opakovateľnú infraštruktúru, nahraditeľné procesy, trvalý stav a pozorovateľné správanie. Posudzujte cloud native návrh aj nad rámec balenia do kontajnerov.

Praktická úroveň12 minSkontrolované

Vydáva Ako píšeme

Overte si porozumeniePlatforma po zlyhaní nahradí worker reportov. Čo robí opakovanie bezpečným?Vykonajte cvičenie
Platforma po zlyhaní nahradí worker reportov. Čo robí opakovanie bezpečným?

Čo sa naučíte

  • Rozlišovať balenie do kontajnera od cloud native správania.
  • Určiť riziká stavu, opakovania a nahradenia vo vygenerovanej službe.
  • Definovať kontrakt platformy, ktorý môžu overiť agenti aj ľudia.

Definujte potrebné správanie

Cloud native postupy podporujú opakovateľný vývoj a prevádzku vo verejných, súkromných alebo hybridných prostrediach. CNCF zdôrazňuje systémy, ktoré pri zmenách zostávajú spravovateľné, pozorovateľné a odolné. Kontajnery a orchestrácia môžu tento prístup podporovať. Samy osebe všetky tieto vlastnosti nezabezpečujú.

Začnite fiktívnou službou reportov. Nástroj AI vytvorí endpoint, worker a obraz kontajnera. Ukážka vytvorí správny PDF. Pred produkciou musí tím odpovedať na ďalšiu otázku: čo sa stane, keď platforma nahradí worker počas úlohy?

Je to otázka návrhu aplikácie aj infraštruktúry. Reštart môže obnoviť proces a pritom stratiť jeho nedokončenú prácu.

Oddeľte proces od trvalého stavu

Prototyp uchováva úlohy vo fronte a dokončené reporty na disku kontajnera. Nahradenie kontajnera môže odstrániť oboje. Pridanie ďalších workerov môže tiež vytvoriť odlišné odpovede podľa toho, ktorý worker dostane požiadavku.

Upravený návrh používa trvalé úložisko úloh a schválené objektové úložisko. Požiadavka zaznamená identitu úlohy. Worker si prevezme úlohu, vytvorí výsledok a zaznamená jeho umiestnenie. Kontroly prístupu sa naďalej uplatňujú pri sťahovaní reportu používateľom.

OblasťOtázka pre službu reportov
StavKtoré záznamy musia prežiť nahradenie procesu?
KonfiguráciaAko rovnaký artefakt beží v každom prostredí?
IdentitaKtorá identita služby môže čítať úlohu a zapísať jej výsledok?
Stav službyMôže worker prijať prácu a dokáže ju dokončiť?
ZastavenieČo sa stane s prevzatou úlohou, keď sa worker zastaví?
KapacitaKtoré obmedzenie sa prejaví ako prvé: workery, databáza, úložisko alebo iná služba?

Tajné údaje udržujte mimo obrazu. Poskytujte ich cez schválený systém správy tajných údajov. Zaznamenajte, ktoré zmeny konfigurácie vyžadujú nové vydanie alebo reštart procesu.

Predstavte si, že worker uloží PDF a potom sa zastaví pred potvrdením úlohy. Front doručí úlohu znova. Druhý pokus nesmie zákazníkovi zaúčtovať platbu druhýkrát ani odoslať protichodné správy o dokončení.

Tam, kde je to vhodné, použite idempotentnú operáciu. Opakovanie rovnakej logickej požiadavky má zachovať zamýšľaný účinok. Definujte stabilnú identitu požiadavky, trvalo zaznamenajte výsledok a overte, čo sa stane v každom bode zlyhania. AWS túto techniku opisuje v príručke bezpečného opakovania.

Aj opakovania potrebujú obmedzenia. Použite časový limit, obmedzený počet pokusov a oneskorenie, ktoré predíde súčasným opakovaným požiadavkám. Neúspešnú prácu zachovajte na preskúmanie namiesto nekonečného opakovania.

Umožnite preskúmať požadovaný stav

Deklaratívna konfigurácia určuje zamýšľané nasadenie. Kontrolér sa snaží tento stav udržiavať. Napríklad Kubernetes Deployment spravuje repliky aplikácie a riadené aktualizácie. Aplikácia musí aj tak správne spracovať nahradenie.

Verziujte infraštruktúru a konfiguráciu aplikácie. Zmeny kontrolujte cez bežný proces dodávania. Sledujte skutočné dokončenie úloh, vek úloh vo fronte, zlyhania a obmedzenia závislostí. Aj bežiaci proces môže byť neschopný vytvoriť report.

Vyberte platformu, ktorú tím dokáže prevádzkovať

Cloud native nevyžaduje premenu každej aplikácie na mikroslužby. Modulárna aplikácia na spravovanom runtime môže spĺňať svoje požiadavky. Viac služieb prináša viac rozhraní, rozhodnutí o nasadení a prevádzkovej práce.

Vývojovému agentovi poskytnite skutočný kontrakt platformy: podporovaný runtime, spôsob práce s identitou, dátové služby, pravidlá nasadenia a požadované dôkazy. Popri úspešných požiadavkách testujte prerušenie a nahradenie. Pokračujte lekciou dostupnosti a hraníc zlyhania.

Vykonajte cvičenie

Fiktívna služba reportov ukladá úlohy a dokončené súbory na disk kontajnera. Nakreslite tok cez požiadavku, úlohu, súbor a stiahnutie. Označte trvalý stav. Definujte, čo sa stane, ak sa worker zastaví po zápise súboru, ale pred potvrdením úlohy.

Stiahnuť pracovný list (Markdown)
Overte si porozumenie ↑

Pokračovať v učení

Zdroje a ďalšie čítanie

Súvisiace čítanie od Taigy

← Predchádzajúca lekcia: Definujte infraštruktúru nad rámec prototypu