Infrastruktúra mint kód használata az Azure célzónák frissítéséhez

Ez a cikk az infrastruktúra kódként (IaC) való használatának előnyeit ismerteti az Azure-beli célzónák frissítéséhez. A szervezeteknek működésük során frissíteniük kell a kezdőzónáikat, hogy a konfigurációk helyesek legyenek, és reagáljanak a módosítások szükségességére.

Az IaC képes kezelni az egész életciklust, és kiválóan kezeli az általa telepített erőforrásokat. A szervezeteknek az Azure-beli célzónák IaC-vel való üzembe helyezését kell megtervezniük. Megfelelő tervezésre van szükség ahhoz, hogy a meglévő, nem IaC típusú erőforrásokat összehangoljuk az állapotkezeléssel támogatott IaC-erőforrásokkal. Le kell képeznie a meglévő erőforrásokat a kívánt állapotra.

További információért lásd: Azure célzóna naprakészen tartása.

Az infrastruktúra mint kód működése

Az IaC az infrastruktúra-erőforrások életciklusának géppel olvasható definíciós fájlok használatával történő kezelésére szolgáló gyakorlatra és eszközökre vonatkozik. Az infrastruktúra definíciója meg van írva, verziószámozott, folyamatokon keresztül üzembe helyezve, majd a számítási feladatok üzembe helyezésének részévé válik.

Az IaC-technológiák deklaratívak, ami azt jelenti, hogy az IaC futtatásakor az infrastruktúra kívánt állapotát fogja kódban, és a tényleges állapotot a kívánt állapotba helyezi. Ha szkriptekkel konfigurálja az infrastruktúrát, például az Azure CLI-t vagy az Azure PowerShellt, azok imperatív. Az imperatív szkriptek műveletkészletet hajtanak végre, és az eredmény az aktuális állapottól és a műveletek utáni állapottól függ.

Ha tehát egy Azure-erőforrás kóddefiníciójaként rendelkezik infrastruktúrával, a definíciót tetszés szerint futtathatja, és csak akkor hoz létre változást, ha:

  • A definíció módosítja az új erőforrások hozzáadását, a korábban üzembe helyezett erőforrások eltávolítását vagy a korábban üzembe helyezett erőforrások módosítását.
  • Az üzembe helyezett erőforrás eltér a konfigurációtól, hogy visszaállítsa a konfigurációt a definiáltra.

Az IaC használatával visszaállíthatja az állapotot úgy, hogy eltávolítja a már nem szükséges erőforrásokat, és számos módosítással felügyeli az erőforrások életciklusát.

Jegyzet

Az erőforrások IaC-vel való eltávolításának konkrét mechanikája változó. Az Azure Bicep például megköveteli egy complete üzembe helyezési típus használatát a hatókörön kívül eső erőforrások javításához. Ez a parancs csak meghatározott hatókörökben működik. A Terraform esetében az erőforrások egy lifecycle metaargumentumot használnak, amely útmutatást nyújt arra vonatkozóan, hogy a Terraform hogyan kezelje az erőforrásokat.

Az Azure-beli célzónák esetében az infrastruktúra kódként két fő lehetőség közül választhat:

Az Azure-beli célzónák (ALZ) és az infrastruktúra kódként való frissítésének előnyei

Az alábbi előnyök azt mutatják be, hogy miért érdemes az infrastruktúrát kódként használni a kezdőzóna frissítéséhez.

Munkamennyiség csökkentése

A manuális módosításokhoz képest kevesebb erőfeszítést igényel az infrastruktúra kódként való használata a frissítések végrehajtásához. Az IaC üzembe helyezése a következő kérdések megválaszolásában segít:

  • Hogyan vannak konfigurálva ma az erőforrások?
  • Hogyan módosítja az erőforrásokat ez a frissítés?

Amikor egy infrastruktúra kódszerszámkészletként fut, az összehasonlítást vagy a módosítások "különbségi" olvasását eredményezheti. Tekintse át ezt a jelentést, mielőtt véglegesíti a módosításokat a környezetben.

