たとえば、Play Framework や Spring を使用してアプリケーションを作成していて、ファイル システムを自分で管理するのではなく、API (オブジェクト ストレージ) を使用してバイナリ ファイルのアップロードを管理および保存する標準的な方法を使用したいとします。Amazon クラウド ストレージを使用するのと同様の方法ですが、外部プロバイダーにロックする必要はありません。
開発中のアプリケーションと同じサーバー上でこのサービスを実行することから始めたいと想像してみてください。拡張により、ファイル ストレージを独自のサーバー (またはクラスター) に移動し、アプリケーション自体を独自のクラスターに移動する必要があります。 . クラスター対応サービスから始めれば、すぐにスケールアップできます。
小規模で実行している間、ファイル システムを自分で管理し続けますか、それとも別のものを採用しますか?
これは、たとえば、ローカルの Hadoop HDFS インスタンスの実行を検討する必要がある場所ですか。この方法では、ファイルのアップロードとアプリケーションでの処理を書き直す必要がなく、必要に応じてファイル管理システムをクラスターにスケールアウトできます。発生します。統合テスト用に H2DB をメモリ内で実行するなど、この機能が共通の API を備えたサービスとして提供されるとよいでしょう。
それとも、まだ単純なプロトタイプ アプリケーションを作成しているときに、Hadoop HDFS、OpenStack Swift、または Ceph はやり過ぎでしょうか?
何かが欠けていると確信していますが、解決策を見つけるのに苦労しています。ファイル システムを手動で管理するのは面倒くさくて、書き換えずにアプリケーションを PaaS プロバイダーにプッシュすることはできません。繰り返しになりますが、常に Amazon などと統合するのではなく、ローカル ソリューションも必要だと思います。
何かご意見は?