Útvonal 04Lecke 5 / 10

Tervezzen szoftvert cloud native környezetre

Kapcsolja össze a megismételhető infrastruktúrát, a lecserélhető folyamatokat, a tartós állapotot és a megfigyelhető működést. A cloud native tervezést a konténercsomagoláson túl értékelje.

Gyakorlati12 minFelülvizsgálva

Kiadó Hogyan írunk

Ellenőrizze, mit értett megA platform hiba után lecserél egy riportworkert. Mitől lesz biztonságos az újrapróbálkozás?Végezze el a gyakorlatot
A platform hiba után lecserél egy riportworkert. Mitől lesz biztonságos az újrapróbálkozás?

Amit megtanulhat

  • Megkülönböztetni a konténercsomagolást a cloud native működéstől.
  • Azonosítani az állapot, az újrapróbálkozás és a csere kockázatait egy generált szolgáltatásban.
  • Meghatározni az agentek és emberek által is ellenőrizhető platformszerződést.

Határozza meg a szükséges működést

A cloud native gyakorlatok megismételhető fejlesztést és üzemeltetést támogatnak nyilvános, privát vagy hibrid környezetekben. A CNCF olyan rendszereket emel ki, amelyek a változások során is kezelhetők, megfigyelhetők és ellenállók maradnak. A konténerek és az orchestration támogathatják ezt a megközelítést. Önmagukban nem biztosítják mindezeket a tulajdonságokat.

Induljunk ki egy fiktív riportszolgáltatásból. Egy AI-eszköz létrehoz egy végpontot, egy workert és egy konténerimage-et. A demó elkészíti a helyes PDF-et. Éles használat előtt a csapatnak egy másik kérdést is meg kell válaszolnia: mi történik, ha a platform feladat közben lecseréli a workert?

Ez alkalmazástervezési és infrastrukturális kérdés is. Az újraindítás helyreállíthat egy folyamatot úgy, hogy közben elveszik a befejezetlen munka.

Válassza külön a folyamatot a tartós állapottól

A prototípus a várakozó feladatokat és az elkészült riportokat a konténer lemezén tartja. A konténer cseréjével mindkettő eltűnhet. Több worker esetén a válasz attól is függhet, melyik worker kapja meg a kérést.

A módosított terv tartós feladattárat és jóváhagyott objektumtárat használ. A kérés rögzít egy feladatazonosítót. A worker lefoglalja a feladatot, elkészíti az eredményét, és rögzíti az eredmény helyét. A hozzáférési ellenőrzések akkor is érvényesek, amikor a felhasználó letölti a riportot.

TerületKérdés a riportszolgáltatáshoz
ÁllapotMely rekordoknak kell túlélniük a folyamat cseréjét?
KonfigurációHogyan fut ugyanaz az artifact minden környezetben?
IdentitásMely szolgáltatásidentitás olvashatja a feladatot, és írhatja az eredményét?
MűködőképességTud a worker munkát fogadni, és be is tudja fejezni?
LeállításMi történik a lefoglalt feladattal a worker leállásakor?
KapacitásMelyik korlát jelentkezik először: a workereké, az adatbázisé, a tárolóé vagy más szolgáltatásé?

A titkos értékeket tartsa az image-en kívül. A jóváhagyott titokkezelő rendszeren keresztül adja át őket. Rögzítse, mely konfigurációváltozásokhoz kell új kiadás vagy a folyamat újraindítása.

A workerek számának növelése előtt tervezze meg az újrapróbálkozást

Tegyük fel, hogy a worker elment egy PDF-et, majd a feladat nyugtázása előtt leáll. A sor ismét kézbesíti a feladatot. A második próbálkozás nem terhelheti meg újra az ügyfelet, és nem küldhet egymásnak ellentmondó befejezési üzeneteket.

Ahol indokolt, használjon idempotens műveletet. Ugyanannak a logikai kérésnek az ismétlése őrizze meg a kívánt hatást. Határozzon meg stabil kérésazonosítót, rögzítse tartósan az eredményt, és ellenőrizze az egyes hibapontok következményeit. Az AWS a biztonságos újrapróbálkozás útmutatójában ismerteti ezt a technikát.

Az újrapróbálkozásnak is kellenek korlátok. Használjon időkorlátot, próbálkozásszám-korlátot és az egyidejű ismételt kéréseket elkerülő késleltetést. A sikertelen munkát őrizze meg vizsgálatra a végtelen újrapróbálkozás helyett.

Tegye review során ellenőrizhetővé a kívánt állapotot

A deklaratív konfiguráció megadja a kívánt telepítési állapotot. Egy controller ennek fenntartásán dolgozik. Például a Kubernetes Deployment kezeli az alkalmazás replikáit és a szabályozott frissítéseket. Az alkalmazásnak továbbra is helyesen kell kezelnie a cserét.

Verziózza az infrastruktúra és az alkalmazás konfigurációját. A változtatásokat a szokásos szállítási folyamatban vizsgálja felül. Figyelje a tényleges feladatbefejezést, a sorban töltött időt, a hibákat és a függőségek korlátait. Egy futó folyamat továbbra is képtelen lehet riportot előállítani.

Válasszon a csapat által üzemeltethető platformot

A cloud native megközelítés nem követeli meg, hogy minden alkalmazást microservice-ekre bontsanak. Egy felügyelt futtatókörnyezetben működő moduláris alkalmazás is teljesítheti a követelményeit. Több szolgáltatás több interfészt, telepítési döntést és üzemeltetési munkát hoz.

Adja meg a fejlesztő agentnek a tényleges platformszerződést: támogatott futtatókörnyezet, identitáskezelési módszer, adatszolgáltatások, telepítési szabályok és szükséges bizonyítékok. A sikeres kérések mellett tesztelje a megszakítás és a csere működését is. Folytassa a rendelkezésre állás és hibahatárok témával.

Végezze el a gyakorlatot

Egy fiktív riportszolgáltatás a konténer lemezén tárolja a feladatokat és az elkészült fájlokat. Rajzolja fel a kéréstől a feladaton és a fájlon át a letöltésig tartó folyamatot. Jelölje a tartós állapotot. Határozza meg, mi történik, ha a worker a fájl kiírása után, de a feladat visszaigazolása előtt leáll.

Munkalap letöltése (Markdown)
Ellenőrizze, mit értett meg ↑

Tanulás folytatása

Források és további olvasnivaló

Kapcsolódó Taiga-olvasmányok

← Előző lecke: Határozza meg a prototípuson túli infrastruktúrát