(O+P)ut

ITエンジニアのアウトプット録



(O+P)ut

OutPut Log by SE

【Chef】エージェント型のメリット

Chefはエージェント型

Chefはエージェント型です。一方、最近流行りのAnsibleはエージェントレス型です。

そんなことからか、Ansibleの優位性を語る際はまず初めに「エージェントレス型」であることが挙げられます。

確かにエージェントレス型には多くの利点がありますが、もちろんエージェント型にもメリットがあります。
本記事では、エージェント型によるChefの強みについて説明してみたいと思います。

エージェント型とエージェントレス型

そもそもですが、エージェント型とエージェントレス型の一般的な比較は以下となります。

エージェント型 エージェントレス型
通信構成 プル型 プッシュ型
ネットワーク帯域 通信量: 小 通信量: 大
エージェントのインストール 必要 不要

ちなみに、プル型というのは管理対象サーバから管理サーバにアクセスしにいく形態で、プッシュ型というのは管理サーバから管理対象サーバにアクセスがいく形態です。

エージェント型であるChefのメリット

さて、ここでは公式ドキュメントを参考にエージェント型の強みを2点紹介します。

スケーラビリティがある

Chef relies on installing an agent on each managed node. Each chef-client takes on the brunt of managing any performance impacting operations locally. By distributing this load across every machine in your fleet, Chef makes it easy to manage tens of thousands of servers without suffering from performance degradation.
https://www.chef.io/ansible/ より抜粋

要は、Chefでは各管理対象サーバに必要な情報を持ってきてそれぞれのサーバで処理を実行するので、管理サーバの性能がボトルネックになりづらいことを指しています。
Chefでいうところのサーバクライアント型にて明確に役割が切り分けられている構成ならではです。

異なる環境できめ細かい制御ができる

The chef-client agent is bundled into self-contained binaries that install all necessary dependencies in several OS flavors to support the most heterogeneous system environments.
https://www.chef.io/ansible/ より抜粋

要は、OS毎の細かい仕様の吸収をChefクライアントというバイナリですべて吸収している強みを指しています。
WindowsServerやAIXLinuxが共存する環境でも、それぞれ異なるエージェントを管理対象サーバに入れることで、より柔軟な制御が可能です。


まとめ

もちろんエージェントレス型もメリットはありますが、一概にエージェントレス型が上位互換というわけではないということだけでも頭の片隅に入れておくのが良いかと思います。

以上です。