2016-03-22 15 views
5

Node.js(Meteor)アプリケーションを作成しましたが、将来スケーリングを処理する方法を検討しています。私はアプリケーションをマイクロサービスのセットとして設計しましたが、今はこれを実動環境で実装することを検討しています。Dockerを使用したマイクロサービスのスケーリング

ただし、私はいくつかのリソースを使用している間に、リソース使用率を最大限にするために、1つのサーバーインスタンスで多数のマイクロサービスを実行したいと考えています。コンテナの動的スケーリングセットを作成する方法があります場合、私はコンテナが、このために便利ですけど、私は好奇心が強いところ私のことができます。このような容器であれば、このサーバー上の「準備別のアプリのコンテナとして

  • 書き込みコマンドこのアプリケーションを実行すると、CPUが80%を超え、その他のメトリクスは制限されます」
  • 余分なコンテナに必要な場合は、他のサーバーをプロビジョニングして準備する
  • これらのコンテナ間の負荷分散接続は、サーバーロードバランシングコンテナ数の少ないサーバーへの接続)

AWS EC2、Docker Compose、nginxについて調べましたが、正しい方向に進んでいるかどうかは不明です。

+0

Meteor 1.3+のコード構造は、Meteorにマイクロサービスを書くのに役立ちます。サービス間の依存関係を管理するには、anotherMeteor = DDP.connect(anotherMeteorServer)を使用します。私の2c。私はまだそれを試していない。 – vijayst

+0

@Vijay私は時間があるときに自分自身に答えるために戻るかもしれません。私はこれを行う方法を考えていると思うが、試してみる時間がなかったので、あなたがそれを必要とすればこのスペースを見る/私が答えるのを忘れても、あなたはまだ探している。 –

答えて

0

Kubernetesおよび/またはMesosを調査すると、振り返らないでしょう。彼らはあなたが探しているもののために作られています。あなたが焦点を当てるべきである2つのコンポーネントは以下のとおりです。

  1. サービスディスカバリー:これはお互いを「見つける」ために相互依存サービス(マイクロサービス「A」は「B」と呼ぶ)ことができます。これは通常、DNSを使用して行われますが、その上にインスタンスがスケーリングされたときの処理を処理する登録機能があります。

  2. スケジューリング:ドッカー-土地で、スケジューリングはcronジョブに関するものではありません、それはコンテナが利用可能なリソースの効率的な使用を最大化するために、様々な方法でサーバにスケーリングされ、「パック」されているかを意味します。

実際には数多くのオプションがあります.Docker Swarm、Rancherなども競合する選択肢です。 Amazonのような多くのクラウドベンダーも、これらの機能を備えた専用サービス(ECSなど)を提供しています。しかしKubernetesとMesosが標準的な選択肢として浮上しているので、少なくともそこから始めれば良い会社になるだろう。

0

メトリックはDocker API(およびcool blog post)によって収集され、よくそのために使用されます。 DAPIとドッカースタックツール(compose/swarm/machine)を使用すると、マイクロサービスアーキテクチャーを効率的に拡張するための多くのツールを提供できます。

Consulのようなリソース対応システムでの検出を管理するようアドバイスできます。

関連する問題