Put 04Lekcija 5 / 10

Dizajnirajte softver za cloud native okruženje

Povežite ponovljivu infrastrukturu, zamjenjive procese, trajno stanje i ponašanje koje se može pratiti. Procijenite cloud native dizajn izvan pakiranja u kontejnere.

Praktična primjena12 minPregledano

Objavljuje Kako pišemo

Provjerite razumijevanjePlatforma nakon kvara zamijeni radni proces koji izrađuje izvješća. Što ponovni pokušaj čini sigurnim?Napravite vježbu
Platforma nakon kvara zamijeni radni proces koji izrađuje izvješća. Što ponovni pokušaj čini sigurnim?

Što ćete naučiti

  • Razlikovati pakiranje u kontejnere od cloud native ponašanja.
  • Prepoznati rizike stanja, ponovnih pokušaja i zamjene u generiranoj usluzi.
  • Odrediti 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 sustave kojima se tijekom promjena može upravljati, čiji se rad može pratiti i koji ostaju otporni na kvarove. Kontejneri i orkestracija mogu podržati taj pristup. Sami ne osiguravaju sva ta svojstva.

Počnite s izmišljenom uslugom izvješća. AI alat stvara krajnju točku, radni proces i image kontejnera. Demonstracija proizvodi ispravan PDF. Prije produkcije tim mora odgovoriti na drugo pitanje: što se događa kada platforma zamijeni radni proces tijekom zadatka?

To je pitanje dizajna aplikacije i infrastrukture. Ponovno pokretanje može obnoviti proces, a izgubiti njegov nedovršen rad.

Odvojite proces od trajnog stanja

Prototip drži zadatke na čekanju i dovršena izvješća na disku kontejnera. Zamjena kontejnera može ukloniti oboje. Dodavanje radnih procesa može uzrokovati i različite odgovore, ovisno o tome koji radni proces primi zahtjev.

Revidirani dizajn upotrebljava trajno spremište zadataka i odobreno objektno spremište. Zahtjev bilježi identitet zadatka. Radni proces preuzima zadatak, stvara rezultat i bilježi njegovu lokaciju. Provjere pristupa vrijede i kada korisnik preuzima izvješće.

PitanjePitanje za uslugu izvješća
StanjeKoji zapisi moraju preživjeti zamjenu procesa?
KonfiguracijaKako isti artefakt radi u svakom okruženju?
IdentitetKoji identitet usluge može pročitati zadatak i zapisati njegov rezultat?
Ispravnost radaMože li radni proces prihvatiti rad i može li ga dovršiti?
ZaustavljanjeŠto se događa s preuzetim zadatkom kada radni proces stane?
KapacitetKoje se ograničenje prvo doseže: radni procesi, baza podataka, spremište ili druga usluga?

Držite tajne podatke izvan imagea. Dostavite ih kroz odobren sustav za tajne podatke. Zabilježite koje promjene konfiguracije zahtijevaju novo izdanje ili ponovno pokretanje procesa.

Osmislite ponovne pokušaje prije dodavanja radnih procesa

Pretpostavimo da radni proces spremi PDF, a zatim stane prije potvrde zadatka. Red ponovno dostavi zadatak. Drugi pokušaj ne smije drugi put naplatiti klijentu ili poslati proturječne poruke o dovršetku.

Upotrijebite idempotentnu operaciju gdje je primjereno. Ponavljanje istog logičkog zahtjeva treba sačuvati predviđeni učinak. Odredite stabilan identitet zahtjeva, trajno zabilježite ishod i provjerite što se događa na svakom mjestu mogućeg kvara. AWS opisuje tu tehniku u vodiču za sigurne ponovne pokušaje.

Ponovni pokušaji također trebaju ograničenja. Upotrijebite vremensko ograničenje, ograničen broj pokušaja i odgodu koja izbjegava istodobne ponovljene zahtjeve. Sačuvajte neuspjeli rad za pregled umjesto beskonačnog ponavljanja.

Omogućite pregled željenog stanja

Deklarativna konfiguracija navodi namjeravano postavljanje. Kontroler radi na održavanju tog stanja. Primjerice, Kubernetes Deployment upravlja replikama aplikacije i kontroliranim ažuriranjima. Aplikacija i dalje mora ispravno podnijeti zamjenu.

Verzionirajte konfiguraciju infrastrukture i aplikacije. Pregledajte promjene kroz uobičajeni postupak isporuke. Pratite stvarno dovršavanje zadataka, starost reda čekanja, kvarove i ograničenja ovisnosti. Pokrenut proces i dalje može biti nesposoban proizvesti izvješće.

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 sučelja, odluka o postavljanju i operativnog rada.

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

Napravite vježbu

Izmišljena usluga izvješća pohranjuje zadatke i dovršene datoteke na disk kontejnera. Nacrtajte tijek kroz zahtjev, zadatak, datoteku i preuzimanje. Označite trajno stanje. Odredite što se događa ako radni proces stane nakon zapisivanja datoteke, a prije potvrde zadatka.

Preuzmi radni list (Markdown)
Provjerite razumijevanje ↑

Nastavite učiti

Izvori i dodatno čitanje

Povezani Taigini materijali

← Prethodna lekcija: Odredite infrastrukturu potrebnu nakon prototipa