Put 04Lekcija 5 / 10

Dizajnirajte softver za cloud native okruženje

Povežite ponovljivu infrastrukturu, zamjenjive procese, trajno stanje i vidljivo ponašanje. Procijenite cloud native dizajn izvan pakovanja u kontejnere.

Praktični nivo12 minPregledano

Objavljuje Kako pišemo

Provjerite razumijevanjePlatforma zamjenjuje radni proces za izvještaje nakon neuspjeha. Šta čini ponovni pokušaj sigurnim?Uradite vježbu
Platforma zamjenjuje radni proces za izvještaje nakon neuspjeha. Šta čini ponovni pokušaj sigurnim?

Šta ćete naučiti

  • Razlikujte pakovanje u kontejnere od cloud native ponašanja.
  • Utvrdite rizike stanja, ponovnih pokušaja i zamjene u generisanoj usluzi.
  • Odredite ugovor platforme koji agenti i ljudi mogu provjeriti.

Odredite potrebno ponašanje

Cloud native prakse podržavaju ponovljiv razvoj i operativni rad u javnim, privatnim ili hibridnim okruženjima. CNCF naglašava sisteme kojima se može upravljati, čije se stanje može pratiti i koji ostaju otporni dok se mijenjaju. Kontejneri i orkestracija mogu podržati ovaj pristup. Sami ne uspostavljaju sva ova svojstva.

Počnite od izmišljene usluge izvještaja. AI alat stvara krajnju tačku, radni proces (worker) i sliku kontejnera. Demonstracija proizvodi tačan PDF. Prije produkcije tim mora odgovoriti na drugo pitanje: šta se desi kada platforma zamijeni radni proces tokom zadatka?

Ovo je pitanje dizajna aplikacije koliko i infrastrukture. Ponovno pokretanje može vratiti proces, a izgubiti njegov nedovršeni rad.

Odvojite proces od trajnog stanja

Prototip čuva zadatke u redu čekanja i završene izvještaje na disku kontejnera. Zamjena kontejnera može ukloniti oboje. Dodavanje radnih procesa može proizvesti i različite odgovore zavisno od toga koji radni proces primi zahtjev.

Revidirani dizajn koristi trajno spremište zadataka i odobreno objektno spremište. Zahtjev bilježi identitet zadatka. Radni proces preuzima zadatak, stvara njegov rezultat i bilježi lokaciju rezultata. Provjere pristupa i dalje važe kada korisnik preuzima izvještaj.

Pitanje dizajnaPitanje za uslugu izvještaja
StanjeKoji zapisi moraju ostati sačuvani nakon zamjene procesa?
KonfiguracijaKako isti artefakt radi u svakom okruženju?
IdentitetKoji identitet usluge može čitati zadatak i pisati njegov rezultat?
Ispravnost radaMože li radni proces prihvatiti rad i može li ga završiti?
GašenjeŠta se dešava s preuzetim zadatkom kada radni proces stane?
KapacitetKoje ograničenje prvo nastupa: radni procesi, baza podataka, spremište ili druga usluga?

Držite tajne izvan slike. Dostavljajte ih kroz odobreni sistem za tajne. Zabilježite koje promjene konfiguracije zahtijevaju novo izdanje ili ponovno pokretanje procesa.

Osmislite ponovne pokušaje prije dodavanja radnih procesa

Pretpostavite da radni proces sačuva PDF i zatim stane prije potvrde zadatka. Red čekanja ponovo dostavlja zadatak. Drugi pokušaj ne smije drugi put naplatiti klijentu niti poslati suprotstavljene poruke o završetku.

Koristite idempotentnu operaciju gdje je prikladno. Ponavljanje istog logičkog zahtjeva treba sačuvati namjeravani učinak. Odredite stabilan identitet zahtjeva, trajno zabilježite ishod i provjerite šta se dešava na svakoj tački neuspjeha. AWS opisuje ovu tehniku u vodiču za sigurne ponovne pokušaje.

Ponovni pokušaji trebaju i ograničenja. Koristite vremensko ograničenje, ograničenje broja pokušaja i odgodu koja izbjegava istovremene ponovljene zahtjeve. Sačuvajte neuspjele zadatke za pregled umjesto beskonačnog ponavljanja.

Učinite željeno stanje dostupnim za pregled

Deklarativna konfiguracija navodi namjeravano raspoređivanje. Kontroler radi na održavanju tog stanja. Naprimjer, Kubernetes Deployment upravlja replikama aplikacije i kontrolisanim ažuriranjima. Aplikacija i dalje mora ispravno obraditi zamjenu.

Verzionišite konfiguraciju infrastrukture i aplikacije. Pregledajte promjene kroz uobičajeni postupak isporuke. Pratite stvarni završetak zadataka, vrijeme čekanja u redu, neuspjehe i ograničenja zavisnosti. Proces koji radi i dalje može biti nesposoban proizvesti izvještaj.

Odaberite platformu kojom tim može upravljati

Cloud native ne zahtijeva da svaka aplikacija postane skup mikroservisa. Modularna aplikacija na upravljanom izvršnom okruženju može ispuniti svoje zahtjeve. Više usluga uvodi više interfejsa, odluka o raspoređivanju i operativnog rada.

Dajte razvojnom agentu stvarni ugovor platforme: podržano izvršno okruženje, metodu identiteta, usluge podataka, pravila raspoređivanja i potrebne dokaze. Uz uspješne zahtjeve testirajte ponašanje pri prekidu i zamjeni. Nastavite s dostupnošću i granicama otkaza.

Uradite vježbu

Izmišljena usluga izvještaja čuva zadatke i završene fajlove na disku kontejnera. Nacrtajte tok kroz zahtjev, zadatak, fajl i preuzimanje. Označite trajno stanje. Odredite šta se desi ako radni proces stane nakon pisanja fajla, a prije potvrde zadatka.

Preuzmite radni list (Markdown)
Provjerite razumijevanje ↑

Nastavite učiti

Izvori i dodatno čitanje

Povezano štivo kompanije Taiga

Prethodna lekcija: Odredite infrastrukturu izvan prototipa