• Microsoft CSP
    Microsoft CSP

    S Microsoft CSP transformujeme  business pro dosažení obchodních a technologických cílů.

  • Managed Microsoft 365
    Managed Microsoft 365

    Zajistíme bezpečnost, produktivitu a optimalizaci. Vy se soustředíte na podnikání, my na IT.

  • Dozvědet se víc

    Získejte více informací o produktech Microsoft solution partner

  • Chci vědět víc

    Získejte více informací o produktech Kybernetická bezpečnost

  • Copilot M365
    Copilot M365

    Copilot pro Microsoft 365 nabízí pokročilé AI funkce integrované do byznysových nástrojů.

  • Copilot Osobní trenér
    Copilot Osobní trenér

    Žádné teorie, jen praktické rady a tipy, které vám ušetří čas a energii při vaši každodenní práci.

  • Dozvědet se víc

    Získejte více informací o produktech Umělá inteligence

  • Chci vědět víc

    Získejte více informací o produktech Cloudová infrastruktura

    • KPCS řeší technologické výzvy efektivně a v čas. Tím podporujeme růst vašeho podnikání.

      • Dozvědet se víc

        Získejte více informací o produktech Microsoft solution partner

      • Microsoft CSP
        Microsoft CSP

        S Microsoft CSP transformujeme  business pro dosažení obchodních a technologických cílů.

      • Managed Microsoft 365
        Managed Microsoft 365

        Zajistíme bezpečnost, produktivitu a optimalizaci. Vy se soustředíte na podnikání, my na IT.

    • Kybernetická bezpečnost je klíčová. S našimi službami jsou vaše data a systémy chráněny.

      • Chci vědět víc

        Získejte více informací o produktech Kybernetická bezpečnost

    • Zmapujte svůj potenciál AI a najděte nejlepší řešení. AI bude vaším důvěryhodným kolegou.

      • Dozvědet se víc

        Získejte více informací o produktech Umělá inteligence

      • Copilot M365
        Copilot M365

        Copilot pro Microsoft 365 nabízí pokročilé AI funkce integrované do byznysových nástrojů.

      • Copilot Osobní trenér
        Copilot Osobní trenér

        Žádné teorie, jen praktické rady a tipy, které vám ušetří čas a energii při vaši každodenní práci.

    • Azure je flexibilní a škálovatelná platforma, která poskytuje moderní produkty, služby a provoz.

      • Chci vědět víc

        Získejte více informací o produktech Cloudová infrastruktura

  • Reference
  • Proč KPCS
  • Kariéra
  • Novinky
  • Kontakt
Zpět na novinky

Jednodušší Infrastructure as a Code pomocí Azure Bicep

Blog
3. srpna 2021 Vukašin Terzić
Jednodušší Infrastructure as a Code pomocí Azure Bicep

Nasazení nových prostředků v Azure je obvykle rychlé a snadné. Můžeme ho provést ručně přes Azure Portál, to však může mít i negativní dopad na konzistenci a zabezpečení zdrojů a často to může negativně ovlivnit i náklady na provoz. Je opravdu snadné udělat chybu při pojmenování nebo při výběru správné velikosti a regionu. Řešením může být vytváření prostředků pomocí nástrojů Infrastructure as a Code.

Infrastructure As a Code

Koncept Infrastructure as a Code, kde definujeme a popisujeme naše prostředí ve formě kódu, přináší celou řadu výhod oproti manuálnímu vytváření prostředí uživatelem. IaaC můžeme použít k popisu infrastruktury a tyto definice pak ukládat do source code control systému. Zajistíme tak, že nasazování je automatizované, konzistentní a snadno opakovatelné. Můžeme také aplikovat softwarové inženýrství a postupy DevOps na náš zdrojový kód, abychom se ujistili, že je verzován, testován a funguje ještě před nasazením do produkce. Mezi další výhody využívání Infrastructure as a Code patří i to, že máme úplnou dokumentaci našeho prostředí ve tvaru kódu a můžeme z toho snadno vyčíst, co v prostředí máme nasazené a jak je vše nakonfigurované. Deployment resourců je pak snadno opakovatelný a můžeme jej použít pro rychlou obnovu celého prostředí v případě katastrofy nebo k vytvoření testovacího prostředí identického s naší produkcí.

V Azure máme celou řadu nástrojů a způsobů, jak využívát Infrastructure as a Code. Můžeme použit například ARM šablony, Terraform nebo dokonce i PowerShell nebo Azure CLI.

ARM templates

