私が働く会社では、データベースが分離されている複数の組織のCRMシステムを開発してホストしています。つまり、クライアントはFacebookに似た1つの大きなデータベースを共有していません。しかし、同じCRMソフトウェアです。キャッシングのような他のシステムの側面はすべて、組織固有のものです。複数の組織のシステム設計
私たちはサーバーをAWSに移行しているため、インフラストラクチャについて考える機会がありました。
私たちのベースシステムはCodeIgniterフレームワークを使用して書かれているので、単一のインスタンスを作成し、ホスト名/ユーザーアカウントに応じて関連するデータベース認証情報を添付することで、同じCRMのインスタンスを複数持つ代わりにCRMは専用のURLを介してアクセスされます)。例えば。ユーザーAがB社の仕事をしている場合は、B社のデータベースに接続し、C社の会社には接続しません。この例は、バージョニング管理にも役立ちます。
他の人が同様の経験をしているのか、そしてインスタンスを完全に分離しておくか、真の「ソフトウェアとしてのソフトウェア」単一インスタンスメソッドに移行するのが一般的な感じかと思いますか?
データベースサイズは比較的小さく、組織あたり5 GBです。私は、組織にマップして関連するデータベースの資格情報を読み込む追加のユーザー認証層を検討する可能性が最も高いです。その後、誰もがhttps:// crm。[x] .comを介してアクセスできるようにします。 - 私はロードバランサを見てきましたが、単一のドメインがはるかに単純です。 – aldocx
専用のURLを使用している場合は、負荷分散が複雑になる可能性がありますが、必要な場合にはまだ可能です。ソリューションそのものについては、マルチクライアントプロジェクトの場合と同じように、1つのアプリケーションと専用データベース、すべてのクライアントでコアロジックが同じであれば、ユーザーグループごとにDB接続を処理するだけです。 – Auris