Az eszközkészlet operátor vagy mérnök helyett képes a változásra vonatkozó információk fordítására.

Hibák csökkentése

Az üzemelő példányok programozott jellege miatt az infrastruktúra mint kód csökkenti az emberi hibákat, amikor módosításokat végez. Csak a definiált elemeket módosítja, és előnézeti lehetőségekkel rendelkezik, így csökkenti a sikertelen vagy hiányos módosítások által okozott kimaradást. Emellett továbbfejlesztett tesztelési lehetőségeket is kínál.

Verziókövetés és előzmények

A kódtelepítési infrastruktúra definíciós fájllal van alátámasztva, így a forrásvezérlővel kezelheti a definíciók verzióit. A használt IaC-módszertől függően hivatkozhat az Azure for Bicep üzemelő példányaira vagy a Terraform állapotfájljára a korábbi üzemelő példányok előzményeinek áttekintéséhez.

A forrásvezérlési eljárások használatakor az IaC egy új ágát hozza létre a módosítások és változatok hozzáadásához. A forrásvezérlő rendszerben az ág előzményei rögzítik az iterációkat és a módosításokat. A módosításokat egy tesztkörnyezetben is üzembe helyezheti, amíg készen nem áll a módosítások egyesítésére és üzembe helyezésére az éles környezetben. További információ: Az Azure-beli célzónák tesztelési megközelítése. Ebben a ciklusban az üzembe helyezési rekordok rögzítik a használt verziót és az üzembe helyezett erőforrásokat, ami jól látható előzményeket biztosít.

Ezeket a tesztelési módszereket a Bicep használatával általános tesztelési célokra használhatja. Az alábbi módszerekkel a kód üzembe helyezése előtt elvégezheti a tesztelést, és tesztelhet nem éles környezetekből az ágadon.

A biztonság megkeményítése

Kövesse az infrastruktúra kódtelepítési identitásként való biztonságossá tételéhez szükséges útmutatást a Biztonsági szempontok című cikkben.

Különösen az infrastruktúra mint kód telepítések esetében vegye figyelembe az alábbi módszereket a biztonság megerősítésére.

  • Mindig használjon folyamatos kézbesítési folyamatokat az infrastruktúra kódként való üzembe helyezéséhez. Ne futtasson üzembe helyezéseket a helyi fejlesztői gépekről vagy más nem felügyelt eszközökről.
  • Használjon különálló identitásokat a Terraform-tervhez és a Bicep-mi-ha műveletekhez a műveletek alkalmazása és üzembe helyezése helyett. A terv- és szimulációs műveletekhez csak olvasási hozzáférés szükséges, míg az alkalmazási és üzembe helyezési műveleteknek írási hozzáférésre van szükségük.
  • Használjon emberi jóváhagyási kapukat az éles alkalmazás /üzembe helyezés fázisához. Ne hagyatkozz egyedül az automatizált ellenőrzésekre. Győződjön meg arról, hogy valaki ellenőrzi a Terraform-tervet vagy a Bicep mi-ha kimenetét, mielőtt módosításokat alkalmaz az éles környezetben.
  • Szabályozott folyamatokat használhat egy központi helyen tárolt és felügyelt sablon megadásával. Ez a módszer biztosítja, hogy minden üzembe helyezés ugyanazokat a biztonsági és megfelelőségi védőkorlátokat kövesse.

Tesztelési környezetek

Az IaC telepítések ismételhetők, így ugyanazt a definíciót használhatja egy második (vagy több) környezet telepítéséhez. Ez a módszer hasznos a módosítások teszteléséhez.

Ha például az Azure Firewallt a Prémium termékváltozat használatával szeretné lecserélni, üzembe helyezhet egy tesztkörnyezetet, és az éles környezet módosítása nélkül érvényesítheti a módosításokat.

