HashiCorp、「Terraform」でAI利用のモジュールテスト生成や「Stacks」を発表–「HashiConf 2023」
今回は「HashiCorp、「Terraform」でAI利用のモジュールテスト生成や「Stacks」を発表–「HashiConf 2023」」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
HashiCorpは米国時間10月11日、「HashiCorp Terraform」「Terraform Cloud」の新機能であるTerraformテストフレームワーク、テスト統合型モジュール公開、AI生成のモジュールテスト、「Terraform Stacks」などをサンフランシスコで開催中のカンファレンス「HashiConf 2023」で発表した。
モジュールはTerraformユーザーがインフラストラクチャーのプロビジョニングを標準化する主な方法であるため、高品質で信頼性の高いモジュールを用意することは非常に重要だとHashiCorpは述べる。モジュールのコードにバグがあると、障害やコンプライアンス違反を引き起こし、セキュリティ上の脆弱(ぜいじゃく)性を生じさせる可能性があるという。テストフレームワークがなければ、この品質管理プロセスは時間を要し、手間がかかり、最悪の場合、テストが完全に省略されることもある同社は言う。
Terraformコミュニティーは幾つかの優れたテストツールを構築してきたが、それらは「Ruby」や「Go」のような完全なプログラミング言語をしばしば使っているという。同社では「HashiCorp Configuration Language(HCL)」を使ってTerraformにネイティブなテストを導入し、コンテキストの切り替えや追加の学習を不要にしたいと考えていたと説明する。
「Terraform 1.6」で導入されて一般提供が開始された新しいTerraformテストフレームワークは、Terraformコードのユニットテストや統合テストを実行するための使いやすいツールを開発者に提供する。テストフレームワークはHCLで記述され、Terraformの構成と同様の構造を使っているため、モジュール作成者は直ちに採用できるという。
しかし、高品質なモジュールの恩恵を受けるためには、組織はモジュールを体系的に管理・公開する方法も必要との考えをHashiCorpは示し、非公開レジストリーを介して利用可能なTerraform Cloud用テスト統合型モジュール公開を作成した理由はそこにあると続ける。この新機能はモジュール作成者がモジュールのテストと公開のプロセスを効率化するのに役立つという。
まず、新しいブランチベースの公開方式が非公開レジストリーで採用されたことで、モジュールの公開タイミングと方法をより細かく制御できるようになった。現在のGitタグベースの公開とは異なり、ブランチベースでは、レジストリーのメンテナーが新しいモジュールのバージョンをレジストリーから直接公開できる。この新しい公開ワークフローにより、Terraformテストフレームワークは非公開レジストリーと直接統合されたという。
テストランは、モジュールで有効にすると、プルリクエストやマージなどのバージョン管理イベントに基づいて自動的に実行され、CLIやAPIから開始できる。テストは、ワークスペースのランと同様にセキュアな環境でリモートから実行されるため、開発者が機密性の高いクラウドの認証情報をワークステーションで扱う必要はなくなるという。統合されたテストと公開に関するより直接的な制御により、プラットフォームチームは、新しいモジュールのバージョンがダウンストリームのユーザーに提供される前に十分にテストされていることを確信できると同社は述べる。
テスト統合型モジュールはベータ版として提供され、Terraform Cloudの「Free」プランでは最大5個、「Standard」プランでは最大10個、「Plus」プランでは無制限に使うことができる。
今回、Terraformは生成AIを使ったモジュールテストの生成も可能にした。新しいテストフレームワークは使いやすく設計されているが、その学習には時間がかかると同社。特に、モジュール作成者が開始方法を理解ができていない場合にそのような傾向が強まるという。
新しいAI利用モジュールテスト生成機能は、モジュール作成者のための出発点として機能するとともに、組織が即座にモジュールテストを作成するのを支援する。大規模言語モデル(LLM)を活用し、非公開レジストリー内のモジュール用にカスタマイズされたテストスイートを自動生成する。このモデルはHCLとTerraformテストフレームワークで特別に学習され、モジュール作成者がコードをすぐにテストできるようにするという。
同機能は現在ベータ版で、Terraform Cloud Plusを利用する組織の非公開レジストリーで利用可能。ボタンを押すだけで、Terraform Cloudはモジュール専用にカスタマイズされた1つ以上のテスト用コードを生成する。作成者は画面からコードをコピーまたはダウンロードし、モジュールリポジトリーに追加できる。
このAIを使ったテスト生成機能は、顧客やコミュニティーモジュールのデータが学習モデルに使用されないように構築されており、モジュールデータがサードパーティーベンダーに保存されることはないとHashiCorpは強調する。
「Visual Studio Code」向けTerraform拡張のエディター検証が強化された。Terraformコードを可能な限り早い段階で自動的に検証し、エラーをハイライトし、問題を迅速に解決するためのガイダンスを提供することで、より強化された統合されたオーサリング体験を生み出す。「不足している変数宣言や必須属性の特定」「予期せぬ属性やブロックのハイライト」「非推奨属性に対する警告の発行」などが新しい検証に含まれる。
Stacksは、相互に依存するTerraform構成の調整、デプロイ、管理を自動化・最適化し、インフラ管理にかかる時間とオーバーヘッドを削減する新しいアプローチ。
複数のTerraformモジュールは、ネットワークやデータベースモジュールのような相互に依存する異なるシステムをグループ化したコンポーネントを使って、stackとしてまとめてデプロイできる。このコンポーネントセットが定義されると、stack内のデプロイメントと呼ばれるもの全体で何度も複製することが容易になる。これは、複数の環境(ステージング、QA、本番など)やリージョンに同じインフラをデプロイする場合に特に便利である。各デプロイで異なる入力値を使用することで、複雑なインフラを絶えず作成・拡張することを1回の簡単な実行できる。
今日、Terraformでインフラへのモジュラーアプローチを活用できるが、大規模なデプロイと管理はしばしば面倒で複雑、そして繰り返しの作業のままだとHashiCorpは指摘する。
例えば、複数のルートモジュールやワークスペースを一緒にプロビジョニングする場合、まずそれらの依存関係を理解し、各モジュールやワークスペースを一つ一つ正しい順序で手作業によりデプロイしなければならない。この複雑さは、同じインフラを複数の環境、リージョン、ランディングゾーン、クラウドプロバイダー内のアカウントに複数回デプロイする必要がある場合に悪化するという。Terraform Stacksはこのようなプロビジョニングと管理を簡素化する。
「Ephemeral workspace」がTerraform Cloud PlusとTerraform Enterpriseで一般提供された。同機能は8月、「Ephemeral workspace」のパブリックベータ版が発表されていた。Ephemeral workspaceにより、ユーザーは非本番環境リソースを自動的に破棄する時間を設定でき、手作業によるクリーンアップの必要性をなくし、ワークスペース管理を合理化し、そしておそらく最も重要なこととして、インフラコストを削減できる。
(取材協力:HashiCorp)