Martin Rylko
  • Služby
  • Blog
  • O mně
  • Kontakt
  • Spolupráce
Martin Rylko

Senior Cloud Architect & DevOps Engineer. Specializace na Microsoft Azure, IaC, Cloud Security a AI.

Navigace

  • Služby
  • Blog
  • O mně
  • Kontakt

Spolupráce

Hledáte zkušeného architekta pro Váš Azure projekt? Ozvěte se.

rylko@cloudmasters.cz

© 2026 Martin Rylko. Všechna práva vyhrazena.

Buduji v cloudu. Nasazuji přes Azure Static Web Apps.

Domů/Blog/Azure Blueprints končí 31. ledna 2027: migrační plán na Deployment Stacks a template specs
Všechny článkyRead in English

Azure Blueprints končí 31. ledna 2027: migrační plán na Deployment Stacks a template specs

24. 8. 2026 5 min
#Azure#Governance#Bicep#Deployment Stacks#Landing Zone#Migrace

Azure Blueprints končí 31. ledna 2027: migrační plán na Deployment Stacks a template specs

Retirement Blueprints se posunul z července 2026 na 31. ledna 2027, což zní jako odklad. Není. Je to postupné zamykání, které už běží — a část dveří je zavřená od července.

Tenhle článek není novinka, je to migrační plán: co přesně kdy přestane jít, jak namapovat jednotlivé typy artefaktů, a jak si data vyexportovat dřív, než je Microsoft smaže.

Časová osa, která už běží

DatumCo přestane jít
31. 7. 2026Nové definice a nové verze (už platí)
31. 10. 2026Editace definic, nová přiřazení
31. 12. 2026Editace přiřazení
31. 1. 2027API mrtvé, blade pryč, neexportovaná data trvale smazána, blueprint locky přestanou fungovat

Dvě věci na tom stojí za zvýraznění.

Neexportovaná data budou trvale smazána. Ne archivovaná, ne read-only. Pokud máte v blueprintech definice, které nikde jinde neexistují — a v mnoha organizacích jsou blueprinty jediné místo, kde ta governance logika žije — po 31. lednu 2027 je nemáte.

Blueprint locky přestanou fungovat. Tohle je z provozního hlediska nejostřejší položka celého útlumu. Pokud jste přes blueprint aplikovali Do Not Delete nebo Read Only na produkční zdroje, tyhle locky prostě přestanou platit. Zdroje se nesmažou, ale přestanou být chráněné — a nikdo vám o tom nepošle zprávu.

Zdroje samotné migraci přežijí. Nic se nemaže a nic se nepřenasazuje.

Náhrada je dvojice, ne jedna služba

Blueprint dělal dvě věci najednou, a proto ho nahrazují dva nástroje:

Azure Blueprint
   │
   ├─→ Template spec (nebo Git)   ← uložení a verzování šablony
   │                                 „co se nasazuje"
   │
   └─→ Deployment Stack           ← přiřazení, lifecycle, denySettings
                                     „kam, s jakými parametry, a co se nesmí"

Na první pohled to vypadá jako komplikace. V praxi je to zjednodušení, protože přestáváte používat samostatnou governance technologii a používáte stejný nástroj jako na zbytek infrastruktury. Deployment Stacks jsem rozebíral samostatně v článku o Deployment Stacks — tady jde jen o mapování.

Mapování artefaktů

Tohle je jádro práce. Projděte si každý blueprint artefakt po artefaktu:

Blueprint artefaktNáhrada
policyAssignmentMicrosoft.Authorization/policyAssignments v Bicep modulu
roleAssignmentMicrosoft.Authorization/roleAssignments v Bicep modulu
template (vnořená ARM šablona)Bicep modul, případně vlastní template spec
resource group placeholderMicrosoft.Resources/resourceGroups na subscription scope
verze blueprintuverze template specu, nebo tag v Gitu
přiřazení blueprintudeployment stack
parametry přiřazenísoubor .bicepparam
lock Do Not DeletedenySettings se mode: denyDelete
lock Read OnlydenySettings se mode: denyWriteAndDelete

Poslední dva řádky nedělejte na konci. Locky migrujte jako první, protože jsou to jediná položka, kde má prodlení reálný bezpečnostní dopad.

Výsledný stack vypadá takhle:

targetScope = 'managementGroup'
 
