M365Con 2027 – безкоштовна онлайн-конференція · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Чому команди Azure нарешті відмовляються від шаблонів ARM

By ·

Протягом багатьох років інженери хмари та розробники, які працювали з Microsoft Azure, стикалися з неоднозначною реальністю під час впровадження Infrastructure as Code (IaC). З одного боку, шаблони Azure Resource Manager (ARM) надавали нативний, потужний спосіб надійно розгортати та керувати хмарною інфраструктурою. З іншого боку, написання й підтримка цих шаблонів означали боротьбу з громіздкими

Automatically translated with AI from the original post. Read the English original

Cover: Bicep - Simply Explained

Протягом багатьох років інженери хмари та розробники, які працювали з Microsoft Azure, стикалися з неоднозначною реальністю під час впровадження Infrastructure as Code (IaC). З одного боку, шаблони Azure Resource Manager (ARM) надавали нативний, потужний спосіб надійно розгортати та керувати хмарною інфраструктурою. З іншого боку, написання й підтримка цих шаблонів означали боротьбу з громіздкими JSON-файлами, глибокою вкладеністю, роздутою структурою коду та болісними конфліктами злиття щоразу, коли хтось із команди змінював репозиторій. Якщо ви хоч раз витрачали години на пошук помилково поставленої дужки чи непомітної коми в JSON-документі на тисячу рядків, ви знаєте, що таке розчарування від традиційних розгортань в Azure.

На щастя, хмарний ландшафт змінився. Команди Azure поступово відмовляються від сирих шаблонів ARM на користь Bicep — чистішої, зручнішої для людини доменно-орієнтованої мови, яка позбавляє від болю, пов'язаного з JSON, не жертвуючи надійністю Azure Resource Manager. У цьому вичерпному посібнику ми розглянемо, чому відбувається цей перехід, як Bicep працює всередині та чому перехід може скоротити вашу кодову базу інфраструктури до 60%.

Вступ до втоми від шаблонів ARM

Щоб зрозуміти, чому Bicep так швидко завоював спільноту Azure, спочатку потрібно з'ясувати першопричину втоми від шаблонів ARM. Коли Azure вперше popularized розгортання на основі шаблонів, JSON був універсальним стандартом обміну даними. Проте JSON ніколи не створювався як мова програмування чи інструмент опису інфраструктури. Зі зростанням і ускладненням хмарних середовищ обмеження JSON стали надто очевидними.

Зі шаблонами ARM складність зростає експоненційно. Типове корпоративне розгортання, що включає віртуальні мережі, підмережі, сховища ключів і керовані ідентичності, швидко роздувається до файлів на тисячі рядків. Оскільки JSON за замовчуванням не має нативних циклічних конструкцій чи розширених засобів модульності, інженери часто вдаються до складних функцій copy та заплутаної вкладеності. Коли кілька членів команди намагаються працювати з одним монолітним файлом шаблону, часті конфлікти злиття стають радше правилом, ніж винятком. Налагодження таких файлів часто нагадує пошук голки в стогу сіна, через що багато команд відмовляються від автоматизованого IaC на користь схильних до помилок ручних кліків у порталі, що повністю нівелює сенс автоматизації DevOps.

Огляд Bicep

Розуміючи ці поширені болі розробників, Microsoft представила Bicep як прозорий рівень абстракції над шаблонами ARM. Bicep не є заміною Azure Resource Manager; це радше розумніший і лаконічніший спосіб взаємодії з ним. Все, що можна зробити в шаблоні ARM, можна зробити і в Bicep, але з часткою когнітивного навантаження.

В основі Bicep лежить спрощений синтаксис, який читається майже як звичайна англійська мова. Він прибирає синтаксичний шум JSON — прощайте з нескінченними лапками, дужками та комами — і замінює його чистими декларативними оголошеннями. Оскільки Bicep є компільованою мовою, ваш код виступає джерелом істини, який під час фази розгортання транспілюється у стандартний JSON для ARM. Ця розумна архітектура забезпечує 100% сумісність із базовим механізмом розгортання Azure, водночас суттєво покращуючи щоденний досвід роботи розробника.

Як працює Bicep

Розуміння механіки Bicep допомагає зрозуміти, як він долає розрив між зручністю читання для людини та виконанням машиною. Коли ви пишете код інфраструктури за допомогою Bicep, ви створюєте файли з розширенням .bicep. Ці файли використовують доменно-орієнтовану мову, оптимізовану саме для надання ресурсів Azure.

