Share via


Javaslatok a biztonságos üzembe helyezési eljárásokhoz

Erre az Azure Well-Architected Framework Operational Excellence ellenőrzőlistára vonatkozó javaslatra vonatkozik:

OE:11 Egyértelműen definiálja a számítási feladat biztonságos üzembehelyezési eljárásait. A kis, növekményes, minőségi alapú kiadási módszerek eszményeinek hangsúlyozása. A kockázat szabályozásához modern üzembehelyezési mintákat és progresszív expozíciós technikákat használhat. A rutin üzemelő példányok és vészhelyzetek, illetve gyorsjavítások, üzemelő példányok használata.

Ez az útmutató a biztonságos üzembehelyezési eljárások (SDP) használatára vonatkozó javaslatokat ismerteti. A biztonságos üzembehelyezési folyamatok és eljárások meghatározzák, hogyan végezheti el és helyezheti üzembe a módosításokat a számítási feladatban. Az SDP implementálásához a kockázatkezelés szemszögéből kell átgondolnia az üzembe helyezéseket. Az SDP implementálásával minimalizálhatja az emberi hibák kockázatát az üzemelő példányokban, és korlátozhatja a problémás üzemelő példányok hatását a felhasználókra.

Fő tervezési stratégiák

A biztonságos üzembehelyezési eljárások megvalósítása során négy fontos irányelvet kell szem előtt tartani:

  • Biztonság és konzisztencia: Az éles számítási feladat minden módosítása eredendően kockázatos, és a biztonságra és a konzisztenciára kell összpontosítani.

  • Progresszív expozíció: Az üzembe helyezés által okozott problémák potenciális robbanási sugarát minimalizálhatja egy progresszív expozíciós üzembehelyezési modell alkalmazásával.

  • Állapotmodellek: Az üzemelő példányoknak állapotellenőrzést kell végeznie, mielőtt a fokozatos expozíció minden fázisa elkezdődhet.

  • Problémaészlelés: Ha problémákat észlel, az üzembe helyezést azonnal le kell állítani, és a helyreállítást kezdeményezni kell.

Az alábbi szakaszok részletes javaslatokat nyújtanak az egyes pontokra vonatkozóan.

Biztonság és konzisztencia

Akár egy frissítést helyez üzembe az alkalmazáskódban, az infrastruktúrát kódként (IaC), a funkciójelölőt vagy egy konfigurációs frissítést, kockázatot jelent a számítási feladat számára. Nincsenek alacsony kockázatú üzembe helyezések az éles környezetben. Minden üzembe helyezésnek szabványos mintát kell követnie, és automatizáltnak kell lennie a konzisztencia kényszerítése és az emberi hibák kockázatának minimalizálása érdekében. Kritikus fontosságú, hogy a számítási feladatok ellátási lánca és az üzembehelyezési folyamatok megbízhatóak, biztonságosak és egyértelműen meghatározott üzembehelyezési szabványokkal rendelkezzenek. Minden üzembe helyezést lehetséges kockázatként kezelhet, és minden üzembe helyezést ugyanolyan szintű kockázatkezelésnek vethet alá. A kockázatok ellenére továbbra is rendszeres módosításokat kell üzembe helyeznie a számítási feladatban. A rendszeres frissítések telepítésének elmulasztása más kockázatokat is magában hordoz, például a biztonsági réseket, amelyeket az üzemelő példányokon keresztül kell elhárítani. További információ: Javaslatok a számítási feladatok fejlesztési ellátási láncának megtervezéséhez.

