あなたのリクエストに応じて、ノイズを減らす機能を開発しました。大切な情報を見逃さないよう、お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。
HashiCorpはTerraform Recommend Practicesというガイドを公開した。これは、クラウド技術とInfrastructure as Code (IaC)を導入しようとしている企業を支援するためだ。典型的な推奨されるTerraformのワークフローが多数紹介され、"設定の成熟モデル"が示されている。また、現在のTerraformの使い方を進化させ、成熟度を上げる方法についてアドバイスしている。このガイドはTerraform、Packer、Vaultというインフラツールの開発会社であるHashiCorpと、同社のパートナーであるContinoとの共同制作だ。
HashiCorpのこのガイドを発表したブログ記事で、クラウドベースのサービスを使うことで開発チームは、基底にある従来のインフラの制約からかなり独立して運用ができるようになる、と書いている。しかし、従来のプライベートなデータセンターでの物理的なインフラの"設定と準備"からSoftware Defined Everything (SDx)の作成と管理に移行することに関わる技術的かつ組織的な課題がある。プログラム可能なAPIやSDKを経由して計算リソースを管理することやSoftware Defined Networking (SDN)やSoftware Defined Storage (SDS)を使うことなどだ。
HashiCorp Terraformはエンジニアが宣言的なコードによってインフラを定義できるようにし、環境を"安全で予測可能な"方法で計画し設定できるようにした。Terraformを使ったコードの構造化の方法については多くのレポートやベストプラクティスがすでに存在する。例えば、Charity Majors氏のブログ記事やYevgeniy Brikman氏のブログ記事だ。後者は最終的にはO'Reillyの"Terraform: Up and Running"という本になった。しかし、Terraformで推奨される使い方をする場合も気をつけなければならない。このツール自体が高速で進化しており、昨日の推奨事項がTerraformのワークフローそのものに組み込まれる場合もあり、Terraformに対する誤解を克服するための不要な回避策として認識される場合もある。
Terraformはオープンソースツールだが、商用のTerraform Enterpriseという製品もある。このガイドは企業がIaC(とTerraform Enterprise)を導入するにフォーカスしている。しかし、クラウドインフラをIaCで管理しようとしている組織にとって使い勝手の良いワークフローと推奨される方法は多くある。
このガイドは次の3つのパートで成り立っている。
- Part 1: An Overview of Our Recommended Workflow このパートでは、Terraformのワークフローの全体像を概観している。インフラがどのように構成され管理されているか、人はインフラとどのようにやりとりすればいいのかが示されている。
- Part 2: Evaluating Your Current Provisioning Practices このパートでは組織のインフラ設定の状態を評価する助けになる問いを示している。また、インフラ設定の成熟度を表す4つのステージも紹介されている。
- Part 3: How to Evolve Your Provisioning Practices このパートでは、運用の成熟度の4段階を通じて設定の仕方を進化させる方法を示している。
最初のパートでは、組織にIaCを導入することに対する技術的、組織的な困難について説明し、インフラを管理するための4つのペルソナを紹介している。Central ITはインフラに対する共通の方法を定義しポリシーを強制する役割。Organisation Architectは、インフラ全体をどのように分割し、チームに移譲するのかを定義する役割。Workspace Ownerは、具体的なワークスペースを持ち、その領域のプロダクション環境の変更の承認者。Workspace Contributorは、IaCの構成を更新することで(プロダクション環境ではない)ワークスペースに変更を行う。
それぞれのペルソナに対して推奨されるやり方が提示されている。ワークスペースは、Terraformの構成や変数、状態データなどTerraform実行に必要なすべてのものを集めた概念であり、適切に制御するために使われる。
2番目のパートでは、IaCの"設定の成熟モデル"を紹介している。このモデルは次の4段階だ。手動、半自動化、Infrastructure as Code、協調的なInfrastructure as Codeの4つだ。また、自己評価をするための質問も提供する。パート3では、次の成熟度に進むために必要なステップを説明している。
例えば、"半自動化からInfrastructure as Code"へ移行する方法が書かれているセクションでは、バージョンコントロールのやり方、Terraformモジュール作成方法のリファレンス、組織上のガイドラインとポリシーを定義する方法が書かれている。これらのガイドラインはメジャーなクラウドベンダの設計ガイドと推奨される方法に基づいて作られている。
- AWS: Well Architected FrameworksとArchitecture Center
- Azure: Azure Reference Architecturesの配置とAzure Architecture Center
- GCP: スケーラブルで弾力性のあるウェブアプリケーションの作り方
- Oracle Public Cloud: Oracle Cloudのベストプラクティス
このガイドにはさらにいくつかの先進的なトピックについて推奨事項を書いている。TerraformとPackerのようなイメージ作成ツールやChefのような構成管理フレームワークとの統合方法、カスタムのTerraform Providersの作り方、CI/CDビルドパイプラインでTerraformを実行する方法、Terraform Provider Development Programの目的などだ。
HashiCorpとContinoのTerraform Recommended Practices GuideはTerraformのサイトからダウンロードできる。
Rate this Article
- Editor Review
- Chief Editor Action