チームのサンドボックス環境の設定で発生している問題に対して、コミュニティが最も推奨するものは何かと思います。
現在、テスト環境とデプロイメント環境にそれぞれ3つのメンバーレプリカセットである2つの別々のMongoDBインスタンスを使用しています。テスト環境内のすべてのデータは大部分が使い捨てであり、アプリケーションの単体テストの過程で開発者によって作成されただけであることは、内部的にはかなり理解されています。
開発チームに、実際のライブデータを使用してテストする新しいオプションを提供したいと思いますが、別の安全なサンドボックスインスタンスでテストします。最初は、このcopyDatabase
コマンドを使用して、毎晩データを新しいデータベースに複製し、個々の開発者アプリサーバーをこのデータベースに接続できると考えていました。問題は、システムに大量のGridFSデータがあり、このように複製すると大量のディスクI / Oが無駄になり、より小さなクラウドインスタンスで実行されていることです。
特に、より適切な代替手段がある場合は、このルートに進むことを警戒しています。
たとえば、これまでスレーブとしてのみ動作するデプロイメントレプリカセットの4番目のメンバーをセットアップし、すべてのクエリをその個々のノードに設定slaveOkay = True
して、その個々のノードに対してテストを実行することは可能ですか?これは他のメンバーに伝播しますか?挿入はどのように処理されますか?
私が提案していることは、特に転送がネットワークを通過する必要があり、ネットワーク転送も無駄にする場合は、実用的でない可能性があります。誰かが同様の問題を解決しなければならなかったことがありますか?ありがとう!