A gyakori kis üzemelő példányok előnyben részesítik a ritkán nagy méretű üzemelő példányokat. A kisebb módosítások könnyebben megoldhatók, ha problémák merülnek fel, és a gyakori üzembe helyezések segítenek a csapatnak abban, hogy bizalmat építsen az üzembe helyezési folyamatba. Az is fontos, hogy tanuljon az éles környezetből a számítási feladatok folyamatainak áttekintésével, amikor az üzembe helyezés során anomáliával találkozik. Előfordulhat, hogy gyenge elemet talál az infrastruktúra kialakításában vagy a bevezetésben. Ha problémák merülnek fel az üzemelő példányok során, győződjön meg arról, hogy a hibás postmortemok az SDP-folyamat részét képezik az incidens tanulságainak rögzítéséhez.

Fokozatos kitettség üzembe helyezése

Üzembehelyezési problémák esetén a cél az, hogy a lehető leghamarabb elkapja őket, hogy minimálisra csökkentse a végfelhasználókra gyakorolt hatást. Ennek a célnak a megvalósítása érdekében implementáljon egy fokozatos bevezetési üzemi modellt, más néven progresszív expozíciós modellt. A kanári üzemelő példányok gyakori példája a progresszív expozíciónak. Ebben az üzembehelyezési modellben a belső vagy külső felhasználók egy kis csoportja kapja meg először az új funkciót. Miután az első csoport probléma nélkül futtatja az új verziót, a szolgáltatás egyre nagyobb csoportokra lesz üzembe helyezve, amíg a teljes felhasználói sokaság nem futtatja az új verziót. A funkciójelölők általában az új verzió engedélyezésére szolgálnak a kanári-üzemelő példányok célfelhasználói számára.

Egy másik gyakori üzembehelyezési modell a kék-zöld megközelítés. Ebben a modellben a számítási feladatok infrastruktúrájának két azonos készlete vagy készlete van üzembe helyezve. Mindkét készlet képes kezelni a teljes éles terhelést. Az első (kék) készlet az üzembe helyezés aktuális verzióját futtatja, ahol az összes felhasználó leszáll. A második (zöld) készlet frissül az új funkcióval, és belsőleg tesztelve van. A belső tesztelést követően a rendszer az éles forgalom egy részét a kék készletből a zöld készletbe irányítja. A kanári üzemelő példányokhoz hasonlóan a bevezetés is progresszív, mivel a forgalom nagyobb részét a zöld készletre irányítja át egymás után nagyobb bevezetési hullámokban. A bevezetés befejezése után a frissítési készlet lesz a kék készlet, a zöld készlet pedig készen áll a következő üzembe helyezésre. A két készlet logikailag el van választva egymástól a meghibásodások elleni védelem érdekében. A kék-zöld modell egy változata üzembe helyezhető olyan számítási feladatokban, amelyek az Üzembehelyezési bélyegek tervezési mintát használják , ha egyszerre egy bélyegen helyezik üzembe.

Mindkét modellben a bevezetés egyes fázisai közötti időnek elég hosszúnak kell lennie ahhoz, hogy a számítási feladat állapotmetrikáit monitorozza. A bevezetési csoportok közötti időt és időt meg kell adnia, hogy a különböző régiókból származó felhasználóknak vagy a különböző feladatokat végző felhasználóknak legyen idejük a számítási feladat normál kapacitásban való használatára. A sütési időket órákban és napokban kell mérni, nem pedig percekben. A sütési időnek az egyes bevezetési csoportok esetében is meg kell növekednie, hogy a nap folyamán különböző időzónákat és használati mintákat számoljon fel.

Állapotmodellek

A megfigyelhetőségi platform és a megbízhatósági stratégiák részeként robusztus állapotmodellt fejleszthet. Az állapotmodellnek részletes betekintést kell biztosítania a számítási feladat összetevőibe és általános állapotába. A bevezetés során, ha riasztást kap egy végfelhasználóhoz kapcsolódó állapotváltozásról, a bevezetést azonnal le kell állítani, és vizsgálatot kell végezni a riasztás okának megállapításához a következő lépés meghatározásához. Ha a végfelhasználók nem jelentenek problémát, és az összes egészségügyi mutató zöld marad a sütési idő alatt, a bevezetésnek folytatódnia kell. Mindenképpen vegye fel a használati metrikákat az állapotmodellbe, hogy a felhasználó által jelentett problémák és a negatív állapotjelek hiánya ne rejtse el a problémát. További információ: Állapotmodell létrehozása.

