Mik azok az ARM-sablonok?

A felhőbe való áttéréssel számos csapat alkalmazott agilis fejlesztési módszereket. Ezek a csapatok gyorsan iterálnak. Ismétlődően kell a megoldásokat a felhőben üzembe helyezniük, és biztosaknak kell lenniük abban, hogy az infrastruktúrájuk megbízható állapotban van. Mivel az infrastruktúra az iteratív folyamat részévé vált, az üzemeltetés és a fejlesztés közötti megosztottság megszűnt. A csapatoknak egységes folyamaton keresztül kell kezelnie az infrastruktúrát és az alkalmazáskódot.

Hogy ezeket elérhessék, automatizálhatják az üzembe helyezéseket, és használhatják az infrastruktúra mint kód megközelítést. A kódban definiálja az üzembe helyezendő infrastruktúrát. Az infrastruktúrakód a projekt részévé válik. Az alkalmazáskódhoz hasonlóan az infrastruktúrakódot is egy forrásadattárban tárolja és verziószámozhatja. A csapat bármely tagja futtathatja a kódot, és üzembe helyezhet hasonló környezeteket.

Az infrastruktúra kódként történő implementálásához az Azure-megoldások esetében használjon Azure Resource Manager- (ARM-) sablonokat. A sablon egy JavaScript Object Notation- (JSON-) fájl, amely meghatározza a projekt infrastruktúráját és konfigurációját. A sablon olyan deklaratív szintaxist használ, amellyel anélkül határozhatja meg, hogy mit szeretne üzembe helyezni, hogy ehhez programozási parancsok sorozatát kellene megírnia. A sablonban meg kell adnia az üzembe helyezendő erőforrásokat és az erőforrások tulajdonságait.

Tipp

Bevezettünk egy bicep nevű új nyelvet, amely ugyanazokat a képességeket kínálja, mint az ARM-sablonok, de egy könnyebben használható szintaxissal. Minden Bicep-fájl automatikusan ARM-sablonlá alakul az üzembe helyezés során. Ha az infrastruktúrát kódbeállításoknak tekinti, javasoljuk, hogy tekintse meg a Bicep-et. További információ: Mi az a Bicep?.

Az ARM-sablonok használatának első lépéseiről az alábbi videóban olvashat.

Miért érdemes ARM-sablonokat választani?

