ArtifactoryのTerraformリポジトリでクラウドKubernetesレジストリを実現
Kubernetesのオーケストレーションツールでコンテナベースのサービスを開発する場合、Terraformはアーティファクトのエコシステムに欠かせないものとなります。これらのinfrastructure-as-code設定ファイルはK8sアプリケーションを実行するクラウド環境でのプロビジョニングと保守の自動化に役立ちます。
そのためソフトウェアのサプライチェーンの一部としてTerraformモジュール、プロバイダ、リモートステートファイルをArtifactoryに格納できるようになったことは素晴らしいニュースと言えます。これらのIaCファイルをDockerイメージやHelm chartと一緒にJFrogのリポジトリに格納することで、Artifactoryは包括的なKubernetesレジストリとして機能し、クラウドネイティブアプリの追跡可能でセキュアな信頼関係を通して配布できるようになります。
Terraformとは?
Terraformはクラウド基盤のソフトウェア開発におけるライフサイクル全体を管理するために広く利用されている、オープンソースのInfrastructure-as-Codeソフトウェアツールです。TerraformはクラウドAPIを宣言型の設定ファイルにコード化することで、クラウドプロバイダーのインフラを多くのインスタンスに渡って統一した方法でプロビジョニング、調整、破棄を可能にします。
これはGitOpsの基幹的なプロセスで、ソフトウェア開発に使われた同じツールとプロセスを通してインフラのプロビジョニングとデプロイメントを管理するという、開発者中心のエクスペリエンスです。このプロセスでは、TerraformモジュールはGit VCSリポジトリに格納され、本番システムの状態はGitプルリクエストで自動的に管理されます。これによってシステムの状態遷移を開発者が確認できます。
Artifactoryに装備されたTerraform
では、なぜTerraformモジュールのレジストリをArtifactoryのようなバイナリリポジトリマネジャーで管理する必要があるのでしょうか?それはビルドと同様、Terraformモジュールはソフトウェアのサプライチェーンと本番Kubernetesへのソフトウェア配信で重要だからです。
すべてのアプリケーションはソースコードから始まりますが、パイプラインを経て成果物であるソフトウェアになるのはバイナリです。また、最近のアプリケーションの複雑な依存関係においては、そのサプライチェーンに変更があれば、新しいビルドの引き金となる可能性があります。
TerraformモジュールとプロバイダをArtifactoryレジストリに格納することで、それらはJFrog Platformの認証済みのアクセス、チェックサム検証、きめ細かい権限管理で保護され、ソフトウェアのサプライチェーンのセキュアな信頼関係の一部になります。これで、Terraformの資産を不変的なビルドやその他のアーティファクトとより良く関連付けることができます。Terraformのモジュール、プロバイダ、Helm ChartをDockerイメージと一緒に配置することで、開発からテスト、本番までのSDLC全体において、より簡単に管理できるようになります。
TerraformとHelmのアーティファクトをArtifactoryのパッケージとビルドメタデータに組み込むことで、本番環境に至るまでの直接的な追跡が可能になります。もし過去のビルドにロールバックする必要がある場合、自動化はそのビルドに適用するTerraformの構成も得られます。
Terraformレポジトリの種類
Artifactoryでは3種類のTerraformアーティファクトのレジストリを管理できます。
- Terraformモジュール – 1つのディレクトリにある1つ以上のTerraform設定(.tf)ファイル群です。ファイル毎にTerraformに特定のインフラストラクチャの集合をどのように管理するかを伝える宣言的な言語を使用
- Terraformプロバイダ– クラウドプラットフォームやサービスを設定するための上流APIを管理できるようにするTerraformプラグイン
- Terraformバックエンドリポジトリ – バックエンドとして使用する際に、チームメンバー全員で共有するStateスナップショットのためのリモートstateのデータストレージとして機能
ArtifactoryはTerraformバックエンドリポジトリ用のローカルリポジトリをサポートし、TerraformモジュールとTerraformプロバイダレジストリの両方で、そのすべてのタイプのリポジトリをサポートします。
- ローカルリポジトリ – 組織のネットワーク内でのみアクセス可能なプライベートレジストリ
- リモートリポジトリ– ローカル化と可用性のためにキャッシュされたバージョンを提供する外部レジストリ(パブリックなTerraformレジストリなど)のプロキシ
- バーチャルリポジトリ – 同じパッケージタイプのローカルとリモートリポジトリのセットをカプセル化し、単一URLからアクセスできる論理上のリポジトリ
GitOpsを強化するJFrog BinOps
Terraformのような宣言型IaCツールやHelm chartのようなオーケストレーションツールは開発者がK8sのクラウドインフラを管理できる方法としてGitOpsの重要な部分を担っています。
TerraformのレジストリをArtifactoryで管理し、Kubernetesレジストリの一部にすることで、BinOpsの原則(JFrog DevOps platformのバイナリ中心のアプローチによるソフトウェアデリバリーの成功)を実践し、クラウドネイティブ開発をより加速させることも可能です。
JFrog Platformが実現するこれらのBinOpsメソッドは、GitOpsとの競合や置換するものではありません。GitOpsの手順をソフトウェアのサプライチェーン管理でのベストプラクティスと組み合わせて、開発者にさらなる力を与えます。
詳細は、こちらから:https://jfrog.com/ja/start-free/