それで最近この素晴らしいツールを発見しました
Dockerは、任意のアプリケーションから軽量でポータブルで自給自足のコンテナを簡単に作成するためのオープンソースプロジェクトです。開発者がラップトップで構築およびテストする同じコンテナは、大規模、実稼働、VM、ベアメタル、OpenStackクラスター、パブリッククラウドなどで実行できます。
Nginxを実行するdockerイメージがあり、Webサイトが外部データベースに接続しているとします。本番環境でコンテナをスケーリングするにはどうすればよいですか?
何年もの間、この答えを支持してくれた人々に感謝します。
この質問は、Dockerがまだ非常に新しいテクノロジーであった2013年8月に尋ねられたことに注意してください。それ以来: Kubernetes は2014年6月に開始されました Docker swarm は2015年2月にDockerエンジンに統合され、Amazonはそれを開始しました container solution、ECS、 = 2015年4月および GoogleがGKEを開始 2015年8月。本番コンテナのランドスケープが大幅に変更されたと言っても過言ではありません。
短い答えは、これを行うには独自のロジックを記述する必要があるということです。
この種の機能は、Dockerの上に構築され、実稼働環境でのアプリケーションをサポートするように設計された以下のプロジェクトから登場することを期待しています。
私が最近発見した別の関連プロジェクト:
最新リリースのOpenstackには、Dockerコンテナーの管理のサポートが含まれています。
Dockerインスタンスを管理するシステム
Packer 、Docker、および Serf などのツールを使用して不変のサーバーインフラストラクチャパターンを提供する方法に関するプレゼンテーション
serf を使用してdockerコンテナをワイヤリングする方法に関するきちんとした記事:
Mesos で Marathon フレームワークを使用してDockerを実行する
Dockerを Tsur で実行します。これは docker-cluster および segregated scheduler deploy をサポートしているためです。
Dockerベースの環境オーケストレーション
Google kubernetes
RedhatはOpenShift PAASをリファクタリングしてDockerを統合しました
Dockerコマンドラインをラップし、jsonファイルから管理するDocker NodeJS lib。
Amazonの新しい コンテナサービス は、クラスター内のスケーリングを有効にします。
厳密に言えば Flocker はアプリケーションを「スケーリング」しませんが、複数のドッカーホスト間でステートフルコンテナ(データベースサービスを実行しますか?)を移植する関連機能を実現するように設計されています。
Dockerアプリケーションを記述するポータブルテンプレートを作成するプロジェクト:
Dockerプロジェクトはオーケストレーションにネイティブに対応しています( announcement を参照)
こちらもご覧ください:
Openstackプロジェクトには、Magnumと呼ばれる新しい「Container as a Service」プロジェクトが追加されました。
多くの可能性を示し、KubernetesやDocker swarmなどのDockerオーケストレーションフレームワークの簡単なセットアップを可能にします。
Rancherは急速に成熟しているプロジェクトです
優れたUIと、ハイブリッドDockerインフラストラクチャへの集中
Latticeプロジェクト は、コンテナクラスターを管理するためのCloud Foundryの派生物です。
Dockerは最近Tutumを購入しました:
Kubernetes にデプロイされたアプリケーションのパッケージマネージャー。
Vampは、コンテナテクノロジーに依存する(マイクロ)サービス指向アーキテクチャを管理するためのオープンソースで自己ホスト型のプラットフォームです。
分散された高可用性のデータセンター対応スケジューラー
Vagrantやその他の強力なツールを提供してくれた人たちから。
AWS向けのコンテナホスティングソリューション、オープンソース、および Kubernetes
ドイツにあるApache Mesosベースのコンテナホスト
https://sloppy.io/features/#features
Docker Inc.は、Dockerクラウドと呼ばれるコンテナーホスティングサービスも提供しています
Jelastic は、コンテナを自動的にスケーリングするホストされたPAASサービスです。
Deis Dockerコンテナーのスケーリングを自動化します(他のものもあります)。
Deis(DAY-issと発音)は、独自のサーバーにアプリケーションを簡単に展開および管理できるオープンソースPaaSです。 Deisは Docker および CoreOS に基づいて構築され、軽量のPaaSにHerokuにヒントを得たワークフローを提供します。
開発者のワークフローは次のとおりです。
deis create myapp # create a new deis app called "myapp"
git Push deis master # built with a buildpack or dockerfile
deis scale web=16 worker=4 # scale up docker containers
DeisはDockerコンテナーをCoreOSクラスター全体に自動的にデプロイし、リクエストを正常なDockerコンテナーにルーティングするようにNginxルーターを構成します。ホストが停止すると、コンテナは数秒で別のホストで自動的に再起動されます。プロキシURLを参照するか、deis open
を使用してアプリをヒットします。
その他の便利なコマンド:
deis config:set DATABASE_URL= # attach to a database w/ an envvar
deis run make test # run ephemeral containers for one-off tasks
deis logs # get aggregated logs for troubleshooting
deis rollback v23 # rollback to a prior release
この動作を確認するには、 http://deis.io/overview/ のターミナルビデオをご覧ください。 Deisの概念について学ぶ または 独自のプライベートPaaSを展開する にジャンプすることもできます。
つるを試すことができます。 Tsuruは、HerokuにインスパイアされたオープンソースのPaaSであり、Globo.com(ブラジル最大の放送テレビ会社のインターネット部門)で既にいくつかの製品が生産されています。
コンテナの作成、デプロイ、ドッカークラスター、ユニットのスケーリング、分離されたデプロイなどの多くのNice機能を使用したルーティング(ヒップ痛)があるため、アプリケーションのフロー全体を管理します。
以下のドキュメントをご覧ください: http://docs.tsuru.io/
ここに私たちの環境をカバーする投稿: http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/
Rancher.com をご覧ください-複数のDockerホストなどを管理できます。
Dockerをスケーリングするための賢明なアプローチは次のとおりです。
Yandexのもう1つのdockerオープンソースプロジェクト:
Openshift guysもプロジェクトを作成しました。より多くの情報を見つけることができます here 、 test container および詳細情報 here を試してください。唯一の問題は、今のところRedhat中心の解決策です:)
私たちはDeis(deis.io)の大ファンであり、積極的に展開していますが、PaaSスタイルの展開ソリューションのような他のHerokuもあります。
Wayfinderの人々からのLongshoreman:
https://github.com/longshoreman/longshoreman
CloudFoundryを使用してCloudCredoの人々からデッカー:
http://www.cloudcredo.com/decker-docker-cloud-foundry/
オーケストレーションについては、NewRelicのオープンソースCenturionプロジェクトは非常に有望です。
Panamax:Docker Management for Humans。 panamax.io
図:Dockerを使用した高速で分離された開発環境。 fig.sh
他の投稿で言及されていないオプションの1つがHeliosです。 spotifyによって構築され、あまり多くのことをしようとしません。