// Co blueprint dělal jako "artefakty", je tady prostě
// několik modulů. Pořadí řeší Bicep sám přes reference.
module policies 'modules/policy-assignments.bicep' = {
  name: 'lz-policies'
  params: { mgScope: managementGroupId }
}
 
module rbac 'modules/role-assignments.bicep' = {
  name: 'lz-rbac'
  params: { platformTeamObjectId: platformTeamObjectId }
}
 
param managementGroupId string
param platformTeamObjectId string

A nasazení jako stack, včetně náhrady za blueprint lock:

az stack mg create \
  --name 'lz-governance-baseline' \
  --management-group-id 'mg-platform' \
  --location westeurope \
  --template-file main.bicep \
  --parameters main.bicepparam \
  --deny-settings-mode denyDelete \
  --deny-settings-excluded-principals "$BREAKGLASS_OBJECT_ID" \
  --action-on-unmanage detachAll

Dvě volby v tom příkazu stojí za komentář:

  • --deny-settings-excluded-principals — vždycky si vyjměte break-glass identitu. Blueprint locky se daly obejít přes Owner role; denySettings je přísnější a bez výjimky se můžete zamknout ven.
  • --action-on-unmanage detachAll při prvním nasazení. Až si ověříte, že stack spravuje přesně to, co má, můžete přejít na deleteResources. Naopak to nedělejte — deleteResources u špatně nastaveného rozsahu je nevratná operace.

Export: udělejte to teď, ne v lednu

Neexportovaná data se smažou. az blueprint extension nemusí být všude nainstalovaná, takže nejspolehlivější cesta je REST — funguje z jakéhokoliv prostředí s az:

MG='mg-platform'
API='2018-11-01-preview'
BASE="https://management.azure.com/providers/Microsoft.Management/managementGroups/$MG/providers/Microsoft.Blueprint"
 
mkdir -p blueprint-export
 
# 1. Seznam definic
az rest --method get --url "$BASE/blueprints?api-version=$API" \
  > blueprint-export/_definitions.json
 
# 2. Pro každou definici její artefakty a verze
for BP in $(jq -r '.value[].name' blueprint-export/_definitions.json); do
  az rest --method get --url "$BASE/blueprints/$BP?api-version=$API" \
    > "blueprint-export/${BP}.json"
  az rest --method get --url "$BASE/blueprints/$BP/artifacts?api-version=$API" \
    > "blueprint-export/${BP}.artifacts.json"
  az rest --method get --url "$BASE/blueprints/$BP/versions?api-version=$API" \
    > "blueprint-export/${BP}.versions.json"
done

Přiřazení žijí na subskripcích, ne na management group, takže je vypište zvlášť:

for SUB in $(az account list --query "[?state=='Enabled'].id" -o tsv); do
  az rest --method get \
    --url "https://management.azure.com/subscriptions/$SUB/providers/Microsoft.Blueprint/blueprintAssignments?api-version=$API" \
    > "blueprint-export/assignments-${SUB}.json"
done

Ten adresář commitněte do Gitu. I když z něj nikdy nic nepřepíšete, je to jediná evidence toho, jak vaše governance vypadala — a po lednu 2027 už jinde nebude.

Co ztratíte a co získáte

Na rovinu, protože migrace, která slibuje jen výhody, obvykle něco zamlčuje.

Ztrácíte:

  • Balení artefaktů do jednoho publikovaného objektu s verzí. Tohle byl hlavní důvod, proč lidé Blueprints používali, a přímý ekvivalent neexistuje — template spec drží šablonu, stack drží přiřazení, ale ta „krabice" kolem toho je pryč.
  • Portálové UX. Blueprint šel proklikat. Deployment stack je nástroj pro lidi, kteří píšou IaC.

Získáváte:

  • Skutečný lifecycle. Stack ví, co spravuje. Když ze šablony odeberete zdroj, stack ho umí odstranit — blueprint tohle neuměl nikdy a nechával po sobě sirotky.
  • Granulárnější zamykání. denySettings umí vyjmout konkrétní principaly a konkrétní akce, což blueprint lock neuměl.
  • Jeden nástroj místo dvou. Vaše landing zone už Bicep nejspíš používá. Governance přestane být výjimka s vlastním nasazovacím modelem.

Plán do konce roku