Šablony Azure Resource Manageru jsou IaaC řešení, které je přímo integrované do Azure. Můžeme je použít k nasazení, aktualizaci, odstranění a správě prostředků v Azure.

Výhodou použití šablon ARM oproti nástrojům jako jsou Azure CLI a PowerShell je, že ARM šablony jsou deklarativní popis, kde nemusíme přemýšlet o akci, pouze o definování toho, co chceme. Prostředky se pak nasadí ve správném pořadí na základě závislostí. A pokud prostředek se stejnou konfigurací již existuje, nebude změněn ani znovu vytvořen.

I přesto, že ARM šablony funguji skvěle, moje zkušenost při práci s mnoha různými zákazníky mi ukázala, že společnosti je moc nepoužívají. Jedním z důvodů je, že jsou ARM šablony založeny na jazyce JSON. Jsou proto nepřehledné a náročné na psaní.

Zde je základní schéma, které musíme dodržovat při psaní ARM templates:


{
 "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
 "contentVersion": "",
 "apiProfile": "",
 "parameters": { },
 "variables": { },
 "functions": [ ],
 "resources": [ ],
 "outputs": { }
}

V oficiálním Microsoft GitHub repositáři najdete příklad úplné šablony pro vytvoření jednoduchého virtuálního počítače s Windows v Azure.

https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.compute/vm-simple-windows

Vidíte, že syntaxe JSON je snadná a opakovatelná, ale i při menším množství konfigurovaných zdrojů velmi rychle vzniká dlouhý a nepřehledný kód. Je pak obtížné se v něm vyznat a pochopit, která vlastnost nebo parametr má jakou hodnotu.

Azure Bicep

Tady na scénu přichází Azure Bicep. Azure Bicep je domain specific language (DSL) který byl vytvořen stejným týmem lidí, kteří vytváří základy ARM šablon. Jeho cílem není nic jiného než zjednodušit psaní ARM šablon. Project Bicep opouští JSON syntaxi a je mnohem snazší pro čtení a psaní.

Z uživatelského pohledu byla většina syntaxe ARM šablon změněna a kód vypadá úplně jinak. I přesto Bicep není úplně nový jazyk. Funguje jako transparentní abstrakční vrstva nad šablonami ARM. Cílem nebylo nahradit šablony ARM, ale vylepšit jejích použitelnost pro uživatele.

Co to vlastně znamená? Jde o něco nového nebo ne? Vysvětlení je jednoduché. Máme nový jazyk s jednodušší syntaxí, která se snadno čte a zapisuje a ve kterém probíhá validace kódu při kompilaci, která u ARM šablon chyběla. K nasazení našich prostředků však nemůžeme použít přímo Azure Bicep. Místo toho, kód, který napíšeme v Azure Bicep, musíme zkompilovat. Během kompilace se převede do formátu ARM JSON – do našich známých šablon ARM. A k nasazovaní prostředků v Azure pak použijeme tyto šablony stejně, jak jsme to dělali dříve.

Výhodou tohoto přístupu oproti vytvoření zcela nového jazyka je, že Azure Bicep lze okamžitě použít k provedení všeho, co můžeme dělat se šablonami ARM máme možnost pracovat s existujícími šablonami ARM bez nutnosti je všechny přepisovat. Správci Azure prostředí tak mohou začít využívat Azure Bicep okamžitě a bez omezení.

Azure Bicep je od verze 0.3 plně podporován Microsoftem pro nasazení v produkčním prostředí. Pro existující šablony můžeme použít dekompilaci a převést je na Azure Bicep.

Jak využívat Azure Bicep

  • Instalace nástrojů

Skvělou zprávou je, že Bicep syntaxe je podporována v Azure CLI od verze 2.20.0 a v PowerShell modulu Az od verze 5.6.0. To znamená, že pokud již používáme Azure CLI nebo Az PowerShell, tak tyto nástroje již máme. Jediné, co je potřeba doinstalovat, je kompilátor a prostředí ve kterém budeme psát kód.

Pro Azure CLI, jako kompilátor je možné použít použít Bicep CLI. Jedná se o cross-platform sadu nástroju pro převod mezi Bicep a ARM templates.

Instalace je jednoduchá:

az bicep install
az bicep upgrade

Pro Azure PowerShell je možné využít Bicep PowerShell module, který zajistí kompilaci:

 Install-Module -Name Bicep

