Navrhnite softvér pre cloud native prostredie
Dokončené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.
Vydáva TaigaAko píšeme
Overte si porozumeniePlatforma po zlyhaní nahradí worker reportov. Čo robí opakovanie bezpečným?Vykonajte cvičenie
Č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 |
|---|---|
| Stav | Ktoré záznamy musia prežiť nahradenie procesu? |
| Konfigurácia | Ako rovnaký artefakt beží v každom prostredí? |
| Identita | Ktorá identita služby môže čítať úlohu a zapísať jej výsledok? |
| Stav služby | Môže worker prijať prácu a dokáže ju dokončiť? |
| Zastavenie | Čo sa stane s prevzatou úlohou, keď sa worker zastaví? |
| Kapacita | Ktoré 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.
Navrhnite opakovanie pred pridaním workerov
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)Zrušenie tohto výberu vymaže celý postup uložený v tomto prehliadači.
Postup zostáva v tomto prehliadači. Bez účtu a sledovania.
Zdroje a ďalšie čítanie
- CNCF: Cloud Native Definition v1.1 ↗
- Kubernetes: Deployments ↗
- AWS Builders’ Library: Making retries safe with idempotent APIs ↗