Mik azok az ARM-sablonok?

A felhőbe való áthelyezéssel számos csapat agilis fejlesztési módszereket alkalmaz. 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. Ahogy az infrastruktúra az iteratív folyamat része lett, az üzemeltetés és a fejlesztés közötti osztás eltűnt. Teams az infrastruktúra- és alkalmazáskódot egy egységes folyamattal kell kezelnie.

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 meghatározhatja az üzembe helyezni szükséges infrastruktúrát. Az infrastruktúra kódja a projekt része lesz. Az alkalmazáskódhoz hasonlóan az infrastruktúra kódját is egy forrástárházban kell tárolni és verziószámba kell tárni. A csapat bármelyik tagja futtathatja a kódot, és hasonló környezeteket helyezhet üzembe.

Az infrastruktúra kódként való implementálja az Azure-megoldásokat, használjon Azure Resource Manager sablonokat (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 helyezni kívánt erőforrásokat és azok tulajdonságait.

Bevezettünk egy új, Bicep nevű nyelvet, amely arm-sablon JSON-jának fejlesztésére használható. A Bicep-fájlok és a JSON-sablonok ugyanezeket a képességeket biztosítják. A sablonokat a két nyelv között konvertálhatja. A Bicep olyan szintaxist biztosít, amely könnyebben használható sablonok létrehozásához. További információ: Mi az a Bicep?.

Az ARM-sablonokkal való ismerkedésrő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 segítségével deklaratív módon hozhat létre és helyezhet üzembe egy teljes Azure-infrastruktúrá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 biztos lehet abban, hogy az erőforrások üzembe helyezése konzisztens módon történik. A sablonok idempotentek, ami azt jelenti, hogy többször is üzembe helyezheti ugyanazt a sablont, és ugyanazon erőforrástípusokat ugyanabban az állapotban kaphatja meg. A célállapotot képviselő sablont fejleszthet, és nem kell sok különálló sablont fejlesztenie a frissítésekhez.

  • Vezénylés: Nem kell aggódnia a rendelési műveletek bonyolultságai miatt. Resource Manager egymástól függő erőforrások üzembe helyezését, hogy azok a megfelelő sorrendben legyen létrehozva. Ha lehetséges, a Resource Manager párhuzamosan helyez üzembe erőforrásokat, így az üzembe helyezések gyorsabban befejeződnek, mint a soros üzembe helyezések. A sablont nem több imperatív paranccsal, hanem egyetlen paranccsal helyezheti üzembe.

    Template deployment összehasonlítás

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

  • Bármely 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, ezeket az erőforrásokat sablonokkal helyezheti üzembe. Az új szolgáltatások használata előtt nem kell megvárni az eszközök vagy modulok frissítését.

  • Extensibility: Az üzembe helyezési szkriptekkelPowerShell- vagy Bash-szkripteket adhat a sablonokhoz. Az üzembe helyezési szkriptek kibővítik az erőforrások beállításának képességét az üzembe helyezés során. A szkriptet bele lehet foglalni a sablonba, vagy tárolhatja egy külső forrásban, és hivatkozhat rá a sablonban. Az üzembe helyezési szkriptek lehetővé teszi a teljes környezet beállításának egyetlen ARM-sablonban való befejezését.

  • Tesztelés: Az ARM-sablonkészlettel (arm-ttk) tesztelve győződhet meg arról, hogy a sablon követi az ajánlott irányelveket. Ez a tesztkészlet egy PowerShell-szkript, amely a(z) GitHub. Az eszközkészlettel könnyebben fejleszthet szakértelmét a sablonnyelv használatával.

  • Módosítások előnézete: A what-if művelettel megtekintheti a módosítások előnézetét a sablon üzembe helyezése előtt. A what-if (what-if) esetén láthatja, hogy mely erőforrások lesznek létrehozva, frissítve vagy törölve, valamint a módosuló erőforrás-tulajdonságokat. A what-if művelet ellenőrzi a környezet aktuális állapotát, és nincs szükség az állapot kezelésére.

  • Beépített érvényesítés: A sablont csak az ellenőrzés sikeres átadása után telepíti a rendszer. Resource Manager üzembe helyezés megkezdése előtt ellenőrzi a sablont, hogy az üzembe helyezés sikeres lesz-e. Az üzembe helyezés kevésbé valószínű, hogy félúton áll le.

  • Nyomon követhető központi telepítések: A Azure Portal áttekintheti az üzembe helyezési előzményeket, és információkat kaphat a sablon üzembe helyezésével kapcsolatban. Láthatja az üzembe helyezett sablont, a megadott paraméterértékeket és a kimeneti értékeket. Más infrastruktúra, mint kódszolgáltatás nem a portálon keresztül van nyomon követhető.

    Üzembe helyezési előzmények

  • Szabályzat mint kód: Azure Policy egy szabályzat, mint kódkeretkeret, amely automatizálja a szabályozást. Ha Azure-szabályzatokat használ, a szabályzatok szervizelése a nem megfelelő erőforrásokon történik, ha sablonokkal van üzembe telepítve.

  • Üzembe helyezési tervek: A Microsoft által biztosított tervekkel megfelelhet a szabályozási és megfelelőségi szabványoknak. Ezek a tervek előre felépített sablonokat tartalmaznak a különböző architektúrákhoz.

  • CI/CD-integráció: A sablonokat integrálhatja a folyamatos integrációs és folyamatos üzembe helyezési (CI/CD) eszközökbe, amelyek automatizálják a kiadási folyamatot az alkalmazások és infrastruktúra gyors és megbízható frissítéséhez. Az Azure DevOps és Resource Manager sablonfeladatok használatával az Azure Pipelines használatával folyamatosan építhet ki és helyezhet üzembe ARM-sablonprojekteket. További tudnivalókért lásd: VS-projekt folyamatokkal és Oktatóanyag: A virtuális Azure Resource Manager integrálása az Azure Pipelines használatával.

  • Exportálható kód: Egy meglévő erőforráscsoport sablonját az erőforráscsoport aktuális állapotának exportálása vagy egy adott üzembe helyezéshez használt sablon megtekintésével kaphatja meg. Az exportált sablon megtekintése hasznos módja a sablon szintaxisának megismerésében.

  • Szerzői eszközök: Sablonokat az Visual Studio Code és a sabloneszköz bővítményével lehet létrehozni. Az intelliSense, a szintaxiskiemelő, az in-line súgó és számos más nyelvi függvény is elérhető. A Kód Visual Studio mellett a következőt is használhatja: Visual Studio.

Sablonfájl

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

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 ugyanazon sablon különböző környezetekben való használatát.

  • Változók – Meghatározhatja a sablonokban újrafelhasznált értékeket. Paraméterértékek alapján is felépítheti őket.

  • Felhasználó által definiált függvények – Testreszabott függvényeket hozhat létre, amelyek leegyszerűsítik a sablont.

  • Erőforrások – Adja meg az üzembe helyezni kívánt erőforrásokat.

  • Kimenetek – Visszaadja az üzembe helyezett erőforrások értékeit.

Template deployment folyamat

Sablon üzembe helyezésekor a Resource Manager átalakítja a sablont REST API műveletekké. 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": "2019-04-01",
    "name": "mystorageaccount",
    "location": "westus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "StorageV2",
    "properties": {}
  }
]

Á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=2019-04-01
REQUEST BODY
{
  "location": "westus",
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "StorageV2",
  "properties": {}
}

Figyelje meg, hogy az erőforrás sablonban beállított apiVersion lesz a REST-művelet API-verziója. A sablont ismételten üzembe helyezheti, és biztos lehet benne, hogy 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 esetleg bevezetett használjjó változások miatt.

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

Sablontervezés

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ű sablon

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 összeköti 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.

beágyazott rétegsablon

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.

rétegsablon

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, hogy a sablont erőforrástípusként tárolja. A sablon specifikációihoz való hozzáférést szerepköralapú hozzáférés-vezérléssel kezelheti. Azok a felhasználók, akik olvasási hozzáféréssel rendelkezik a sablon specifikációihoz, üzembe helyezhetik azt, de nem módosíthatjják a sablont.

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

Következő lépések