Polku 04Oppitunti 5 / 10

Suunnittele ohjelmisto cloud native -ympäristöön

Yhdistä toistettava infrastruktuuri, korvattavat prosessit, pysyvä data ja observability. Arvioi cloud native -toteutusta konttipaketointia laajemmin.

Käytännön työ12 minTarkistettu

Julkaisija Näin kirjoitamme

Mitä opit

  • Erota konttipaketointi cloud native -toiminnasta.
  • Tunnista generoidun palvelun tilaan, retryihin ja prosessin vaihtumiseen liittyvät riskit.
  • Määritä platformin vaatimukset, jotka ihminen ja agentti voivat tarkistaa.

Määritä tarvittava toiminta

Cloud native -käytännöt tukevat toistettavaa kehitystä ja ylläpitoa julkisessa pilvessä, yksityisessä pilvessä ja hybridiympäristöissä. CNCF korostaa hallittavuutta, observabilitya ja häiriönsietoa muutosten aikana. Kontit ja orkestraatio voivat tukea näitä ominaisuuksia. Ne eivät yksin toteuta niitä.

Otetaan kuvitteellinen raporttipalvelu. AI-työkalu luo endpointin, workerin ja kontti-imagen. Demo tuottaa oikean PDF:n. Ennen tuotantoa tiimin pitää selvittää, mitä tapahtuu, kun platform korvaa workerin kesken työn.

Tämä koskee sekä sovellusta että infraa. Prosessi voi käynnistyä uudelleen, vaikka sen keskeneräinen työ katoaa.

Erota prosessi pysyvästä tilasta

Proto säilyttää työjonon ja valmiit raportit kontin levyllä. Kontin vaihtuminen voi poistaa molemmat. Useampi worker voi myös antaa eri vastauksen sen mukaan, mihin pyyntö osuu.

Korjatussa toteutuksessa työjono tallentuu pysyvästi ja raportit menevät hyväksyttyyn object storeen. Pyyntö saa työn tunnisteen. Worker varaa työn, luo tuloksen ja tallentaa sen sijainnin. Käyttöoikeudet tarkistetaan myös raporttia ladattaessa.

AsiaRaporttipalvelun kysymys
TilaMinkä tiedon pitää säilyä prosessin vaihtuessa?
KonfiguraatioMiten sama artefakti toimii eri ympäristöissä?
IdentiteettiMikä palveluidentiteetti saa lukea työn ja kirjoittaa tuloksen?
ToimintakuntoPystyykö worker vastaanottamaan ja tekemään työn?
SammutusMitä varatulle työlle tapahtuu workerin pysähtyessä?
KapasiteettiTuleeko vastaan ensin workerien, tietokannan, tallennuksen vai muun palvelun raja?

Pidä salaisuudet imagen ulkopuolella. Käytä hyväksyttyä secret-järjestelmää. Kirjaa, mitkä konfiguraatiomuutokset vaativat uuden julkaisun tai prosessin käynnistyksen.

Suunnittele retryt ennen skaalausta

Worker tallentaa PDF:n mutta pysähtyy ennen kuittausta. Jono toimittaa työn uudelleen. Uusi yritys ei saa laskuttaa asiakasta toistamiseen tai lähettää ristiriitaista valmistumisviestiä.

Käytä tarvittaessa idempotenttia operaatiota: saman loogisen pyynnön toisto säilyttää tarkoitetun vaikutuksen. Määritä pysyvä pyynnön tunniste, tallenna lopputulos ja testaa katkokset eri kohdissa. AWS käsittelee periaatetta turvallisten retryjen ohjeessa.

Rajaa myös retryt. Aseta timeout, yritysten enimmäismäärä ja viive, joka ehkäisee yhtäaikaiset uusintapyynnöt. Säilytä epäonnistunut työ tutkittavaksi loputtoman toiston sijaan.

Tee tavoitetilasta tarkastettava

Deklaratiivinen konfiguraatio kuvaa halutun tilan. Controller pyrkii ylläpitämään sitä. Esimerkiksi Kubernetes Deployment hallitsee sovelluksen replikoita ja päivityksiä. Sovelluksen pitää silti kestää prosessin vaihtuminen.

Versioi infra ja sovelluksen konfiguraatio. Tarkasta muutokset normaalissa toimitusprosessissa. Seuraa valmistuneita töitä, jonon ikää, virheitä ja riippuvuuksien rajoja. Käynnissä oleva prosessi ei välttämättä pysty tuottamaan raporttia.

Valitse ylläpidettävä platform

Cloud native ei edellytä jokaisen sovelluksen pilkkomista microserviceiksi. Modulaarinen sovellus hallitussa runtimessa voi täyttää tarpeen. Palveluiden määrän kasvu lisää rajapintoja, julkaisupäätöksiä ja ylläpitotyötä.

Anna kehitysagentille todelliset platformin vaatimukset: runtime, identiteetti, datapalvelut, julkaisusäännöt ja vaadittu näyttö. Testaa keskeytys ja prosessin vaihtuminen onnistuneiden pyyntöjen rinnalla. Jatka high availability -oppituntiin.

Sovella käytäntöön

Kuvitteellinen raporttipalvelu tallentaa työt ja valmiit tiedostot kontin levylle. Piirrä ketju pyynnöstä työhön, tiedostoon ja lataukseen. Merkitse pysyvä data. Määritä, mitä tapahtuu, jos worker pysähtyy tiedoston tallennuksen jälkeen mutta ennen työn kuittausta.

Lataa työpohja (Markdown)

Testaa, mitä opit

Platform korvaa raporttiworkerin vian jälkeen. Mikä tekee retrystä turvallisen?

Lähteet ja lisälukeminen

Aiheesta Taigan sivuilla