Введение в Azure Bicep


Azure Bicep

Azure Bicep — это новый язык домена (Domain-Specific Language, DSL) для декларативного развертывания ресурсов Azure. Bicep — это не язык программирования общего назначения, а прозрачная абстракция для шаблонов Azure Resource Manager (ARM). Это гарантирует, что свойства, легитимные в шаблонах ARM, действительны и в Bicep.

Преимущества Bicep

Bicep обладает следующими преимуществами:

  1. Поддержка всех полезных типов ресурсов и версий API
  2. Простой синтаксис
  3. Авторский опыт
  4. Повторяющиеся результаты
  5. Оркестровка
  6. Модульность
  7. Интеграция с сервисами Azure
  8. Предварительный просмотр изменений
  9. Отсутствие документов состояния или царства для управления
  10. Отсутствие цены и открытый исходный код

Почему Bicep?

Шаблоны ARM — это документы JSON, которые обеспечивают декларативный способ определения нашей инфраструктуры и конфигурации Azure. Язык шаблонов ARM предлагает встроенные функции и другие языковые конструкции, такие как циклы, которые помогают нам создавать более динамичные определения инфраструктуры.

Однако синтаксис JSON для шаблонов ARM делает файлы довольно многословными и ограничивает расширяемость из-за того, что нам приходится воспроизводить то, что поддерживается в рамках представления статистики JSON.

По мере роста сложности инфраструктуры наш ARM-шаблон становится практически нечитаемым и сложным в обслуживании. Существуют приемы развертывания ARM-шаблона. В частности, HashiCorp Terraform или Pulumi SDK. Эти инструменты не используют шаблоны ARM, но предоставляют альтернативные способы описания нашей инфраструктуры в виде кода.

сложность инфраструктуры затрудняет поддержание шаблона. Существуют и другие способы развертывания шаблона. В частности, Pulumi SDK или HashiCorp Terraform. Эти инструменты не используют шаблоны, а вместо этого предоставляют альтернативные способы определения нашей инфраструктуры в виде кода.

Существует разница между файлом Bicep и эквивалентным шаблоном. Есть два примера, которые развертывают учетную запись хранилища.

Следующие примеры демонстрируют различие между файлом Bicep и эквивалентным шаблоном JSON. Оба примера устанавливают учетную запись хранилища.

param storageAccountName string
param accessTier string = 'Hot'
param location string = 'WestUS2'

resource sa 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: accessTier
  }
}
Вход в полноэкранный режим Выход из полноэкранного режима

26 трасс в приведенном выше примере — это то, что нужно для создания многократно используемого файла Bicep, который может генерировать шаблон ARM для обеспечения учетной записи хранилища Azure. При компиляции получается следующий шаблон ARM.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string"
    },
    "accessTier": {
      "type": "string",
      "defaultValue": "Hot"
    },
    "location": {
      "type": "string",
      "defaultValue": "WestUS2"
    }
  },
  "functions": [],
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2019-06-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Hot"
      }
    }
  ],
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.3.126.58533",
      "templateHash": "6796585337478950038"
    }
  }
}
Вход в полноэкранный режим Выход из полноэкранного режима

Сгенерированный шаблон почти в два раза больше, чем файл Bicep. Этот шаблон ARM может быть развернут путем предоставления значений критических параметров в виде другого JSON или в командной строке при использовании Azure CLI или Azure PowerShell.

Этот пример говорит о гибкости, которую мы имеем с этим языком для создания ARM-шаблонов. Теперь Bicep представляет собой не просто конструкцию традиционного языка программирования, но и способ компоновки наших определений инфраструктуры Azure в виде небольших многократно используемых модулей.

Благодарю за то, что дочитали мою статью до конца. Надеюсь, сегодня вы поняли что-то уникальное. Если вам понравилась эта статья, пожалуйста, поделитесь с друзьями, а если у вас есть предложения или мысли, которыми вы хотите поделиться со мной, пожалуйста, напишите в поле для комментариев.

Этот блог представлен в рамках ‘Devtron Blogathon 2022’ — https://devtron.ai/.
Загляните в GitHub-репо Devtron — https://github.com/devtron-labs/devtron/ и поставьте ⭐ в знак вашей любви и поддержки.
Следите за Devtron на LinkedIn — https://www.linkedin.com/company/devtron-labs/ и Twitter — https://twitter.com/DevtronL/, чтобы быть в курсе новостей этого проекта с открытым исходным кодом.

Оцените статью
Procodings.ru
Добавить комментарий