SnowFlakesサーバー、Phoenixサーバー、Immutableサーバーの長所と短所は何ですか?


15

私は、各タイプのサーバーのセキュリティ/管理の容易さ/法医学能力の比較のようなマトリックスに興味があります。また、各タイプのいくつかの主要な機能を忘れる場合があります。

私は型について一般的な考えを持っていますが、場合によっては(たとえばアプリケーションの自動化が複雑になった場合)型を選択するときに参照行列が役立ちます。

それが広すぎるという懸念を避けるために、それを複数の質問に分割すると情報が散らばり、セキュリティ比較に関する質問も各タイプを比較する必要があると感じています。

回答:


15

フェニックスサーバーという用語は、マーティンファウラーの仲間によって作られました。3つの用語はすべて、マーティンのブリキに関する短い記事で説明されています。

このような各サーバーの長所と短所は、記事で説明されています。主な違いは、サーバーの管理方法にあります。

サーバーは、一部のアプリケーションのコンテナの役割を果たすために存在します。アプリケーションは頻繁に変更されるため、多くの場合、パッケージ、構成など、コンテナの一部の属性を変更する必要があります。また、セキュリティ上の脆弱性など、インストールされます。

既存のサーバーを変更するには、いくつかの方法があります。

  1. 最初にサーバーを手動で作成してから、変更が必要になるたびにそのコンテンツを変更(変更)し続けます。
  2. レシピに基づいて、通常は自動化された方法で(手動ではなく)サーバーのイメージを「焼き」ます。次に、そのイメージからサーバーを作成します。そして、すべての変更でこのプロセスを繰り返します。

前者はSnowflakeと呼ばれ、後者はPhoenixおよびImmutableサーバータイプを許可するプラクティスです。Immutableは、既存のサーバーが作成された後は変更が行われないことを示し、Phoenixは、サーバーが完全に破壊され、変更プロセス中に新しいサーバーが使用されることを意味します。


9

各タイプの長所と短所のリストをもっと考えていたので、ここに私の見解があります(網羅的ではなく、私の意見では重要な運用上のものです):

  1. スノーフレークサーバー

    • それらが何であるか:特定の構成を持つシステム、データセンター内の他のサーバーにはまったく同じパラメーターがありません。通常、手動で管理されます。

    • 利点

      • それらで実行されているもののニーズに適合。
      • 長期間の更新は、通常短いです。
      • ホストされている製品によって微調整が十分に文書化されている特殊なケースに適応。
    • 欠点

      • 更新によって未使用のファイルが残る場合があり、クリーンアップが複雑になる場合があります。
      • 複数のマシンに変更を加える必要がある場合、時間がかかります。
      • 文書化されていない変更を妨げるものは何もありません。
      • 破損した場合は、ベースOSを再構築して復元する必要があります。一部のOSの調整は復元できず、再適用する必要があります。行をすり抜けて重要な調整を忘れるのは簡単です。
      • 通常、手動構成のためプロビジョニングに時間がかかります。
  2. フェニックスサーバー

    • それらは何ですか:いくつかのコードによって自動的に構成されます。
    • 利点

      • コードで定義され、バージョン対応可能。
      • ある時点に簡単に複製されます。
      • 長期間の短い更新も。
      • 制御ファイルへの変更は文書化されており、忘れることはできません。
    • 欠点

    • 更新によって未使用のファイルが残る場合があり、クリーンアップが複雑になる場合があります。
    • すべてがコード管理下にあるわけではありませんが、自動化に含まれていないと、人間による微調整が見落とされる可能性があります。
  3. 不変サーバー

    • 彼らは何ですか
      • 通常アクセスのないマスターイメージからの自動ワンタイムプロビジョニング。
    • 利点

      • コードで定義され、バージョン対応可能。
      • ある時点に簡単に複製されます。
      • リモートアクセスの通常の削除による攻撃対象領域の減少。
      • 修正された構成、変更は何かを壊さない
      • マスターイメージから簡単にスケーラブルな「オンデマンド」。
    • 欠点

      • それらは不変です。0dayの欠陥があなたに影響を与えた場合、あなたはあなたが迅速にアップデートを展開できることを保証しなければなりません。
      • すべてのアプリケーションがこのモデルに収まるわけではありません(データベース、たとえば、同じデータの完全な置き換えが常に可能であるとは限らず、処理する移行があります)。
      • クラッシュおよびログ管理のフォレンジック分析にいくつかの新しい課題をもたらします。

これらのパターンはいずれも排他的ではなく、実際のニーズに応じて最適なパターンを選択する必要があります。雪片は、災害後の復旧の際に多くの懸念をもたらします。そのため、通常、選択はフェニックスとイミュータブルの間で行われます。


2

3つすべてが種類のパターンです。特定の状況でどちらを使用するかを選択するのではなく、あなたを助けたり傷つけたりする可能性のあるパターンをいつ認識するかを知っている場合です。

スノーフレークサーバー

A スノーフレークサーバーは非常に制御されないようにケースを表すアンチパターン場合、サーバ進化が容易に再現することができない点にあります。

実稼働中にこの種のサーバーで多数の実行を行ってきましたが、通常、「開発/テスト/ UAT /ステージングで機能した」というような失敗した変更やコメントが多数あるため、それらを見つけるのはかなり簡単です。 「。

フェニックス・セルヴィエ

A フェニックスServerは、より多くの元本のMartin Fowler氏がそれを置くようなパターンよりも次のとおりです。

サーバーは不死鳥のように、灰から定期的に上昇する必要があります。[a]

ITサービス管理(ITSM)またはITIL言語を同じ状況に適用する場合、ITサービス継続性計画または回復計画と呼ぶことになります。

復旧チームがサービスを復元し、それによって合意されたプロセスとコンポーネントRTOを満たすことができるように、各サービスの個別の計画は、インシデントの各段階の詳細な手順とステップバイステップのガイドラインを提供する必要があります。

不変サーバー

アン不変サーバーまたは不変インフラストラクチャは、我々はすなわち不変、全く不変としてデプロイされたすべてのインフラストラクチャ、構成、およびコードを治療するプロセスです。新しいものを展開するときは、新しいインフラストラクチャをスピンアップし、これにコードを展開します。興味深いことに、これはエバーグリーンによって伝統的に満たされたニーズをほとんど満たします。


ノート

  • a: Martinの同僚であるKornelis Sietsmaは、内部ディスカッションリストで「Phoenix Server」という用語を思いつきました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.