回答:
ランディバイアスは、ビルベーカーが「スケールアップ」対「スケールアウト」アーキテクチャ戦略を説明する際に類似性を使用した2011年または2012年におそらく始まったという用語の歴史を記録しています。バイアスは、これをクラウドアーキテクチャパターンに関するプレゼンテーションに採用しました。
昔のやり方では、サーバーをペットのように扱います。たとえば、メールサーバーのボブです。ボブがダウンした場合、それはすべてデッキにあります。CEOはメールを受け取ることができず、世界の終わりです。新しい方法では、群れの牛のようにサーバーに番号が付けられます。たとえば、www001からwww100です。1台のサーバーがダウンすると、サーバーは取り外され、射撃され、回線上で交換されます。
バイアスはペットを次のように定義し続けます
ダウンすることのない不可欠なシステムまたは一意のシステムとして扱われるサーバーまたはサーバーペア。通常、それらは手動で構築、管理、および「手動で供給」されます。例には、メインフレーム、孤立サーバー、HAロードバランサー/ファイアウォール(アクティブ/アクティブまたはアクティブ/パッシブ)、マスター/スレーブ(アクティブ/パッシブ)として設計されたデータベースシステムなどが含まれます。
そして牛として
自動化ツールを使用して構築された3台以上のサーバーのアレイであり、1台、2台、または3台のサーバーも交換できない障害用に設計されています。通常、障害イベント時には、アレイは障害のあるサーバーを再起動するか、トリプルレプリケーションやイレージャーコーディングなどの戦略でデータを複製することにより「障害の迂回」の属性を示すため、人の介入は必要ありません。例には、Webサーバーアレイ、Cassandraクラスターなどのマルチマスターデータストア、クラスターにまとめられた複数のギアラック、および負荷分散されたマルチマスターのほぼすべてが含まれます。
基本的に、BiasとBakerが伝えようとしているのは、サーバーの扱い方を、名前と感情的なアタッチメントを持つ「ユニークな雪片」から、サーバーに問題がある場合に交換を作成するモデルに移行する必要があるということです。問題のあるサーバーを破壊します。
最後に、規制された環境ではサーバーを取り除いて撮影するのが最適ではない可能性があることに言及する価値があります。これらの場合、たとえばdocker pause
コンテナを凍結するために使用するなど、サーバーを「凍結」することがしばしば有利です。これを使用して、インシデントまたは問題管理プロセスの一部として根本原因分析を実行できます。
リチャーズの答えに追加するために、一般的には、サーバーの損失の影響を考慮するという点で類推が役立ちます。
インフラストラクチャの個々の部分の損失に対して何らかの苦痛を感じる場合は、それをペットと考えてください(アンチパターンを読んでください)。
フリートのいずれかが機能を停止した場合、運用に実際の影響はないことを知ってかなり快適に感じるなら、あなたは牛について話している。
多くの場合、サーバーを単純に分類するために類推を使用したいと思います。つまり、「当社のワークロードノードは牛ですが、ロードバランサーはペットです」が、そのtrapに陥ることはまさに問題です。すべてのサーバーが牛と見なされ、簡単に交換できる場合、最新のコンピューティング環境(つまり、クラウド、コモディティハードウェアなど)にペットを置く場所はありません。インフラストラクチャが本当に回復力があることを保証します。