構成管理ツールは、不変のインフラストラクチャでどのような役割を果たしますか?


12

不変のサーバー/コンテナを使用している場合、Chef、Puppet、Ansible、Saltなどのツールが必要ですか?これらの構成管理ツールは、構成を確立してから維持するように設計されています。

不変サーバーを展開する場合、構成管理ツールは初期プロビジョニングにのみ使用する必要がありますか?

回答:


12

それにはいくつかの答えがあります:

  1. これらの不変のイメージを構築するために何かが必要です。既知の開始状態から開始する場合、古い学校スタイルの手順スクリプトを使用して何かを構築することは確かに簡単ですが、特に異なる画像の大きなマトリックスが必要になった場合、これは時間の経過とともに非常に扱いにくくなります(例:Dockerfiles)さまざまなバージョンのソフトウェア、さまざまな環境など。Packerやその他のイメージビルドツールは、Chef、Ansible、Puppet、Saltなどとうまく統合されます。

  2. 不変性はスペクトルであり、バイナリではありません。「非常に不変の」デプロイでも、ランタイム管理を必要とするいくつかの構成ファイルを持つことは珍しくありません。これは、CAPSツールを使用できる場所でもありますが、Consul Templatesやetcdなどの軽量オプションは、全体的なインフラストラクチャに応じてより意味があります。不変のアプリケーションサーバーを実行しているが、データベースサーバーが従来よりChefを使用して管理されている場合、マイナーな管理タスクのために不変の側でもChefを使用することは理にかなっています。

  3. ゼロデイ管理。不変性は素晴らしいですが、次のOpenSSLの0dayが廃止されたらどうしますか?すぐに修正プログラムイメージを作成して展開できる位置にビルドパイプラインがある場合、それは素晴らしいことです。しかし、多くの人々はおそらくそのようなクイックターン能力を持たないでしょう。

  4. 不変にできないもの。答えはありませんが、インフラ全体が100%不変であることはめったにありません。データベースサーバーや開発者ワークステーション(はい、それらはインフラの一部です)のようなものは、不変にするのが難しいと不可能の間のどこかにあります。


「多くの人々」についてかなり多くの仮定を立てています。不変のインフラストラクチャ用のイメージを生成できない人は、最初から不変のインフラストラクチャを持っていない可能性が高いでしょう。
エフゲニー

「不変コンテナを使用して展開できる」と「他の展開が進行中であっても6時間以内にすべてのコンテナを再構築および再展開できる」との間には大きなギャップがあります。
-coderanger

そして、私の経験では、そのギャップ(6時間)がある場合、不変のインフラストラクチャを持つことはできません。不変サーバーを持つことと不変サーバーを迅速に構築することは同一の能力ではありませんが、密接に関連しています。
エフゲニー

「不変のコンテナを実行している」と言う人の多くは、このカテゴリに属していません。したがって、それは対処することが問題であり、それが問題の全体的なポイントであることを指摘します。
-coderanger

それはので、あなたは、意味する「不変」を定義する「でノー・ワンSSHのを、手動変更を行う」ことができないことができ、それらの変化に応じて、完全に不変を意味自分自身を通常の操作中に。pidfileを書くことも突然変異です。
ガイウス

0

絶対に不変の環境は悪い考えだと思う。

Ansible、Chef、PuppetなどのCMツールは、あなたを含む多くの場合に役立ちます。

GCPでVMインスタンスの初期プロビジョニングにansibleを使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.