Projektējiet programmatūru cloud native videi
PabeigtsSaistiet atkārtojamu infrastruktūru, aizstājamus procesus, noturīgu stāvokli un novērojamu darbību. Vērtējiet cloud native risinājumu plašāk nekā iepakošanu konteineros.
Publicē TaigaKā mēs rakstām
Pārbaudiet savu izpratniPēc kļūmes platforma aizstāj pārskatu izpildprocesu. Kas padara atkārtoto mēģinājumu drošu?Izpildiet uzdevumu
Ko apgūsiet
- Atšķiriet iepakošanu konteinerā no cloud native darbības.
- Atrodiet stāvokļa, atkārtotu mēģinājumu un aizstāšanas riskus ģenerētā pakalpojumā.
- Definējiet platformas līgumu, ko var pārbaudīt aģenti un cilvēki.
Definējiet vajadzīgo darbību
Cloud native prakses atbalsta atkārtojamu izstrādi un ekspluatāciju publiskās, privātās vai hibrīdvidēs. CNCF uzsver sistēmas, kas pārmaiņu laikā paliek pārvaldāmas, novērojamas un noturīgas. Konteineri un orķestrācija var atbalstīt šo pieeju. Tie paši par sevi nenodrošina visas šīs īpašības.
Sāciet ar izdomātu pārskatu pakalpojumu. MI rīks izveido galapunktu, izpildprocesu un konteinera attēlu. Demonstrācija rada pareizu PDF. Pirms produkcijas komandai jāatbild uz citu jautājumu: kas notiek, ja platforma uzdevuma laikā aizstāj izpildprocesu?
Tas ir gan lietotnes projektēšanas, gan infrastruktūras jautājums. Pārstartēšana var atjaunot procesu, vienlaikus pazaudējot tā nepabeigto darbu.
Atdaliet procesu no noturīga stāvokļa
Prototips glabā rindā gaidošos uzdevumus un pabeigtos pārskatus konteinera diskā. Konteinera aizstāšana var noņemt abus. Arī vairāku izpildprocesu pievienošana var radīt atšķirīgas atbildes atkarībā no tā, kurš saņem pieprasījumu.
Pārskatītais risinājums izmanto noturīgu uzdevumu glabātuvi un apstiprinātu objektu glabātuvi. Pieprasījums reģistrē uzdevuma identitāti. Izpildprocess pārņem uzdevumu, rada rezultātu un reģistrē tā atrašanās vietu. Piekļuves pārbaudes joprojām ir spēkā, kad lietotājs lejupielādē pārskatu.
| Joma | Jautājums pārskatu pakalpojumam |
|---|---|
| Stāvoklis | Kuriem ierakstiem jāsaglabājas pēc procesa aizstāšanas? |
| Konfigurācija | Kā viens artefakts darbojas katrā vidē? |
| Identitāte | Kura pakalpojuma identitāte var lasīt uzdevumu un rakstīt tā rezultātu? |
| Darbspēja | Vai izpildprocess var pieņemt darbu un vai tas var to pabeigt? |
| Apturēšana | Kas notiek ar pārņemtu uzdevumu, kad izpildprocess apstājas? |
| Jauda | Kurš ierobežojums iestājas pirmais: izpildprocesi, datubāze, glabātuve vai cits pakalpojums? |
Neturiet slepenos datus attēlā. Piegādājiet tos caur apstiprināto slepeno datu sistēmu. Reģistrējiet, kurām konfigurācijas izmaiņām vajag jaunu laidienu vai procesa pārstartēšanu.
Projektējiet atkārtotos mēģinājumus pirms izpildprocesu pievienošanas
Pieņemsim, ka izpildprocess saglabā PDF un tad apstājas pirms uzdevuma apstiprināšanas. Rinda piegādā uzdevumu vēlreiz. Otrs mēģinājums nedrīkst atkārtoti iekasēt maksu no klienta vai nosūtīt pretrunīgus pabeigšanas ziņojumus.
Kur piemēroti, izmantojiet idempotentu darbību. Atkārtotam tam pašam loģiskajam pieprasījumam jāsaglabā paredzētā iedarbība. Nosakiet stabilu pieprasījuma identitāti, noturīgi reģistrējiet rezultātu un pārbaudiet katru kļūmes punktu. AWS apraksta šo metodi drošu atkārtotu mēģinājumu ceļvedī.
Arī atkārtotiem mēģinājumiem vajag ierobežojumus. Izmantojiet noildzi, mēģinājumu limitu un aizkavi, kas novērš vienlaicīgus atkārtotus pieprasījumus. Saglabājiet neveiksmīgo darbu pārbaudei, nevis atkārtojiet to bezgalīgi.
Padariet vēlamo stāvokli pārskatāmu
Deklaratīva konfigurācija nosaka paredzēto izvietojumu. Kontrolieris cenšas uzturēt šo stāvokli. Piemēram, Kubernetes Deployment pārvalda lietotnes replikas un kontrolētus atjauninājumus. Lietotnei joprojām pareizi jāapstrādā aizstāšana.
Versējiet infrastruktūras un lietotnes konfigurāciju. Pārskatiet izmaiņas parastajā piegādes procesā. Novērojiet faktisko uzdevumu pabeigšanu, rindā gaidošo uzdevumu vecumu, kļūmes un atkarību ierobežojumus. Darbojošs process joprojām var nespēt radīt pārskatu.
Izvēlieties platformu, ko komanda var ekspluatēt
Cloud native neprasa katru lietotni pārvērst mikropakalpojumos. Modulāra lietotne pārvaldītā izpildvidē var izpildīt prasības. Vairāk pakalpojumu ievieš vairāk saskarņu, izvietošanas lēmumu un ekspluatācijas darba.
Dodiet izstrādes aģentam faktisko platformas līgumu: atbalstīto izpildvidi, identitātes metodi, datu pakalpojumus, izvietošanas noteikumus un vajadzīgos pierādījumus. Līdzās veiksmīgiem pieprasījumiem pārbaudiet pārtraukšanas un aizstāšanas darbību. Turpiniet ar pieejamību un kļūmju robežām.
Izpildiet uzdevumu
Izdomāts pārskatu pakalpojums glabā uzdevumus un pabeigtos failus konteinera diskā. Uzzīmējiet plūsmu caur pieprasījumu, uzdevumu, failu un lejupielādi. Atzīmējiet noturīgo stāvokli. Nosakiet, kas notiek, ja izpildprocess apstājas pēc faila ierakstīšanas, bet pirms uzdevuma apstiprināšanas.
Lejupielādēt darblapu (Markdown)Noņemot šo atzīmi, tiek dzēsts viss šajā pārlūkā saglabātais progress.
Progress paliek šajā pārlūkā. Bez konta un izsekošanas.
Avoti un papildu lasāmviela
- CNCF: Cloud Native Definition v1.1 ↗
- Kubernetes: Deployments ↗
- AWS Builders’ Library: Making retries safe with idempotent APIs ↗