今日から始めるARMテンプレート

A presentation at Japan Azure User Group 9周年イベント in September 2019 in Tokyo, Japan by Kazumi OHIRA

Slide 1

Slide 1

今日から始める ARMテンプレート Japan Azure User Group 9周年イベント https://jazug.connpass.com/event/140843/

Slide 2

Slide 2

Azure のリソース管理、 どうしてますか?

Slide 3

Slide 3

ARMテンプレートをご紹介します!

Slide 4

Slide 4

Self introduction

Slide 5

Slide 5

Me { “name”: { “ja”: “大平かづみ”, “en”: “Kazumi OHIRA” }, “currentPosition”: “フリーランス”, “awards”: [“Microsoft MVP”], “favorites”: [ “Azure”: [“ARM template”, “IoT”] ], “twitter”: “@dz_” }

Slide 6

Slide 6

Infrastructure as Code のおさらい

Slide 7

Slide 7

Infrastructure as Code のおさらい • インフラ構成・管理をコードで行うこと • メリット • インフラ管理を自動化できる • 実態と紐づくため抜け漏れがない • バージョン管理と併用することでレビューしやすく

Slide 8

Slide 8

Infrastructure as Code のおさらい • インフラ構成・管理をコードで行うこと • メリット • インフラ管理を自動化できる • 実態と紐づくため抜け漏れがない • バージョン管理と併用することでレビューしやすく コードにさえしていれば、 後から思い出せる! (個人的メリット)

Slide 9

Slide 9

ARMテンプレート

Slide 10

Slide 10

ARMテンプレートのいいところ 冪等性保持をARM側がやってくれる Azure 純正なので、細かいところまで操作できる!

Slide 11

Slide 11

ARMテンプレート最初の一歩 • 知る • Azureポータルで手動でリソース作って、エクスポートしてみる • 書く • エクスポートしたARMテンプレートには、不要なパラメータも含まれているた め、これを参考に新たに書き直した方がきれい • リファレンスを参考に、APIバージョンの更新や不要なパラメータを整理する • Visual Studio Code で書くのおすすめ • 実行する • 大体一発目はこける(笑) こけたときはエラーメッセージを頼りに直す。 • 根気よく(笑)

Slide 12

Slide 12

リファレンス • Azure 上の Resource Manager のドキュメント - チュートリアル、 サンプル、リファレンス、リソース | Microsoft Docs • Visual Studio Code を使って Azure Resource Manager テン プレートを作成する | Microsoft Docs • Azure/azure-quickstart-templates: Azure Quickstart Templates

Slide 13

Slide 13

ARMテンプレートの構成 { “$schema”: “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”, “contentVersion”: “”, “parameters”: { }, “variables”: { }, “resources”: [ ], JSON で書かれた、 “outputs”: { } Azure REST API の } ラッパーのようなもの https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-groupauthoring-templates

Slide 14

Slide 14

CI/CDでARMテンプレートを活用する • Azure DevOps との相性最高! • Azure Resource Group Deployment task • Azure CLI task • Azure PowerShell task

Slide 15

Slide 15

ARMテンプレートのテスト • Visual Studio Code 拡張機能による静的チェック • テストフレームワークを利用したチェック • ARMテンプレートの Output を利用したチェック • Azure CLI, Azure PowerShell, Azure SDK を利用したチェック • 疎通テストは、システムによってテスト方法は異なる • VM なら Serverspec や Testinfra でコンフィグレーションチェック • API ならE2Eテスト、など

Slide 16

Slide 16

サンプル作ってみました Azure DevOps で ARMテンプレートを使う

Slide 17

Slide 17

サンプル Azure DevOps x ARMテンプレート • Azure Functions のテストを 想定 • ARMテンプレートでテスト用リ ソースを作成 • ソースコードを Azure Functions にデプロイ • Mocha を使ったテスト実施 • リソースを削除 https://github.com/dzeyelid/getting-started-arm-template

Slide 18

Slide 18

Have fun!