Azure 仮想アーキテクチャでの Jenkins と Terraform を使用した不変のインフラストラクチャ CI/CD の概要

Log Analytics
Managed Disks
Virtual Machine Scale Sets
GitHub

ソリューションのアイデア

この記事にさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

Azure は、Windows または Linux を実行する仮想マシンをホストするための世界クラスのクラウドです。 Java、Node.js、Go、PHP のいずれを使用してアプリケーションを開発する場合でも、これらの仮想マシンに変更を自動的にプッシュするには、継続的インテグレーションと継続的デプロイ (CI/CD) のパイプラインが必要です。

Architecture

アーキテクチャ図このアーキテクチャの SVG をダウンロードしてください。

データ フロー

  1. アプリケーションのソース コードを変更します。
  2. コードを GitHub にコミットします。
  3. 継続的インテグレーション トリガーが Jenkins に送られます。
  4. Jenkins で、Packer イメージ ビルドがトリガーされて VM が作成され、それが Azure Managed Disks を使用して VM イメージとして保存されます。
  5. Jenkins で、Terraform がトリガーされ、Azure Managed Disks VM イメージを使用して新しい仮想マシン スケール セットがプロビジョニングされます。
  6. Log Analytics で、ログが収集されて分析されます。
  7. アプリケーションを監視し、改善を行います。

コンポーネント

  • Managed Disks:Azure 仮想マシン向けの安全で永続的なディスク ストレージ。
  • Virtual Machine Scale Sets:数千の Linux および Windows 仮想マシンを管理してスケールアップします。
  • Log Analytics:オンプレミスおよびクラウドからマシン データを収集、検索、および視覚化します。
  • Visual Studio Code:Azure サービスを最大限に活用するマルチ プラットフォーム アプリをビルドしてデプロイします。

このシナリオのデプロイ

次のステップ