Problémaészlelés

Ha az üzembe helyezés problémát okoz az egyik bevezetési csoportban, a bevezetésnek azonnal le kell állnia. A riasztás beérkezése után azonnal meg kell vizsgálni a probléma okát és a hatások súlyosságát. A probléma utáni helyreállítás a következőket tartalmazhatja:

  • Az üzembe helyezés visszaállításához vonja vissza az üzembe helyezésben végrehajtott módosításokat, és térjen vissza az utolsó ismert munkakonfigurációra.

  • Az üzembe helyezés továbbterjesztése a probléma megoldásával a bevezetés közepén. A problémákat a bevezetés közepén egy gyorsjavítás alkalmazásával vagy a probléma más módon történő minimalizálásával háríthatja el.

  • Új infrastruktúra üzembe helyezése az utolsó ismert munkakonfiguráció használatával.

A módosítások, különösen az adatbázis, séma vagy más állapotalapú összetevők módosításainak visszaállítása összetett lehet. Az SDP-irányelveknek egyértelmű útmutatást kell adniuk arra vonatkozóan, hogyan kezelheti az adatváltozásokat a számítási feladat adattulajdon-kialakításának megfelelően. Hasonlóképpen, a továbbgördülést gondosan kell kezelni, hogy az SDP ne legyen elhanyagolva, és hogy a gyorsjavítás vagy más minimalizálási műveletek biztonságosan legyenek végrehajtva.

Általános SDP-javaslatok

  • Implementálhatja a verziószámozást a buildösszetevők között, így gondoskodhat arról, hogy szükség esetén visszagördülhessen és továbbléphessen.

  • Használjon kiadási folyamatot vagy törzsalapú elágaztatási struktúrát, amely gitflow vagy környezetalapú elágaztatási struktúra helyett szoros szinkronizálást kényszerít ki a fejlesztői csapat között.

  • Automatizálja az SDP lehető legnagyobb részét. Az IaC- és alkalmazás-folyamatos integrációs és folyamatos kézbesítési (CI/CD-) folyamatok automatizálásával kapcsolatos részletes útmutatásért lásd: Javaslatok az automatizálás implementálásához.

  • Ci-eljárásokkal rendszeresen integrálhatja a kódmódosításokat az adattárakba. A CI-eljárások segítségével azonosíthatja az integrációs ütközéseket, és csökkentheti a nagy, kockázatos egyesítések valószínűségét. További információ: Folyamatos integrációs útmutató.

  • Funkciójelölők használatával szelektíven engedélyezheti vagy letilthatja az új funkciókat vagy változásokat az éles környezetben. A funkciójelölők segítségével szabályozhatja az új kód kitettségét, és problémák esetén gyorsan visszaállíthatja az üzembe helyezést.

  • Az éles környezetet tükröző átmeneti környezetek módosításainak üzembe helyezése. A gyakorlati környezetek lehetővé teszik a módosítások ellenőrzött környezetben való tesztelését, mielőtt üzembe helyeznénk az élő környezetben.

  • A módosítások biztonságos üzembe helyezésének biztosítása érdekében hozzon létre előre üzembe helyezési ellenőrzéseket, beleértve a kódellenőrzést, a biztonsági vizsgálatokat és a megfelelőségi ellenőrzéseket.

  • Áramkör-megszakítók implementálása a problémákat tapasztaló szolgáltatás felé irányuló forgalom automatikus leállításához. Ezzel megakadályozhatja a rendszer további romlását.

Vészhelyzeti SDP-protokollok