Zbývá vám něco přes dva měsíce do 31. října, kdy zmizí možnost dělat nová přiřazení. To je reálný deadline, ne leden.

  1. Tento týden: export. Skript výš, výstup do Gitu. Nejlevnější krok s nejvyšší cenou za odklad.
  2. Do konce září: inventura locků. Vypište si všechny zdroje chráněné blueprint lockem. To je seznam, který musí být pokrytý denySettings, než API zmizí.
  3. Říjen: pilot. Jeden blueprint přepsaný do Bicepu a nasazený jako stack, na nevýrobním prostředí. Ověřte hlavně denySettings a break-glass výjimku.
  4. Listopad–prosinec: zbytek. Blueprint po blueprintu, produkce naposled.
  5. Leden 2027: kontrola, že žádné přiřazení nezůstalo, a odstranění starých definic.

Nejhorší varianta je čekat do ledna. V ten moment už nejdou dělat nová přiřazení, takže nemáte jak paralelně ověřit, že náhrada dělá totéž.

Pokud stavíte nebo revidujete landing zone a tahle migrace do toho spadá, sepsal jsem strukturu v článku o Azure Landing Zone v Bicepu. S konkrétním prostředím rád pomůžu — viz služby cloudové architektury.

Zdroje

  • Azure update 564806 — oznámení z 25. 6. 2026
  • Blueprint retirement — dokumentace, ms.date 26. 6. 2026
Tagy:#Azure#Governance#Bicep#Deployment Stacks#Landing Zone#Migrace
LinkedInX / Twitter

O autorovi

Martin Rylko

Martin Rylko

Senior Cloud Architect & DevOps Engineer

Více než 14 let v IT – od on-premises datacenter a Hyper-V clusteringu po cloudovou infrastrukturu v Microsoft Azure. Specializuji se na Landing Zones, IaC automatizaci, Kubernetes a bezpečnostní compliance.

Email LinkedInCelý profil

Nejcastejsi dotazy

Zmizí mi zdroje, které blueprint vytvořil?▾
Ne. Zdroje vytvořené blueprintem existují dál a nic se s nimi nestane. Co zmizí, je vrstva správy nad nimi — definice, přiřazení a hlavně blueprint locky. Po 31. lednu 2027 tedy budete mít zdroje bez locků a bez evidence, která říká, odkud se vzaly.
Co přesně se stane 31. ledna 2027?▾
API přestane odpovídat, blade v portálu zmizí, neexportovaná data budou trvale smazána a blueprint locky typu Do Not Delete a Read Only přestanou fungovat. Ta poslední položka je z provozního hlediska nejostřejší: zdroje, které jste považovali za chráněné proti smazání, chráněné být přestanou.
Čím se Blueprints nahrazují?▾
Dvojicí, ne jednou službou. Template specs nebo Git drží šablonu a její verze. Deployment Stacks řeší přiřazení, lifecycle a zamykání přes denySettings. Blueprint dělal obojí najednou, proto se náhrada popisuje jako dva nástroje — a proto to na první pohled vypadá složitěji, než to je.
Co migrací ztratím a co získám?▾
Ztratíte balení artefaktů do jednoho publikovaného objektu a portálové UX kolem něj. Získáte skutečný lifecycle — stack ví, co spravuje, a umí odstranit zdroje, které ze šablony zmizely, což blueprint nikdy neuměl — a granulárnější zamykání přes denySettings. A hlavně používáte stejný nástroj jako na zbytek infrastruktury místo samostatné governance technologie.

Mohlo by vás zajímat

Foundational CSPM přestane být default: co dopsat do subscription vendingu do 27. října 2026

Od 27. října 2026 se Foundational CSPM na nových Azure subskripcích nezapne sám. Není to problém bezpečnostního týmu, ale vaší landing zone továrny. Bicep, policy a ARG dotaz na audit.

Číst

Bicep Deployment Stacks: Lifecycle management bez ručního cleanupu

Deployment Stacks v Bicepu jsou způsob, jak Azure resources spravovat jako koherentní celek s denyAssignments, auto-cleanup a controlled deletion. Praktický průvodce s migration plánem z klasických deploymentů.

Číst

Azure Landing Zone Governance: Policy ve velkém

Azure Policy governance pro Landing Zones ve velkém měřítku. Vlastní definice politik, přiřazení iniciativ, compliance dashboardy a nákladové guardrails.

Číst