第7章 Azure での Linux デプロイの自動化
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
組織がアプリケーションとインフラを拡張するにつれ、手動によるデプロイや設定はすぐに非現実的になり、エラーが発生しやすくなる。この問題を解決するため、GitOps、CI/CD、自動化、コードとしてのインフラといった現代的なDevOpsプラクティスは、一貫性があり再現性のある自動デプロイのフレームワークを提供する。これらのプラクティスは効率性だけでなく、Microsoft Azure上のLinuxワークロードの信頼性、スケーラビリティ、セキュリティを根本的に強化するものである。
本章では、Azureの自動化ツールと統合のエコシステムを活用して、Linuxアプリケーションをシームレスにデプロイおよび管理する方法を探る。以下の内容を扱う:
- コードとしてのインフラ(IaC)
-
Azure Resource Manager (ARM)、Bicep、Terraform、Ansible を使用して、バージョン管理されたコードとしてのインフラを管理する
- コードホスティングおよび自動化プラットフォーム
-
GitHub Actions と Azure DevOps によるアプリケーションとインフラの一貫したデプロイ
- アプリケーション配信モデル
-
Azure App Service、Azure Container Apps、AKS、Azure 仮想マシン の活用
- Microsoft Copilot for Azure
-
AI による自動化でインフラ計画を加速する
コードとしてのインフラ (IaC)
IaCは、人間が読める構成ファイルでインフラを定義し、自動化され再現性のあるデプロイを可能にする。IaCの台頭はクラウドコンピューティングの成長と一致しており、クラウドはIaCツールが連携するための一貫したAPIを提供する。
Azure は複数の IaC ツールをサポートしており、それぞれに強みと潜在的な欠点がある。
Azure リソースマネージャー (ARM)
ARMはAzureのデプロイと管理サービスだ。ARMテンプレートはJSONを使ってAzureリソースとその構成を定義する。機能やサービスのサポートという点では、ARMテンプレートが標準的な手法だ。
強力ではあるが、ARMテンプレートは冗長で保守が難しい場合がある。JSONを手作業で編集するのは困難であり、ARMテンプレートはインラインコメントや再利用可能なモジュールといった一般的なプログラミング機能もサポートしていない。こうした欠点から、簡素化された抽象化レイヤーとしてBicepが開発された。
Bicep
BicepはAzureリソースデプロイのためのドメイン固有言語だ。ARMテンプレートと完全な互換性を保ちつつ、記述や管理がはるかに容易である。主な利点は以下の通りだ:
- 簡素化された構文
-
生の ARM JSON よりもクリーンで読みやすい
- モジュール設計
-
複雑なアーキテクチャ向けの再利用可能な構成要素を促進する
- ネイティブの Azure 統合
-
Azure サービスとの完全な互換性
BicepはARMテンプレートと同様に、Azureサービスのみをサポートするという制限がある。クラウドに依存しない解決策を求めるなら、Terraformが有効な代替手段となる。
Terraform
TerraformはマルチクラウドIaCの業界標準だ。その宣言的構文により、Azureとマルチクラウドリソースを一貫して定義できる。Terraform利用の主な利点は以下の通りだ: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access