Tervezzen szoftvert cloud native környezetre
ElvégezveKapcsolja ö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.
Kiadó TaigaHogyan í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
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ület | Kérdés a riportszolgáltatáshoz |
|---|---|
| Állapot | Mely rekordoknak kell túlélniük a folyamat cseréjét? |
| Konfiguráció | Hogyan fut ugyanaz az artifact minden környezetben? |
| Identitás | Mely szolgáltatásidentitás olvashatja a feladatot, és írhatja az eredményét? |
| Működőképesség | Tud a worker munkát fogadni, és be is tudja fejezni? |
| Leállítás | Mi történik a lefoglalt feladattal a worker leállásakor? |
| Kapacitás | Melyik 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)A kijelölés megszüntetése törli az ebben a böngészőben mentett összes haladást.
A haladás ebben a böngészőben marad. Nincs fiók, nincs követés.
Források és további olvasnivaló
- CNCF: Cloud Native Definition v1.1 ↗
- Kubernetes: Deployments ↗
- AWS Builders’ Library: Making retries safe with idempotent APIs ↗