web-dev-qa-db-ja.com

安定した自動スケーリングアプリサーバークラスターの作成

私は2つのサーバーを持っており、それぞれが50〜100の異なるレガシーWebアプリを実行しており、PHP to Python to Ruby-on-Rails to NodeJS 。

これらのマシンは古く、安全でなく、整理されておらず、一貫した構成ロジックがなく、それぞれmysqldの2つのインスタンスを実行しているため、これらのマシンを強制終了したいと考えています(尋ねないでください)。

そのために、私は次のことをしたいと思います。

  • 現在減価償却されているレガシープロジェクトを削除します
  • どういうわけか、各アプリを独自のDockerまたはPassengerコンテナにサンドボックス化します
  • 新しいサーバーを自動スケーリングステートレスクラスターとして作成し、各MySQLデータベースを独自のRDSインスタンスに移動します
  • Herokuと同様の方法で、非アクティブなアプリを自動スケーリングできる可能性もあります

最終的には、 Deis または Flynn と同様のことをしたいと思っていますが、現時点ではどちらも本番環境に対応していません。

正直なところ、そのすべてに少し圧倒されており、どこから始めればよいのかよくわかりません。助言がありますか?乗客は私が考慮すべきものですか? Docker?

ありがとうございました!

4
aendrew

あなたの実際の質問が何であるかはよくわかりません。あなたの全体的な質問はかなり曖昧です。ここで私が収集できるものから3つの主な質問があります:

  1. 独自のスケーラブルなPaaSインフラストラクチャをどこから入手し始めればよいですか?
  2. 乗客は私が考慮すべきものですか?
  3. Dockerは私が考慮すべきものですか?

3番が一番簡単なので、最初に答えます。答えは「はい」です。新しいものを構築する場合、Dockerは、よりポータブルな世界への移行を支援します。これにより、よりスケーラブルなポイントへの移行が可能になります。従来のWebアプリは、独自の依存関係を持つ独自のコンテナーとして実行されるため、移植性が向上します。

2番目の答えは、RubyおよびRubyアプリケーション全般に​​依存しているように聞こえます。Passengerを実行できますか?多分...これはアプリケーションが作成され、どのサーバーと互換性があるか。ただし、PhusionはDockerに非常に適しているように見えます。特に、Ruby、Python、Node.jsアプリケーションの実行に関するDockerイメージがあります--- https://github.com/phusion/passenger-docker

1番目の答えは、レガシーアプリケーションをコンテナ化することから始めることです。アプリケーションがまだ準拠していない場合は、アプリケーションをより12ファクターに準拠させます( http://12factor.net/ )。それらをよりサービス指向にします。 MySQL、Redis、Apache、PHP-FPMなどを1つのコンテナーで実行する代わりに、それらをTCPおよびHTTP(Dockerリンクはこれから始めるのに最適な場所- https://docs.docker.com/userguide/dockerlinks/ )。

アプリケーションを独自のコンテナーで実行できるようにし、どこでも実行でき、デフォルトの動作構成(リリース)でバージョン管理できる外部サービスを使用することで、開始できる世界に近づきます。スケジューリング、サービスディスカバリ、および展開スクリプトの作成。

まだ行っていない場合は、 https://coreos.com/http:// www。などの本格的なDockerPaaSよりも少し早いものをチェックしてください。 projectatomic.io/ 。これらのようなものは、実際にアプリケーションコンテナを構築するのではなく、独自のコンテナ/ユニットを中心にスケジュールを設定します。開発での学習には、 http://www.fig.sh/ または http://decking.io/ のようなものを使用できます。新しいサービス指向コンテナーをローカルでテストするのに最適です。

Dockerに関するその他のツールについては、 https://stackoverflow.com/questions/18285212/how-to-scale-docker-containers-in-production に注目してください。一番上の答えは、現在彼らが出しているもののかなり良い概要を持っており、作者はそれをかなりよく更新し続けています。

5
Andy Shinn