2011-07-07 5 views
4

私は現在、amazonクラウド(いくつかのwebservers w/php5.3、ロードバランシング、PostgreSQL)で動作するアーキテクチャ用のアプリケーションを構築しています。クラウドアプリケーションに翻訳を保存する場所

私の(PHP5)アプリケーションの重要な特徴は、(フロントエンドの)すべてがさまざまな言語に翻訳可能でなければならないということです。したがって、 "トークン"で表現されるたくさんの文字列があります。翻訳される。

私の質問ist:これらの翻訳はどこに保存しますか?

  • ローカル(ウェブサーバー)ディスクにファイルを保存しますか?
  • ファイルを中央ストレージに保存しますか?
  • 翻訳をデータベースに保存しますか?
  • 他にはありますか?

追加情報:翻訳が保存されますどんなに - いくつかのキャッシング(Redisの、+テンプレートキャッシュ)が存在しますので、ファイル/ DBは、すべてのレンダリングされたページに照会されることはありません。

上記の各ソリューションには賛否両論があり、私のチームで多くの議論が行われた結果、私たち全員が満足していた解決策は見つかりませんでした。

私たちの思考のいくつか:

  • ファイルが
  • DB-テーブルが
  • (翻訳データの周りの素敵な翻訳インターフェイスを構築)、より柔軟です(ファイルの上書きを経由して、更新の翻訳)を維持するのが容易ですDB-Tablesは1回だけ格納されます。そう、これは、クラウド内のファイルの多くよりも安いですが、私は(私たちはストレージとデータ転送のために支払う)だと思う
  • ファイル用の中央ストレージがボトルネック

可能性がだからあなたのoppinionは何ですか?あなたは両方を行う必要があります

挨拶、 ロバート

+0

いつでもファイルを更新するインターフェイスを構築できます。 Webサーバーにファイルを保存するのに必要なコストはありますか(EBSではなく)ですか?おそらく、コードのデプロイメントに似たメカニズムを持つ可能性があります。 – Sukumar

+2

アプリケーションが翻訳されていないテキストをどこにどのように格納するのかを知ることは役に立ちます。彼らはデータベース内のダイナミックなコンテンツですか(翻訳を保存するのも賢明です)、または(ソース)ファイルに格納されている静的コンテンツですか、それとも全く違うのですか? – BurninLeo

+0

翻訳されていないテキストは、dbとファイルの両方に格納されます。テーブル変換用のDB、テンプレート用のファイルだから私たちはdb、ファイル、またはその両方に翻訳を保存することができました。 – S38

答えて

3

- その周りに管理アプリケーションを構築することが簡単になる、データベース内の言語データのマスターストレージを維持し、ローカルファイル(または他のローカルを構築ストレージアプローチ)を実行します。データベースから言語データを絶えず照会することは浪費されています。特に、言語データは一般的にかなり静的であるためです。

あなたは、スケーラビリティを確保したい場合は、少なくとも3つの層に構築する必要があります:

  1. ローカル(SQLiteRedistmpfs内のファイルを...)。および

  2. クラウド様(例:Memcached)。および

  3. マスターストレージ(例:

    1. 静的または事実上の静的なデータ:データベースサーバ)

    あなたのデータを格納するためにどの層上の決定は、常にデータが最も効率的な方法で検索されたところからに基づくべきです(=言語、構成、スキンなど)は、データへの最速のアクセスを保証するために、ローカルに格納する必要があります。更新されたデータを複数のサーバーに構築して同期させる方法を考え出す必要があります(使用している場合はローカルキャッシュ用に保存します)。アプローチが含まれます:rsyncunison、Redisのレプリケーション、バージョン管理システム...

  4. 仮定はを活用することができますので、それが頻繁に再構築されていることであり、以下のようにダイナミックが、キャッシュ可能なデータは、雲のようなキャッシュに生きるべき構築されたデータを共有することによるパフォーマンスの向上あなたが(例えば、古いキャッシュ)

私は特にIOのアクセスにかかるコストについては心配しないだろう、それを避けることができないとき

  • データベースにのみアクセスする必要があります。データベースサーバーをスケーリングするか、またはプロジェクトの途中で再構築する必要がある場合は、IOよりもはるかに高価になります。また、それが心配な場合は、主にRAMに依存するローカルストレージソリューションを見つけて、ディスクの読み取りを完全に回避して別のパフォーマンスを向上させることができます。

  • 関連する問題