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

Blog · Mirko Peters

Оптимізація DevOps: інтеграція Azure CLI в конвеєри CI/CD

By ·

У швидкому світі сучасної розробки програмного забезпечення ефективність і швидкість означають усе. Оскільки команди розробників впроваджують практики безперервної інтеграції та безперервного розгортання (CI/CD), потреба в легких, надійних і кросплатформних інструментах автоматизації ще ніколи не була такою критичною. Чи ви створюєте тимчасові середовища для тестування, розгортаєте інфраструктуру

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

▶ BLOGStreamlining DevOps:Integrating Azure CLI…M365.FM
Titelbild: Streamlining DevOps: Integrating Azure CLI into CI/CD Pipelines

У швидкому світі сучасної розробки програмного забезпечення ефективність і швидкість означають усе. Оскільки команди розробників впроваджують практики безперервної інтеграції та безперервного розгортання (CI/CD), потреба в легких, надійних і кросплатформних інструментах автоматизації ще ніколи не була такою критичною. Чи ви створюєте тимчасові середовища для тестування, розгортаєте інфраструктуру як код чи налаштовуєте мікросервіси, інструменти вашого конвеєра мають працювати швидко й стабільно.

Ось і Azure CLI. Створений для простоти, швидкості та роботи на різних платформах, він швидко став основним інструментом хмарних інженерів, які хочуть оптимізувати робочі процеси DevOps. У цьому матеріалі ми розглянемо, чому Azure CLI добре підходить для сучасних конвеєрів розгортання, як він порівнюється з альтернативними інструментами управління та як його без проблем інтегрувати в процеси CI/CD.

Якщо вам сподобався цей детальний розбір, обов’язково послухайте наш пов’язаний випуск подкасту Azure CLI vs PowerShell: Which Should You Use?, де ми розбираємо ключові відмінності між провідними інтерфейсами управління хмарою від Microsoft.

Вступ до Azure CLI у CI/CD

Конвеєрам безперервної інтеграції та безперервного розгортання потрібні інструменти, які можуть працювати в мінімальних контейнерних середовищах без великих накладних витрат. Раніше скрипти автоматизації були жорстко прив’язані до конкретних операційних систем, що створювало труднощі під час переходу між локальними комп’ютерами розробників, агентами збірки та робочими кластерами. Сучасний DevOps потребує інструментів, які забезпечують повну узгодженість роботи у Windows, macOS і Linux.

Azure CLI відповідає цим вимогам. Завдяки чіткій, зручній для скриптів структурі команд, яка за замовчуванням виводить дані у форматі JSON, він дозволяє розробникам і автоматизованим агентам запитувати, створювати та змінювати хмарні ресурси без зайвих зусиль. Коли його вбудовують у конвеєр CI/CD, наприклад GitHub Actions, GitLab CI або Azure DevOps, Azure CLI перетворює абстрактні кроки розгортання на повторювані та детерміновані код.

Чому Azure CLI для сучасних конвеєрів

Під час проєктування сучасних архітектур CI/CD кожна секунда має значення. Агенти збірки споживають обчислювальні ресурси, а тривалі черги розгортання можуть сповільнити темп розробки. Azure CLI спеціально оптимізовано для таких високошвидкісних середовищ. Оскільки його внутрішня архітектура спирається на легковагові виклики REST, виконання є надзвичайно швидким і ефективним щодо ресурсів.

Крім того, контейнеризовані агенти збірки часто працюють на спрощених образах Linux. Встановлення громіздких залежностей може вдвічі затягнути запуск конвеєра. Мінімальний слід Azure CLI та просте встановлення роблять його ідеальним супутником для CI/CD-раннерів на основі Docker. Він дозволяє розробникам тестувати скрипти розгортання локально в тому самому середовищі оболонки, що й віддалений сервер збірки, значно зменшуючи кількість помилок типу «на моїй машині працює».

Azure CLI vs PowerShell: короткий порівняльний огляд

Вибір між Azure CLI і PowerShell — це поширена дискусія в управлінні хмарою. Обидва інструменти надзвичайно потужні, але вони орієнтовані на зовсім різні типи користувачів і операційні сценарії. Щоб зрозуміти, чому Azure CLI часто стає кращим вибором для конвеєрів CI/CD, корисно порівняти їх безпосередньо.

СценарійНайкращий інструментЧим він вирізняється
Швидке розгортання ресурсівAzure CLIШвидкий, легкий, прості команди, працює на будь-якій платформі, чудово підходить для DevOps і скриптів.
Корпоративна автоматизаціяPowerShellСправляється зі складною автоматизацією, виводить дані у вигляді об’єктів, підтримує масові операції, має глибоку інтеграцію з Windows.
Інтеграція в конвеєр CI/CDAzure CLIКоманди високого рівня, нативна підтримка інфраструктури як коду, просте налаштування конвеєра.
Просунуте скриптуванняPowerShellГнучке скриптування, створення власних інструментів, глибокий контроль над ресурсами Azure.
Кросплатформне управлінняAzure CLIПрацює в Linux, macOS і Windows, написаний на Python, ідеально підходить для різнорідних середовищ.

