こんにちは、私はプロジェクトに取り組んでおり、詳細には触れませんが、それは私によってプログラム/設計され、顧客はそれをカスタマイズできる独自のインスタンスにサインアップできるようになります. クライアントが月額料金を支払い、プロジェクトのバージョンのサブドメインを取得する、私がホストしている phpbb のようなものと考えてください。
サーバー側でこれをどのように設定し、これらのオプションを確認するかを決定しようとしています。
1) 1 台または 2 台のサーバーですべてをホストする
長所
- すべてが同じボックスにあるため、変更を簡単にプッシュできます
- サブドメインが同じ場所を指すようにするのは簡単です。ソース コードが存在する場所とデータベースが 1 つしかないためです。
users
テーブルが 1 つしかないため、ユーザーはすべてのクライアントに対してグローバル ログインを使用できます。
短所
- すべてのトラフィックが 1 つのボックスに集中するため、スケーリングはすぐに難しくなります。
- 行数が多いため、データベースクエリは遅くなります (ほとんどの場合、
client_id
どのデータがどのサブドメインに属しているかを識別するためのフィールドがあります)
2) EC2、Rackspace Cloud などを利用する
長所
- 夢のようなスケール
短所
- すべての問題を予測できるプラットフォームの経験がないだけです (はい、知っています、言い訳が下手です)。
- 新しいバージョンをすべてのインスタンスにプッシュする方法がわからない
- クライアントが支払いをしたらすぐにインスタンスをセットアップしてすぐに使えるように、どうにかしてセットアップできるかどうかわからない
- グローバルログインシステムを実装する方法がわかりません (ただし、37signals は実装しているようです)
最良の選択肢はクラウドっぽいものであり、唯一の本当の問題は私の経験不足です。
誰かがこのようなものを立ち上げたことはありますか?あなたは何をした?私が考えていない問題はありますか?