Робочий процес напрочуд простий:

  1. Створення: Ви створюєте та редагуєте файли .bicep локально в сучасних інтегрованих середовищах розробки, таких як Visual Studio Code, використовуючи розширення, що пропонують IntelliSense, перевірку синтаксису та лінтинг у реальному часі.
  2. Компіляція: За допомогою команди Bicep CLI bicep build main.bicep ваш чистий код компілюється у стандартний JSON-шаблон ARM.
  3. Розгортання: Результуючий шаблон ви розгортаєте безпосередньо в Azure за допомогою Azure CLI або Azure PowerShell, так само як і раніше.

Цей крок компіляції гарантує, що основний механізм розгортання Azure залишається незмінним, а отже, ваші корпоративні політики, елементи керування доступом на основі ролей і перевірки безпеки розгортання продовжують працювати без збоїв.

Переваги Bicep

Перехід від ARM-шаблонів на основі JSON до Bicep дає інженерним командам одразу відчутні та вимірювані переваги. Насамперед це значне скорочення обсягу коду. Команди регулярно повідомляють про зменшення коду на 50–60 %, тобто менше рядків для написання, перевірки та супроводу.

Крім того, Bicep суттєво покращує командну співпрацю. Завдяки можливості розбивати визначення інфраструктури на менші багаторазові модулі різні члени команди можуть одночасно працювати над окремими компонентами архітектури й не заважати одне одному. Контроль версій стає значно чистішим, перевірка коду займає хвилини замість годин, а введення нових інженерів у хмарні проєкти перестає бути складним випробуванням і стає плавним процесом.

Початок роботи з Bicep

Почати роботу з Bicep дуже просто. Оскільки Bicep CLI є легковagовим і природно інтегрується з Azure CLI, ви можете налаштувати все у Windows, macOS або Linux буквально за кілька хвилин.

Для початку переконайтеся, що встановлено Azure CLI та Visual Studio Code. Встановіть офіційне розширення Bicep для VS Code, щоб отримати такі можливості, як автодоповнення коду, перевірка параметрів і автоматичне виявлення типів ресурсів. Після налаштування написання першого ресурсу, наприклад облікового запису Azure Storage або віртуальної мережі, займе лише кілька чітких рядків коду замість десятків рядків щільного JSON-шаблонного коду.

Сценарії використання Bicep

Bicep найкраще проявляє себе в двох основних корпоративних сценаріях: базові реалізації Infrastructure as Code та розгортання в кількох середовищах.

У стандартних конвеєрах IaC Bicep легко інтегрується з платформами CI/CD, такими як GitHub Actions і Azure DevOps, забезпечуючи повністю автоматизовані, відтворювані розгортання, які усувають дрейф конфігурації. Для архітектур з кількома середовищами, наприклад розробки, тестування, передпродуктового середовища та продуктивного, підтримка параметрів і модульних шаблонів у Bicep дозволяє вести єдину стандартизовану кодову базу, одночасно безпечно підставляючи змінні та конфігурації, специфічні для середовища, під час розгортання.

Поширені запитання

Що таке Bicep?

Bicep — це прозора мова з відкритим кодом, специфічна для домену, створена Microsoft для декларативного розгортання ресурсів Azure з чистішим синтаксисом, ніж у традиційних ARM-шаблонів.

Чим Bicep відрізняється від ARM-шаблонів?

ARM-шаблони використовують громіздкий синтаксис JSON, який важко читати й підтримувати, тоді як Bicep пропонує стислий і зрозумілий синтаксис із розвиненою підтримкою інструментів. Файли Bicep компілюються в ARM-шаблони перед розгортанням.

Чи можна перетворити наявні ARM-шаблони на Bicep?

Так! Ви можете легко декомпілювати наявні ARM-шаблони у форматі JSON у файли Bicep за допомогою Bicep CLI, щоб одразу почати користуватися його спрощеним синтаксисом.

Чи безкоштовний Bicep?

Так, Bicep повністю безкоштовний і має відкритий код, а Microsoft повноцінно підтримує його як першокласний інструмент для керування інфраструктурою Azure.

Чи підтримує Bicep модульність?

Безумовно. Bicep спочатку створювався з підтримкою модульного дизайну коду, що дозволяє розбивати великі інфраструктурні розгортання на багаторазові та зручні в керуванні компоненти.


Відмова від застарілих ARM-шаблонів уже не є експериментальним вибором для передових команд — це стає базовим стандартом для ефективної та масштабованої інженерії в Azure. Завдяки зменшенню складності коду, покращенню співпраці та спрощенню розгортань у кількох середовищах Bicep дає хмарним фахівцям змогу зосередитися на створенні якісного програмного забезпечення, а не на боротьбі з конфігураційними файлами.

Щоб глибше зануритися в тему та почути практичні поради про те, як сучасні команди модернізують свої хмарні стратегії, обов’язково послухайте наш пов’язаний епізод подкасту: Bicep - Simply Explained.

Bicep Microsoft Azure Infrastructure as code Azure Functions Exchange Online

Related articles

RSS