HashiCorp社は、Terraformのワークフローの成熟化に関するガイドラインを8月2日に公開した。このガイドラインは、組織がHashiCorp Terraformモジュールを活用してスケールを拡大し、迅速なリリースサイクルを実現するための手助けとなるものだ。
このガイドラインは、プラットフォームチームの広がりと共に、よりスケーリングされた組織が目指すレベルに到達する際に生じる課題を解決するために提供されている。その中で、主題の専門家がサポート依頼で多忙になる問題や、ガバナンスチームがリリースサイクルを遅らせるボトルネックになる問題への対処方法が記載されている。
HashiCorp社によれば、高いクラウド熟練度を持つ組織は、Terraformを用いたインフラストラクチャとコンプライアンスルールのコード化と標準化により、開発者が自由にコードを書くことによってビジネス価値を追加することができると述べている。
ガイドラインには、以下のようなパターンと技術が含まれている。
ガイドラインの重要なポイント:
標準化: モジュールの過剰生成と巨大なモジュールに対処するために、モジュールデザインにパレートの法則を適用する。このアプローチは、"easy 80%"と呼ばれる多くのユースケースをサポートするシンプルなモジュールを作成し、組織内でのインフラストラクチャ使用方法を統一する。
ゴールデンパス: 高いクラウド熟練度を持つ組織は、ゴールデンパスを導入している。これはTerraformモジュールが容易に発見可能であり(通常は内部モジュールレジストリを介して)、ユーザー指向の高品質なユーザーインストラクションを提供し、サポート方法も明確に示している。これにより、開発者はモジュールを再利用しやすくなる。
開発者エクスペリエンス: クラウド熟練度のある組織は、モジュールを使いやすくするために、APIを使用して変数のバリデーションやデフォルト値を提供する。また、Terraformリポジトリには一貫したフォルダとファイル構造が必要であり、コメントは決定を理解しやすくする必要がある。さらに、一般的な入力ミスをキャッチするための適切なエラーチェックが必要だ。これらの実践により、開発者は自己助力が可能となり、サポートチームの負担が軽減される。
プロダクトマネジメント: ガイドラインによれば、Terraformモジュールは個々のインフラ製品のコンポーネントとして位置付けられるべきであり、各モジュールには担当者が割り当てられるべきだ。この担当者は、モジュールのインターフェース、ロードマップ、およびメンテナンスに責任を持つ。組織全体で一貫性のあるプラクティスを実現するために、ポリシーのコード化、ドキュメンテーション、例、および開発者へのサポートもプロダクトオーナーの責任となる。
これらのガイドラインは、Terraformを活用して組織の成熟度を高める際に役立つが、一部の組織ではこれだけでは十分ではない。より高度なパターンやテクニックを用いることで、インフラストラクチャの配信パイプラインにおける手動プロセスや冗長な作業を排除し、アプリケーションチームが迅速にインフラを展開することができる。
記事全文は、HashiCorpの公式ブログでご覧いただける。ハシコープ社は、ハシコープ・テラフォームを活用した成熟したワークフローを提供することにより、組織の成長と成功に貢献している。