Ha az ARM-sablonok és a másik infrastruktúra kódszolgáltatásként való használata között próbál dönteni, vegye figyelembe a sablonok használatának alábbi előnyeit:

  • Deklaratív szintaxis: Az ARM-sablonok lehetővé teszik egy teljes Azure-infrastruktúra deklaratív létrehozását és üzembe helyezését. Üzembe helyezhet például nem csak virtuális gépeket, hanem a hálózati infrastruktúrát, a tárolórendszereket és az esetlegesen szükséges egyéb erőforrásokat is.

  • Megismételhető eredmények: Az infrastruktúra ismételt üzembe helyezése a fejlesztési életciklus során, és bízik abban, hogy az erőforrások konzisztens módon vannak üzembe helyezve. A sablonok idempotensek, ami azt jelenti, hogy ugyanazt a sablont többször is üzembe helyezheti, és ugyanabban az állapotban ugyanazokat az erőforrástípusokat szerezheti be. Létrehozhat egy sablont, amely a kívánt állapotot képviseli, ahelyett, hogy sok különálló sablont fejlesztenél a frissítések megjelenítéséhez.

  • Vezénylés: Nem kell aggódnia a rendelési műveletek összetettsége miatt. Resource Manager összehangolja az egymástól függő erőforrások üzembe helyezését, hogy azok a megfelelő sorrendben legyenek létrehozva. Ha lehetséges, Resource Manager párhuzamosan helyezi üzembe az erőforrásokat, hogy az üzemelő példányok gyorsabban befejeződhessenek, mint a soros üzemelő példányok. A sablont egyetlen paranccsal helyezheti üzembe, nem pedig több imperatív parancson keresztül.

    Az imperatív és deklaratív üzembe helyezés közötti különbséget bemutató ábra.

  • Moduláris fájlok: A sablonokat kisebb, újrafelhasználható összetevőkre bonthatja, és az üzembe helyezéskor összekapcsolhatja őket. Egy sablont egy másik sablonba is beágyazhat.

  • Bármilyen Azure-erőforrás létrehozása: Azonnal használhat új Azure-szolgáltatásokat és -funkciókat a sablonokban. Amint egy erőforrás-szolgáltató új erőforrásokat vezet be, sablonokkal telepítheti ezeket az erőforrásokat. Az új szolgáltatások használata előtt nem kell megvárnia az eszközök vagy modulok frissítését.

  • Bővíthetőség: Üzembehelyezési szkriptekkel PowerShell- vagy Bash-szkripteket adhat a sablonokhoz. Az üzembehelyezési szkriptek kiterjesztik az erőforrások üzembe helyezése során történő beállításának lehetőségét. A szkriptek belefoglalhatók a sablonba, vagy tárolhatók külső forrásban, és hivatkozhatnak rá a sablonban. Az üzembehelyezési szkriptek lehetővé teszik a teljes körű környezet beállítását egyetlen ARM-sablonban.

  • Tesztelés: Az ARM-sablon eszközkészlettel (arm-ttk) tesztelve meggyőződhet arról, hogy a sablon megfelel az ajánlott irányelveknek. Ez a tesztkészlet egy PowerShell-szkript, amelyet a GitHubról tölthet le. Az eszközkészlet megkönnyíti a szakértelem fejlesztését a sablonnyelv használatával.

  • Előzetes módosítások: A lehetőségelemzési művelettel a sablon üzembe helyezése előtt megtekintheti a módosítások előnézetét. A lehetőséggel láthatja, hogy mely erőforrások lesznek létrehozva, frissítve vagy törölve, valamint a módosítandó erőforrás-tulajdonságok. A lehetőségelemzési művelet ellenőrzi a környezet aktuális állapotát, és nem szükséges kezelni az állapotot.

  • Beépített ellenőrzés: A sablon csak az ellenőrzés átadása után lesz üzembe helyezve. Resource Manager az üzembe helyezés megkezdése előtt ellenőrzi a sablont, hogy az üzembe helyezés sikeres legyen. Az üzembe helyezés kevésbé valószínű, hogy félkész állapotban leáll.

  • Nyomon követett üzemelő példányok: A Azure Portal áttekintheti az üzembe helyezési előzményeket, és információkat kaphat a sablon üzembe helyezéséről. Megtekintheti az üzembe helyezett sablont, az átadott paraméterértékeket és a kimeneti értékeket. A kódszolgáltatásokhoz tartozó egyéb infrastruktúrát nem követi nyomon a portál.

    Képernyőkép az üzembe helyezési előzményeket megjelenítő Azure Portal.

  • Szabályzat kódként: a Azure Policy egy szabályzat, amely kód-keretrendszerként szolgál az irányítás automatizálásához. Azure-szabályzatok használata esetén a szabályzatok szervizelése nem megfelelő erőforrásokon történik a sablonokon keresztül történő üzembe helyezéskor.

  • Üzembe helyezési tervek: A Microsoft által biztosított terveket kihasználva megfelelhet a jogszabályi és megfelelőségi szabványoknak. Ezek a tervek előre elkészített sablonokat tartalmaznak különböző architektúrákhoz.

  • CI/CD-integráció: Sablonokat integrálhat a folyamatos integrációs és folyamatos üzembehelyezési (CI/CD) eszközökbe, amelyek automatizálhatják a kiadási folyamatokat a gyors és megbízható alkalmazás- és infrastruktúrafrissítésekhez. Az Azure DevOps és Resource Manager sablonfeladat használatával az Azure Pipelines használatával folyamatosan hozhat létre és helyezhet üzembe ARM-sablonprojekteket. További információ: VS-projekt folyamatokkal és oktatóanyag: Azure-Resource Manager-sablonok folyamatos integrációja az Azure Pipelines szolgáltatással.

  • Exportálható kód: Egy meglévő erőforráscsoport sablonját az erőforráscsoport aktuális állapotának exportálásával vagy egy adott üzembe helyezéshez használt sablon megtekintésével szerezheti be. Az exportált sablon megtekintése hasznos módszer a sablonszintaxis megismerésére.

  • Szerzői eszközök: Sablonokat készíthet a Visual Studio Code-tal és a sabloneszközbővítménnyel. Intellisense, szintaxiskiemelés, in-line súgó és sok más nyelvi függvény. A Visual Studio Code mellett a Visual Studio is használható.

