先に進み、ホストされたアプリケーションの作成を開始する前に、ホスト/クラウド ソリューションのさまざまなコンポーネントについて「考える」方法について誰かを導くことができる利用可能なリソースはありますか? それが意味をなさない場合、私が尋ねたいのは、クラウドアプリケーションを作成する際に考慮する必要があることについてのガイドブック/ Web サイトはありますか?
何百もの顧客にサービスを提供する、ホストされた CRM スタイルのソフトウェア アプリケーションを作成しようとしています。このアプリケーションは、多数のテーブルを備えた SQL サーバー データベースと、ColdFusion、HTML5、CSS、Javascript フロントエンドを利用しています。このアプリケーションとそのコンポーネントを各クライアント サイトにインストールした場合、各インストールはその顧客に固有のものになります。しかし、どういうわけか、この独自性をクラウドで複製する必要があり、それが私を困惑させています。
これまでに思いついたのは、次の 2 つのことだけです。
- SQL サーバーで顧客ごとに固有のデータベースが必要
- Web アプリケーションで顧客ごとに DB 接続文字列を変更する必要性
非常に多くの異なる顧客にサービスを提供するアプリケーションをどのように設計するかを考えようとしているときに、私の思考プロセスはブロックされました。すべての顧客が使用するアプリケーションは同じ (同じ DB テーブル、同じフロントエンド) であっても、顧客が保存および取得するデータは顧客固有のものになります。だから私は、顧客ごとに別々のデータベースを作成する必要があると思っていましたか? 顧客ごとにレプリカ データベースを作成することは可能ですか? いくつかのテーブルを更新したり、新しいテーブルを追加したりする必要がある場合、何百もの異なるデータベースに対してどのようにこれを行うのでしょうか?
フロントエンドからは、一意の顧客のログインごとに DB 接続文字列が変更され、データベースにのみアクセスできるようになると思います。これ以外に、顧客ごとに変更する必要があるものは他に考えられません。
新しい顧客がサインアップしたい場合、アプリケーションにアクセスするために何を作成する必要があるかを明確にする必要があります。これが最終的に私が考える必要があることだと思いますが、行き詰まっています。
誰かが考えるべきことを提案できる場合、またはこの種のことについて誰かが私に指摘できる本やウェブサイトがあれば、私は本当にとても感謝しています.
編集: Salesforce.com に関する記事を見ていたら、
"In order to ensure privacy of data for each user and give an effect of each having their own database, the data from different users are securely isolated from one another."
これがどのように達成されるか、またはどのように行われるかを知っている人はいますか?