Adattár felépítése

Önnek biztosnak kell lennie abban, hogy amit a nem éles környezetekben üzembe helyez és tesztel, az ugyanaz, mint amit éles környezetben üzembe helyez. Használjon egy adattárszerkezetet, amely támogatja ezt a gyakorlatot.

  • A törzsalapú fejlesztés funkcióágakkal való használatával biztosíthatja, hogy az összes módosítás vissza legyen vonva a főágba, mielőtt bármilyen környezetben üzembe helyeznénk.
  • Használja ugyanazt a kódot az összes környezethez. Változók és változófájlok használata a környezetek megkülönböztetéséhez.
  • A különböző környezetek frissítéséhez soha ne másolja és illessze be a kódot mappák vagy ágak között. Ez a gyakorlat konfigurációs eltéréshez és a környezetek közötti eltéréshez vezet.
  • A Terraform-plan vagy a Bicep what-if futtatható az összes környezeten, beleértve a PR-ben történő produkciós környezetet is, hogy a változtatásokat ellenőrizze mielőtt azokat a main ágra egyesítené. A különálló írásvédett identitások használata biztonságosan teszi lehetővé ezt a gyakorlatot.

A konfiguráció eltéréseinek észlelése

Az IaC egyedülálló lehetőséget biztosít a konfigurációs eltérések a frissítések során történő észlelésére. Az üzembe helyezés rögzíti a definíciós fájl módosításait, és olyan példányokat mutat be, amelyekben az erőforrás konfigurációja eltér a definíciótól.

Az IaC-vel ellátott célzóna-frissítések segíthetnek elkapni ezt a konfigurációs eltérést, és lehetővé teszik a kód megfelelő frissítését, a frissítésen keresztüli helytelen konfigurációk kezelését, vagy más módon történő kezelését.

Ha a portálon, a parancssori felületen vagy egy nem IaC-metóduson keresztül módosítja az erőforrásokat, a módosítás implementálva lesz. Amikor legközelebb futtat egy üzembe helyezést az IaC-n keresztül, az what-if vagy plan függvények használatával jelzi a kód által definiált állapot és a portál tényleges állapota közötti összehasonlítást. Ezzel a módszerrel megállapíthatja, hogy egy környezet a kódfájlon kívül van-e módosítva.

A hibás megoldás azonosítása után futtathatja az IaC-t, hogy megpróbálja összehangolni az üzembe helyezést a definícióval. Ezzel a módszerrel azonosíthatja a problémákat, és elháríthatja a forgatókönyveket a problémák jellegétől, a futtatás jellegétől és a módosítások módjától függően. A Terraform például megpróbálja visszaállítani az alaptervet az üzembe helyezett erőforrásokra, és a Bicep Complete módú üzembe helyezése eltávolítja a definíció részét nem képező erőforráscsoport erőforrásait. Ezek az eszközök észlelik és javítják a konfiguráció eltérését, de előfordulhat, hogy nem minden problémát oldanak meg.

További információ: Sávon kívüli módosítások és Az eltérések észlelése és kezelése a Terraformmal.

A portálon definiált módosításokat nehézkes beilleszteni az IaC-be. A kódot úgy kell frissítenie, hogy megfeleljen az aktuális állapotnak, ami gyakran magában foglalja az egyes erőforrás-módosítások áttekintését és a paraméterek frissítését a "jelenlegi" konfigurációnak megfelelően.

Ha az IaC használatával kezeli a célzónát vagy más erőforrásokat, csak az IaC-n kívüli módosításokat kell végrehajtania egy vészhelyzet részeként. Óvintézkedéseket tehet olyan fiókokkal, amelyek közvetlenül hozzáférhetnek a módosításokhoz, például a Privileged Identity Managementhez.

Tekintse át az általános automatizálási és biztonsági eljárásokat a következő cikkekben:

Következő lépések

Ismerkedjen meg az IaC-eszközökkel a következő cikkekben: