Co je šablona ARM?

S přechodem na cloud mnoho týmů přijalo agilní metody vývoje. Tyto týmy provádějí opakované operace rychle. Potřebují opakovaně nasazovat svá řešení do cloudu a vědět, že mají infrastrukturu ve spolehlivém stavu. Vzhledem k tomu, že se infrastruktura stala součástí iterativního procesu, dělení mezi operacemi a vývojem zmizelo. Týmy potřebují spravovat kód infrastruktury a aplikace prostřednictvím jednotného procesu.

Abyste těmto výzvám mohli čelit, můžete automatizovat nasazení a využívat praktické postupy infrastruktury jako kód. V kódu definujete infrastrukturu, která se má nasadit. Kód infrastruktury se stane součástí vašeho projektu. Stejně jako kód aplikace uložíte kód infrastruktury do zdrojového úložiště a verzi. Každý z vašich týmů může spustit kód a nasadit podobná prostředí.

Pokud chcete implementovat infrastrukturu jako kód pro vaše řešení Azure, použijte šablony Azure Resource Manageru (šablony ARM). Šablona je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona využívá deklarativní syntaxi, která umožňuje prohlásit, co máte v úmyslu vytvořit, aniž by k tomu bylo nutné psát sekvence programových příkazů. V šabloně určíte prostředky, které se mají nasadit, a vlastnosti těchto prostředků.

Tip

Zavedli jsme nový jazyk s názvem Bicep , který nabízí stejné funkce jako šablony ARM, ale s syntaxí, která se snadněji používá. Každý soubor Bicep se během nasazování automaticky převede na šablonu ARM. Pokud uvažujete o infrastruktuře jako o možnostech kódu, doporučujeme se podívat na Bicep. Další informace najdete v tématu Co je Bicep?.

Další informace o tom, jak začít používat šablony ARM, najdete v následujícím videu.

Proč zvolit šablony ARM?

Pokud se pokoušíte rozhodnout mezi používáním šablon ARM a jednou z dalších infrastruktur jako služeb kódu, zvažte následující výhody použití šablon:

  • Deklarativní syntaxe: Šablony ARM umožňují vytvořit a nasadit celou infrastrukturu Azure deklarativním způsobem. Můžete například nasadit nejen virtuální počítače, ale také síťovou infrastrukturu, systémy úložiště a všechny další prostředky, které budete potřebovat.

  • Opakovatelné výsledky: Opakovaně nasazovat infrastrukturu v průběhu životního cyklu vývoje a mít jistotu, že se vaše prostředky nasazují konzistentním způsobem. Šablony jsou idempotentní, což znamená, že stejnou šablonu můžete nasadit mnohokrát a získat stejné typy prostředků ve stejném stavu. Můžete vytvořit jednu šablonu, která představuje požadovaný stav, a ne vyvíjet spoustu samostatných šablon, které představují aktualizace.

  • Orchestrace: Nemusíte se starat o složitost operací řazení. Resource Manager orchestruje nasazení vzájemně závislých prostředků, aby se vytvořily ve správném pořadí. Pokud je to možné, Resource Manager nasadí prostředky paralelně, aby vaše nasazení byla dokončena rychleji než sériová nasazení. Šablonu nasadíte jedním příkazem místo několika imperativních příkazů.

    Template deployment comparison

  • Modulární soubory: Šablony můžete rozdělit na menší, opakovaně použitelné komponenty a propojit je v době nasazení. Jednu šablonu můžete také vnořit do jiné šablony.

  • Vytvořte libovolný prostředek Azure: Nové služby a funkce Azure můžete okamžitě používat v šablonách. Jakmile poskytovatel prostředků zavede nové prostředky, můžete je nasadit prostřednictvím šablon. Před použitím nových služeb nemusíte čekat na aktualizaci nástrojů nebo modulů.

  • Rozšiřitelnost: Pomocí skriptů pro nasazení můžete do šablon přidat skripty PowerShellu nebo Bash. Skripty nasazení rozšiřují vaši schopnost nastavit prostředky během nasazování. Skript může být součástí šablony nebo uložen v externím zdroji a odkazován v šabloně. Skripty nasazení umožňují dokončit kompletní nastavení prostředí v jedné šabloně ARM.

  • Testování: Pomocí sady nástrojů ARM (arm-ttk) můžete zajistit, aby šablona byla v souladu s doporučenými pokyny. Tato testovací sada je skript PowerShellu, který si můžete stáhnout z GitHubu. Sada nástrojů usnadňuje vývoj odborných znalostí pomocí jazyka šablony.

  • Změny ve verzi Preview: Před nasazením šablony můžete pomocí operace citlivostní analýza získat náhled změn. V případě citlivosti uvidíte, které prostředky se vytvoří, aktualizují nebo odstraní, a všechny vlastnosti prostředku, které se změní. Operace citlivostní kontroly aktuálního stavu prostředí a eliminuje potřebu správy stavu.

  • Integrované ověřování: Šablona se nasadí až po předání ověření. Resource Manager před zahájením nasazení zkontroluje šablonu, aby se ujistila, že nasazení bude úspěšné. Nasazení je méně pravděpodobné, že se zastaví v polokončím stavu.

  • Sledované nasazení: Na webu Azure Portal můžete zkontrolovat historii nasazení a získat informace o nasazení šablony. Zobrazí se šablona, která byla nasazena, předané hodnoty parametrů a všechny výstupní hodnoty. Další infrastruktura jako služby kódu se nesleduje prostřednictvím portálu.

    Deployment history

  • Zásady jako kód: Azure Policy je zásada jako architektura kódu pro automatizaci zásad správného řízení. Pokud používáte zásady Azure, náprava zásad se provádí u prostředků nedodržovaných předpisy při nasazení prostřednictvím šablon.

  • Podrobné plány nasazení: Podrobné plány poskytované Microsoftem můžete využít ke splnění zákonných standardů a standardů dodržování předpisů. Tyto podrobné plány zahrnují předem připravené šablony pro různé architektury.

  • Integrace CI/CD: Šablony můžete integrovat do nástrojů kontinuální integrace a průběžného nasazování (CI/CD), které umožňují automatizovat kanály vydaných verzí pro rychlé a spolehlivé aktualizace aplikací a infrastruktury. Pomocí úlohy šablony Azure DevOps a Resource Manageru můžete pomocí Azure Pipelines průběžně sestavovat a nasazovat projekty šablon ARM. Další informace najdete v tématu Projekt VS s kanály a kurz: Kontinuální integrace šablon Azure Resource Manageru se službou Azure Pipelines.

  • Exportovatelný kód: Šablonu pro existující skupinu prostředků můžete získat buď exportem aktuálního stavu skupiny prostředků, nebo zobrazením šablony použité pro konkrétní nasazení. Zobrazení vyexportované šablony vám pomůže blíže se seznámit se syntaxí šablony.

  • Nástroje pro vytváření obsahu: Šablony můžete vytvářet pomocí editoru Visual Studio Code a rozšíření nástroje šablony. Získáte intellisense, zvýrazňování syntaxe, vloženou nápovědu a řadu dalších jazykových funkcí. Kromě editoru Visual Studio Code můžete také použít Visual Studio.