Хоча PowerShell чудово справляється з важкими об’єктно-орієнтованими адміністративними завданнями та глибокою інтеграцією з Windows, Azure CLI переважає в контейнеризованих конвеєрах завдяки простому текстовому виводу, вищій швидкості виконання масових легких операцій і нативній підтримці Bash.

Встановлення та налаштування Azure CLI

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

Якщо ви налаштовуєте локальну машину або віртуальну машину-агент збірки під керуванням Windows, можна встановити CLI за допомогою PowerShell:

Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi

Для Linux-раннерів CI/CD (наприклад, стандартних раннерів Ubuntu для GitHub Actions) встановлення можна виконати одним кроком через репозиторій пакетів Microsoft. Також можна скористатися попередньо встановленими середовищами раннерів, у яких Azure CLI вже є за замовчуванням. Після встановлення перевірити його дуже просто, достатньо виконати:

az --version

Для автентифікації в конвеєрі уникайте інтерактивного входу через браузер. Натомість налаштуйте конвеєр так, щоб він безпечно автентифікувався за допомогою службового принципала (Service Principal) або керованої ідентичності (Managed Identity):

az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_ID

Основний синтаксис і команди Azure CLI

Перевага Azure CLI полягає в його інтуїтивно зрозумілому та передбачуваному синтаксисі. Кожна команда починається з простору імен az, далі йде група ресурсів або сервіс, і наприкінці дія, яку потрібно виконати. Така плоска структура команд значно спрощує написання та читання скриптів конвеєра.

Ось кілька базових команд, які часто використовуються в автоматизації хмари:

# Create a resource group
az group create --name MyPipelineResourceGroup --location eastus

# List all virtual machines in a table format
az vm list --output table

# Deploy an ARM or Bicep template
az deployment group create --resource-group MyPipelineResourceGroup --template-file azuredeploy.json

За замовчуванням команди Azure CLI повертають чисті JSON-відповіді. Це дозволяє без зусиль витягувати конкретні властивості за допомогою вбудованих виразів JMESPath (--query) і передавати ці значення на наступні кроки вашого робочого процесу CI/CD.

Автоматизація розгортань за допомогою Azure CLI

Автоматизація є серцем DevOps. Під час розгортання застосунків в Azure ви рідко хочете покладатися на ручні дії в порталі Azure. Загорнувши логіку розгортання в скрипти Azure CLI, ви забезпечуєте повну однаковість у середовищах розробки, тестування та продуктивному.

Уявіть, що вам потрібно створити новий Azure App Service, оновити його параметри конфігурації та розгорнути код при кожному злитті до головної гілки. Автоматизований скрипт на основі Azure CLI робить це напрочуд просто:

# Create an App Service plan
az appservice plan create --name MyPlan --resource-group MyResourceGroup --sku B1 --is-linux

# Create the web app
az webapp create --name MyAppService --resource-group MyResourceGroup --plan MyPlan --runtime "NODE:18-lts"

# Configure environment variables
az webapp config appsettings set --name MyAppService --resource-group MyResourceGroup --settings DATABASE_URL="Server=tcp:myServer.database.windows.net..."

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

Інтеграція Azure CLI в конвеєри CI/CD

Інтегрувати команди Azure CLI в popular оркестратори CI/CD, як-от GitHub Actions чи Azure DevOps Pipelines, напрочуд просто. Оскільки агенти конвеєрів зазвичай виконують shell-скрипти, ви можете додавати стандартні команди `az` безпосередньо у файли конфігурації робочого процесу.

Ось приклад фрагмента з файлу робочого процесу GitHub Actions, який входить в Azure і розгортає веб-застосунок:

name: Deploy to Azure
on:
  push:
    branches: [ main ]
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Azure Login
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Deploy Azure Resources
      run: |
        az group create --name ProdRG --location eastus
        az deployment group create --resource-group ProdRG --template-file infra/main.bicep

Поєднуючи офіційні дії раннерів із командами Azure CLI, ви створюєте надійний, піддається аудиту та автоматизований конвеєр розгортання, який безперешкодно працює при кожній зміні коду.

Найкращі практики оптимізації DevOps з Azure CLI

Щоб максимально використати автоматизацію Azure CLI та зробити ваші конвеєри CI/CD безпечними й продуктивними, дотримуйтеся перевірених найкращих практик:

Висновок

Інтеграція Azure CLI у конвеєри CI/CD стає справжнім проривом для сучасних DevOps-команд. Його легка природа, крос-платформна сумісність та інтуїтивний синтаксис роблять його ідеальним помічником для швидкого автоматизованого розгортання в хмарі. Поєднуючи безпечні практики автентифікації, добре структуровані скрипти та надійну інтеграцію з конвеєрами, ви можете досягти безпрецедентного рівня швидкості й надійності в життєвому циклі доставки програмного забезпечення.

Щоб зануритися глибше в цю тему та почути жваву дискусію про філософію командних рядків, послухайте наш супутній епізод подкасту: Azure CLI vs PowerShell: Which Should You Use?. Опануйте обидва інструменти, зрозумійте їхні унікальні переваги та візьміть повний контроль над архітектурою вашої хмари Azure вже сьогодні!

Azure DevOps Automation GitHub Actions

Related articles

RSS