アーキテクチャモデル:サービスインスタンスの仮想マシンとの1対1の対応
コンテキスト
あなたはマイクロサービスアーキテクチャモデルを適用しており、システム・アーキテクチャは、サービスのセットです。各サービスは、スループットと可用性を実現するために、サービスインスタンスのセットとして展開しました。
問題
どのようにパッケージ化したサービスを展開するには?
点数
- 言語、フレームワークやフレームワークのバージョンのさまざまな方法を使ってサービス
- 複数のサービスインスタンスが含まれている各食分を書きます
- スループットとサービスの可用性のために独立の展開する必要があります
- スケーラブルサービスインスタンスが互いに分離される必要があります
- あなたはすぐにサービスを構築し、展開できるようにする必要があります
- あなたは、消費可能な制約のリソース(CPUやメモリ)サービスである必要が
- あなたは、各サービスインスタンスの動作を監視する必要があります
- あなたは信頼性の高い展開したいです
- あなたは、可能な限りのアプリケーションをコスト効率よく展開する必要があります
ソリューション
サービスは、仮想マシンイメージとしてパッケージと別VM、各サービスインスタンスを展開されています
例
- Netflixの各サービスは、EC2 AMIとしてパッケージ、および各サービスインスタンスは、EC2インスタンスで展開されています。999
結果のコンテキスト
このアプローチの利点は次のとおりです。
- これは、直接インスタンスの数を増やすことでサービスを拡張することができます。アマゾン自動スケーリンググループさらに、負荷に応じて自動的にこれを行うことができます。
- VMは、構築およびサービスのための技術の詳細をカプセル化します。たとえば、すべてのサービスが開始されているとまったく同じように停止しました。
- 各サービスインスタンスは隔離されています
- VMは、サービスインスタンスのCPUとメモリの消費量に制限を課します
- AWSおよびその他のIaaSソリューションは、仮想マシンを展開し、管理するための成熟と機能豊富なインフラストラクチャを提供します。たとえば、
- 弾性ロードバランサ -
- 自動スケーリンググループ
- ...
この方法の欠点は、次のとおりです。
- VMイメージを構築することは遅く、時間がかかります
関連するモード
- このモードでは、各ホスト単一のサービスモデルの改良したものです
- 各容器のサービス・インスタンス・モードは、別の解決策であります
- いいえ、サーバー配備モードは、別の解決策ではありません。