Olyan előíró protokollokat hozhat létre, amelyek meghatározzák, hogyan módosítható az SDP egy gyorsjavításhoz vagy olyan vészhelyzeti problémákhoz, mint a biztonsági rések vagy a biztonsági rések kitettsége. A vészhelyzeti SDP-protokollok például a következők lehetnek:

  • Előléptetési és jóváhagyási fázis gyorsítása.

  • Füsttesztelés és integrációs tesztelés gyorsítása.

  • Sütési idő csökkentése.

Bizonyos esetekben a vészhelyzet korlátozhatja a minőséget és tesztelheti a kapukat, de a kapukat a lehető leggyorsabban kell futtatni, mint egy sávon kívüli gyakorlatot. Győződjön meg arról, hogy meghatározza, hogy ki hagyhatja jóvá az SDP-gyorsítást vészhelyzetben, és hogy milyen feltételeknek kell megfelelnie a gyorsítás jóváhagyásához. A vészhelyzeti SDP-protokollokat a vészhelyzeti reagálási tervhez igazítva gondoskodhat arról, hogy minden vészhelyzetet ugyanazon protokollok szerint kezeljenek.

Megfontolandó szempontok

A biztonságos üzembehelyezési eljárások létrehozása és fenntartása összetett. A hatékony szabványok teljes körű implementálásának sikere a szoftverfejlesztés számos területén alkalmazott gyakorlat érettségétől függ. Az automatizálás, az IaC-only használata az infrastruktúra változásaihoz, az elágaztatási stratégiák konzisztenciája, a funkciójelölők használata és sok más eljárás segíthet a biztonságos üzembe helyezés biztosításában. Ezzel az útmutatóval optimalizálhatja a számítási feladatokat, és tájékoztathatja a terveket a fejlesztésekről a gyakorlatok fejlődésével kapcsolatban.

Azure-beli segítségnyújtás

  • Az Azure Pipelines és a GitHub Actions jóváhagyási kapuk használatával támogatják a többszakaszos üzembe helyezéseket, amelyek segítségével megtervezheti az üzembe helyezések fokozatos expozíciós bevezetését.

  • A kódverziók közötti egyszerű váltáshoz használja Azure App Service előkészítési pontokat. Az előkészítési pontok hasznosak az átmeneti környezetekben való teszteléshez, és kék-zöld üzemelő példányokhoz használhatók.

  • Webalkalmazás-funkciójelölők tárolása és kezelése Azure App Configuration. Ezzel a szolgáltatással egységes felügyeleti síkon hozhat létre, módosíthat és telepíthet funkciókat.

  • Számításifeladat-alkalmazások üzembe helyezése a virtuális gépen virtuálisgép-alkalmazások használatával.

  • Az Azure-terheléselosztók használatával üzembehelyezési stratégiákat implementálhat, és natív erőforrások használatával közzéteheti a számítási feladatokhoz tartozó alkalmazások állapotát.

  • Az Application Health bővítmény használatával jelentést készít az alkalmazás állapotáról egy virtuálisgép-méretezési csoport példányából. A bővítmény mintavételt küld egy helyi alkalmazásvégponton, és frissíti az állapotot az alkalmazástól kapott TCP/HTTP(S) válaszok alapján.

  • Az Azure Logic Apps használatával bármikor létrehozhatja az alkalmazás új verzióját, amikor frissítést végeznek rajta. Az Azure megőrzi az alkalmazásverziók előzményeit, és visszaállíthatja vagy előléptetheti a korábbi verziókat.

  • Számos Azure Database-szolgáltatás biztosít időponthoz kötött visszaállítási funkciót, amely segíthet a visszaállításban. Az időponthoz kötött visszaállítást támogató szolgáltatások a következők:

Példa

A Azure Kubernetes Service (AKS) fürtök architektúraútmutatójának kék-zöld üzembe helyezését ismertető cikkben talál egy példát ennek az üzembehelyezési modellnek a használatára.

Működési kiválósági ellenőrzőlista

Tekintse meg a javaslatok teljes készletét.