Megosztás a következőn keresztül:


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, a műveletek és a fejlesztés közötti elosztás eltűnt. A teamsnek 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úra-kódot is egy forrásadattárban tárolja és verziószámozza. A csapat bármely tagja futtathatja a kódot, és hasonló környezeteket helyezhet üzembe.

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-sablonná alakul az üzembe helyezés során. Ha az infrastruktúrát kódbeállításként tekinti, javasoljuk, hogy tekintse meg a Bicepet. 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. A Resource Manager vezényli az egymástól függő erőforrások üzembe helyezését, hogy azok a megfelelő sorrendben legyenek létrehozva. Ha lehetséges, a Resource Manager párhuzamosan helyezi üzembe az erőforrásokat, így az üzemelő példányok gyorsabban fejeződnek be, mint a soros üzemelő példányok. A sablont több imperatív parancs helyett egy paranccsal helyezheti üzembe.

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

  • 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álhatja az ú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: Az üzembehelyezési szkriptekkel PowerShell- vagy Bash-szkripteket vehet fel a sablonokba. Az üzembehelyezési szkriptek kibővítik 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 a sablonra. Az üzembehelyezési szkriptek lehetővé teszik a teljes 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.

  • Módosítások előnézete: A what-if 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ástulajdonságok. A lehetőségelemzési művelet ellenőrzi a környezet aktuális állapotát, és szükségtelenné teszi az állapot kezelését.

  • Beépített érvényesítés: A sablon csak az ellenőrzés átadása után lesz üzembe helyezve. A 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ű félkész állapotban.

  • Nyomon követett üzemelő példányok: Az Azure Portalon á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 a rendszer nem követi nyomon a portálon.

    Képernyőkép az Azure Portalról az üzembe helyezési előzményekről.

  • Szabályzat mint kód: Az Azure Policy egy szabályzat, mint kódkeret, amely automatizálja a szabályozást. Ha Azure-szabályzatokat használ, a szabályzatok szervizelése nem megfelelő erőforrásokon történik sablonokkal történő üzembe helyezéskor.

  • Üzembehelyezési tervek: A Microsoft által biztosított terveket a szabályozási és megfelelőségi szabványoknak való megfelelés érdekében használhatja ki. 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 a 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: Az Azure Resource Manager-sablonok folyamatos integrálása az Azure Pipelinessal.

  • 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 információkat nyújt a sablon szintaxisáról.

  • Szerzői eszközök: Sablonokat készíthet a Visual Studio Code-talés a sabloneszköz bővítményével. Intelliense, 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 olyan 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 – Olyan értékeket adjon meg az üzembe helyezés során, amelyek lehetővé teszik, hogy ugyanazt a sablont különböző környezetekben lehessen használni.

  • Változók – A sablonokban újra felhasználható értékek definiálása. 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 üzembe helyezé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. Ugyanannak az API-verziónak a használatával nem kell aggódnia a későbbi verziókban esetleg 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.

Háromrétegű alkalmazástelepítést bemutató diagram 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 sablonok használatával háromszintű alkalmazástelepítést bemutató diagram.

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 előfordulhat, hogy meg szeretné osztani a szervezet más felhasználóival. A sablon specifikációi 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 sablon specifikációhoz való hozzáférést. A sablon specifiká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