TerraformというOSSを最近知りました。
Ansibleとの違いがわからず調査したのですが、
英語の記事しか見つからず、地味に苦労したのでまとめます。
1. Terraformとは?
TerraformというOSSがあることを今更知りました。
英語版WikipediaによるTerraformの説明は、以下の通りです。
Terraform is an infrastructure as code software by HashiCorp. It allows users to define a datacenter infrastructure in a high-level configuration language, …[Wikipedia] |
日本語版Wikiには、まだ載っていないようです。雰囲気で訳すと、多分以下のようになります。
|
Infrastructure as Codeのツールと聞くと、Ansibleを想像していましました。
次は、両者の違いに注目します。
2. TerraformとAnsibleの関係
本章は、↓の記事を参考にしています。日本語で調べても、良い記事が出てきませんでした。
Ansible vs. Terraform: Fight!
2.1. TerraformはOrchestrationツールである
TerraformはOrchestrationツールです。
つまり、サーバーを”楽器”に見立てると、Terraformはそれらの指揮者です。
新しい”楽器”を加えたり、各々の個数を管理したり、調子の悪い”楽器”を取り替えたりといった
全体を見渡した仕事をしてくれます。
一方、Ansibleは自動化ツールです。
個々の楽器のお手入れをするのが得意分野です。
指揮ができないこともないですが、もっと得意な人にやってもらった方がよいです。
2.2. TerraformはDeclarativeである
“Declarative”という単語の意味は、「宣言的」です。
これは、プログラミングでよく耳にする言葉です。
アウトプットに性質に着目するのが、「宣言的」ということみたいです。
つまり、コードを実行した後の状態に着目するTerraformだと言えます。
一方のAnsibleは、”Procedual”です。
これは、”Procedual”は「手続き型」という意味です。
コードを実行中に行われる処理について、着目しています。
3. Terraformを調べてみた感想
だいたいのことは、ふんわりとわかった気になりました。
Ansibleと連携できるみたいなので、使ってみたいですね。
以上
コメント
楽器の例えがとても分かりやすかったです。
コメントありがとうございます。お役に立ててよかったです!