Zasnujte programsko opremo za okolje cloud native
DokončanoPovežite ponovljivo infrastrukturo, zamenljive procese, trajno stanje in opazljivo delovanje. Zasnovo cloud native ocenite širše od pakiranja v vsebnike.
Izdajatelj TaigaKako pišemo
Preverite razumevanjePlatforma po napaki zamenja delovni proces za poročila. Kaj omogoča varen ponovni poskus?Opravite vajo
Kaj se boste naučili
- Ločite pakiranje v vsebnike od delovanja cloud native.
- Prepoznajte tveganja stanja, ponovnih poskusov in zamenjave v ustvarjeni storitvi.
- Določite tehnični dogovor platforme, ki ga lahko preverijo agenti in ljudje.
Določite potrebno delovanje
Prakse cloud native podpirajo ponovljiv razvoj in delovanje v javnih, zasebnih ali hibridnih okoljih. CNCF poudarja sisteme, ki ob spremembah ostajajo obvladljivi, opazljivi in odporni. Vsebniki in orkestracija lahko podprejo ta pristop. Sami po sebi ne zagotovijo vseh teh lastnosti.
Začnite z izmišljeno storitvijo za poročila. Orodje AI ustvari končno točko, delovni proces in sliko vsebnika. Predstavitev ustvari pravilen PDF. Pred produkcijo mora ekipa odgovoriti še na eno vprašanje: kaj se zgodi, ko platforma med opravilom zamenja delovni proces?
To je vprašanje zasnove aplikacije in infrastrukture. Ponovni zagon lahko obnovi proces, pri tem pa izgubi njegovo nedokončano delo.
Proces ločite od trajnega stanja
Prototip hrani opravila v čakalni vrsti in dokončana poročila na disku vsebnika. Zamenjava vsebnika lahko odstrani oboje. Dodajanje delovnih procesov lahko povzroči tudi različne odgovore glede na to, kateri proces prejme zahtevo.
Popravljena zasnova uporablja trajno shrambo opravil in odobreno objektno shrambo. Zahteva zabeleži identiteto opravila. Delovni proces prevzame opravilo, ustvari njegov rezultat in zabeleži lokacijo rezultata. Preverjanje dostopa še vedno velja, ko uporabnik prenese poročilo.
| Področje | Vprašanje za storitev poročil |
|---|---|
| Stanje | Kateri zapisi morajo preživeti zamenjavo procesa? |
| Konfiguracija | Kako isti artefakt deluje v vsakem okolju? |
| Identiteta | Katera identiteta storitve lahko bere opravilo in zapiše njegov rezultat? |
| Stanje delovanja | Ali lahko delovni proces sprejme delo in ga dokonča? |
| Ustavitev | Kaj se zgodi s prevzetim opravilom, ko se delovni proces ustavi? |
| Zmogljivost | Katera omejitev velja prva: delovni procesi, podatkovna zbirka, shramba ali druga storitev? |
Skrivnosti hranite zunaj slike. Zagotovite jih prek odobrenega sistema skrivnosti. Zabeležite, katere spremembe konfiguracije zahtevajo novo izdajo ali ponovni zagon procesa.
Ponovne poskuse zasnujte pred dodajanjem delovnih procesov
Recimo, da delovni proces shrani PDF in se nato ustavi pred potrditvijo opravila. Čakalna vrsta opravilo dostavi znova. Drugi poskus ne sme stranki znova zaračunati storitve ali poslati nasprotujočih si sporočil o dokončanju.
Kjer je ustrezno, uporabite idempotentno operacijo. Ponovitev iste logične zahteve naj ohrani predvideni učinek. Določite stabilno identiteto zahteve, trajno zabeležite rezultat in preverite dogajanje na vsaki točki napake. AWS opisuje to tehniko v vodiču za varne ponovne poskuse.
Tudi ponovni poskusi potrebujejo omejitve. Uporabite časovno omejitev, omejitev števila poskusov in zamik, ki preprečuje hkratno ponavljanje zahtev. Neuspelo delo ohranite za pregled, namesto da ga ponavljate v nedogled.
Omogočite pregled želenega stanja
Deklarativna konfiguracija določa predvideno namestitev. Krmilnik skrbi za vzdrževanje tega stanja. Kubernetes Deployment na primer upravlja replike aplikacije in nadzorovane posodobitve. Aplikacija mora še vedno pravilno obravnavati zamenjavo.
Konfiguracijo infrastrukture in aplikacije hranite z različicami. Spremembe preglejte po običajnem postopku dobave. Opazujte dejansko dokončanje opravil, starost opravil v čakalni vrsti, napake in omejitve odvisnosti. Tudi delujoč proces morda ne more ustvariti poročila.
Izberite platformo, ki jo ekipa lahko upravlja
Cloud native ne zahteva pretvorbe vsake aplikacije v mikrostoritve. Modularna aplikacija v upravljanem izvajalnem okolju lahko izpolni svoje zahteve. Več storitev prinese več vmesnikov, odločitev o namestitvi in operativnega dela.
Razvojnemu agentu dajte dejanski tehnični dogovor platforme: podprto izvajalno okolje, način identifikacije, podatkovne storitve, pravila namestitve in zahtevana dokazila. Poleg uspešnih zahtev preizkusite delovanje ob prekinitvi in zamenjavi. Nadaljujte z razpoložljivostjo in mejami odpovedi.
Opravite vajo
Izmišljena storitev za poročila hrani opravila in dokončane datoteke na disku vsebnika. Narišite tok skozi zahtevo, opravilo, datoteko in prenos. Označite trajno stanje. Določite, kaj se zgodi, če se delovni proces ustavi po zapisu datoteke, vendar pred potrditvijo opravila.
Prenesi delovni list (Markdown)Če počistite to izbiro, izbrišete ves napredek, shranjen v tem brskalniku.
Napredek ostane v tem brskalniku. Brez računa in sledenja.
Viri in nadaljnje branje
- CNCF: Cloud Native Definition v1.1 ↗
- Kubernetes: Deployments ↗
- AWS Builders’ Library: Making retries safe with idempotent APIs ↗