Soubor šablony

V šabloně můžete napsat výrazy šablony , které rozšiřují možnosti JSON. Tyto výrazy využívají funkce poskytované Resource Managerem.

Šablona obsahuje následující části:

  • Parametry – Zadejte hodnoty během nasazení, které umožňují použití stejné šablony s různými prostředími.

  • Proměnné – Definujte hodnoty, které se znovu používají ve vašich šablonách. Lze je vytvořit z hodnot parametrů.

  • Uživatelem definované funkce – Vytvořte přizpůsobené funkce, které zjednodušují vaši šablonu.

  • Prostředky – Určete prostředky, které se mají nasadit.

  • Výstupy – Vrátí hodnoty z nasazených prostředků.

Proces nasazení šablony

Když nasadíte šablonu, Resource Manager šablonu převede na operace rozhraní REST API. Když například Resource Manager obdrží šablonu s následující definicí prostředku:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2019-04-01",
    "name": "mystorageaccount",
    "location": "westus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "StorageV2",
    "properties": {}
  }
]

Převede definici na následující operaci rozhraní REST API, která se odešle do poskytovatele prostředků Microsoft.Storage:

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": {}
}

Všimněte si, že apiVersion , kterou jste nastavili v šabloně prostředku, se používá jako verze rozhraní API pro operaci REST. Šablonu můžete opakovaně nasadit a mít jistotu, že bude i nadále fungovat. Pomocí stejné verze rozhraní API se nemusíte starat o zásadní změny, které by mohly být zavedeny v novějších verzích.

Pokud chcete nasadit šablonu, použijte některou z následujících možností:

Návrh šablony

Záleží pouze na vás, jak definujete šablony a skupiny prostředků a jak chcete spravovat své řešení. Například můžete nasadit svou třívrstvou aplikaci prostřednictvím jediné šablony do jedné skupiny prostředků.

three tier template

Není však nutné definovat celou infrastrukturu v jediné šabloně. Často má smysl rozdělit požadavky nasazení do několika cílených šablon, které jsou zaměřené na konkrétní účel. Tyto šablony můžete snadno opakovaně použít pro různá řešení. Pokud chcete nasadit konkrétní řešení, vytvořte hlavní šablonu, která propojuje všechny požadované šablony. Následující obrázek znázorňuje způsob nasazení třívrstvého řešení prostřednictvím nadřazené šablony, která obsahuje tři vnořené šablony.

nested tier template

Pokud si představíte, že vaše vrstvy mají tři samostatné životní cykly, můžete tyto tři vrstvy nasadit do samostatných skupin prostředků. Všimněte si, že prostředky mohou být stále propojené s prostředky v jiných skupinách prostředků.

tier template

Informace o vnořených šablonách najdete v tématu Použití propojených šablon s Azure Resource Managerem.

Sdílení šablon

Po vytvoření šablony můžete chtít tuto šablonu sdílet s ostatními uživateli ve vaší organizaci. Specifikace šablon umožňují uložit šablonu jako typ prostředku. Pomocí řízení přístupu na základě role můžete spravovat přístup ke specifikaci šablony. Uživatelé, kteří mají ke specifikaci šablony přístup pro čtení, můžou ji nasadit, ale ne změnit šablonu.

Tento přístup znamená, že můžete bezpečně sdílet šablony, které splňují standardy vaší organizace.

Další kroky