Sablonfájl

A sablonon belül sablonkifejezéseket írhat, amelyek kibővítik a JSON képességeit. Ezek a kifejezések a Resource Manager által biztosított függvényeket használják.

A sablon a következő szakaszokból áll:

  • Paraméterek – Adjon meg olyan értékeket az üzembe helyezés során, amelyek lehetővé teszik, hogy ugyanazt a sablont különböző környezetekkel lehessen használni.

  • Változók – Definiálja a sablonokban újrahasznált értékeket. Ezek paraméterértékekből hozhatók létre.

  • Felhasználó által definiált függvények – Testre szabott függvények létrehozása, amelyek leegyszerűsítik a sablont.

  • Erőforrások – Adja meg az üzembe helyezendő erőforrásokat.

  • Kimenetek – Az üzembe helyezett erőforrások értékeinek visszaadása.

Sablon üzembehelyezési folyamata

Amikor üzembe helyez egy sablont, a Resource Manager a sablont REST API-műveletekké alakítja át. Például amikor a Resource Manager megkap egy sablont, amely a következő erőforrás-definíciót tartalmazza:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2022-09-01",
    "name": "mystorageaccount",
    "location": "centralus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "StorageV2"
  },
]

Átalakítja a definíciót a következő REST API-műveletté, amelyet a rendszer elküld a Microsoft.Storage erőforrás-szolgáltatónak:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2022-09-01
REQUEST BODY
{
  "location": "centralus",
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "StorageV2",
  "properties": {}
}

Figyelje meg, hogy az erőforrás sablonjában beállított apiVersion a REST művelet API-verziója. A sablont ismételten üzembe helyezheti, és biztos lehet benne, hogy az továbbra is működni fog. Ha ugyanazt az API-verziót használja, nem kell aggódnia a későbbi verziókban esetlegesen bevezetett kompatibilitástörő változások miatt.

Sablon üzembe helyezéséhez használja az alábbi lehetőségeket:

Sablonterv

A sablonok és erőforráscsoportok meghatározási módja teljes mértékben Öntől függ, illetve attól, hogyan szeretné kezelni a megoldást. Például egyetlen sablon segítségével üzembe helyezheti a háromszintű alkalmazását egyetlen erőforráscsoportra.

Diagram, amely egy háromszintű alkalmazástelepítést mutat be egyetlen sablon használatával.

Azonban nem kell meghatároznia a teljes infrastruktúrát egyetlen sablonban. Gyakran érdemes felosztani a telepítési követelményeket konkrét, célspecifikus sablonokra. Ezeket a sablonokat egyszerűen újból felhasználhatja különböző megoldásokhoz. Egy adott megoldás üzembe helyezéséhez létre kell hoznia egy fő sablont, amely összekapcsolja az összes szükséges sablont. Az alábbi kép bemutatja, hogyan telepíthető egy háromszintű megoldás egy olyan fölérendelt sablon segítségével, amely három beágyazott sablont tartalmaz.

A beágyazott sablonokat használó háromszintű alkalmazástelepítést bemutató ábra.

Ha elképzeli, hogy a rétegek külön életciklusokkal rendelkeznek, akkor a három szintet különálló erőforráscsoportokra telepítheti. Ügyeljen rá, hogy az erőforrások továbbra is kapcsolódhatnak egyéb erőforráscsoportok erőforrásaihoz.

Diagram, amely egy háromszintű alkalmazástelepítést mutat be külön erőforráscsoportokkal.

A beágyazott sablonokkal kapcsolatos további információkért lásd: Kapcsolt sablonok használata az Azure Resource Manager eszközben.

Sablonok megosztása

A sablon létrehozása után megoszthatja azt a szervezet más felhasználóival. A sablonspecifikációk lehetővé teszik egy sablon erőforrástípusként való tárolását. Szerepköralapú hozzáférés-vezérléssel kezelheti a sablonspecifikációhoz való hozzáférést. A sablonspecifikációhoz olvasási hozzáféréssel rendelkező felhasználók üzembe helyezhetik, de nem módosíthatják a sablont.

Ez a megközelítés azt jelenti, hogy biztonságosan megoszthatja a szervezet szabványainak megfelelő sablonokat.

Következő lépések