Pro psaní Azure Bicep syntaxe je možné použít jakýkoliv textový editor, protože verifikaci kódu provádí kompilátor. Psát něco takového v Notepadu by bylo velmi náročné, a proto je lepší použít editory jako je například Microsoft Visual Studio Code. Po instalaci Azure Bicep rozšíření VSCode umožní využít IntelliSense a automatické dokončování rozepsané syntaxe pomoci Tabu.

  • Vytvoření souboru

Když už máme všechny předpoklady a připravené prostředí, můžeme začít kódovat. Jedná se o nový jazyk a který se musíme naučit.

Jako příklad zde uvedu jak může vypadat .bicep soubor pro vytvoření Azure VNetu včetně Tagů:

param KPCSTags object = {
  Company: 'KPCS'
  Year: '2021'
  Author: 'Vukasin Terzic'
}
param location string = resourceGroup().location
param VNetName string
param addressPrefix string = '10.0.0.0/14'
param subnetPrefix string = '10.0.0.0/24'
param subnetName string
resource vn 'Microsoft.Network/virtualNetworks@2020-06-01' = {
 name: VNetName
 location: location
 tags: KPCSTags
 properties: {
  addressSpace: {
   addressPrefixes: [
​    addressPrefix
   ]
  }
  subnets: [
   {
​    name: subnetName
​    properties: {
​     addressPrefix: subnetPrefix
​    }
   }
  ]
 }
}
  • Kompilace souborů

Když už máme náš první .bicep soubor hotový, mužeme jej nasadit. K tomu můžeme použít stejné příkazy, které jsme použili se soubory .json pri využívání ARM šablon. V podporovaných verzích Azure CLI a PowerShell AZ tyto příkazy budou pracovat stejným způsobem se soubory typu .bicep.

\#Azure CLI
az deployment group create -f ./main.bicep -g MyTestRG --parameters VNetName=MyTestVNet subnetName=MyTestSubnet

\#Azure PowerShell
New-AzResourceGroupDeployment -TemplateFile ./main.bicep -ResourceGroupName MyTestRG -VNetName MyTestVNet -subnetName MyTestSubnet
  • Dekompilace souborů

Dekompilace z ARM šablon do Azure Bicep není nutná, ale může být velmi užitečná pokud již máme existující ARM šablony a chceme je jednoduše editovat pomoci Azure Bicep.

Převedení ARM šablony ve formátu JSON na Azure Bicep provedeme tímto příkazem:

bicep decompile ".\azuredeploy.json"

Stejná ARM šablona z předchozího příkladu po převedení do formátu Azure Bicep vypadá mnohem přehlednější a čitelnější pro koncového uživatele.

Azure Bicep pro Azure Governance

Infrastructure as a Code nástroje, jako jsou Azure Bicep, pomáhají s konzistencí prostředků a snadné aplikaci Azure Governance zásad na naše prostředí. Hlavní výhodou oproti manuálnímu nasazování je snadná opakovatelnost a možnost automatizace. Můžeme rychle vytvářet nové nebo měnit nastavení stávajících prostředků.

Novinky v KPCS

KPCS CZ získala specializaci Build AI Apps on Microsoft Azure
KPCS CZ získala specializaci Build AI Apps on Microsoft Azure

V době, kdy umělá inteligence mění způsob, jakým firmy inovují a komunikují se zákazníky, je důležité být připraven a mít potřebné znalosti i zkušenosti. Získání této specializace od společnosti Microsoft potvrzuje naši odbornost v oblasti návrhu, vývoje a nasazení moderních AI aplikací na platformě Azure.

24. dubna 2025
„AI – Kdy zapnout, kdy vypnout a kdy se usmívat!“
„AI – Kdy zapnout, kdy vypnout a kdy se usmívat!“

Chcete si usnadnit práci? Může být AI vaším nepostradatelným pomocníkem? Převezme AI monotónní úkoly a uvolní čas na strategické myšlení místo administrativy? Zvýšíte efektivitu s AI asistenty a agenty? Tyto a další otázky budou zodpovězeny na našem workshopu, kde se dozvíte, proč je pro vás důležité porozumět AI a jak vám může pomoci v každodenním fungování.

26. února 2025 KPCS
CES 2025 – Technologická inspirace a budoucnost pod taktovkou inovací
CES 2025 – Technologická inspirace a budoucnost pod taktovkou inovací

Každoroční technologický veletrh CES 2025 v Las Vegas znovu překonal očekávání a představil řadu revolučních, ale někdy i velmi podivných produktů a trendů, které formují budoucnost technologického průmyslu.

15. ledna 2025
Kontakt