私は、多くのユーザーのために多くのフィードを取得し、結果に対してデータ マイニングと機械学習アルゴリズムを実行するライフストリーミング アプリを構築しています。GAE の負荷分散されたスケーラブルなホスティングは、最終的に大量のデータを移動する可能性のあるシステムに適しているように思えますが、cron ジョブの欠如は厄介です. co-loc で Django を使用し、自分の DB スケーリングを処理したほうがよいでしょうか?
7 に答える
ご質問に直接お答えすることはできませんが、Microupdater (AppEngine で数百のフィードを収集するニュース アグリゲーター) を構築した経験から、少し洞察が得られるかもしれません。
フィードを取得しています。cron ジョブによる大量のフィードの取得 (SDK 1.2.5 まではこれが唯一の解決策でした) は、効率的でスケーラブルではなく、ジョブの頻度に下限があります (たとえば 1 分なので、1 時間あたり最大 60 フィードしか取得できません)。また、最新の SDK 1.2.5 では、まだ実装していないXMPP APIがあります。最も有望なアプローチはPubSubHubbubで、コールバック URL を提供すると、HubBub が新しいエントリをリアルタイムで通知します。また、AppEngine にはデモ実装があり、いろいろ試すことができます。
フィードの解析。フィードの解析が CPU を集中的に使用することは既にご存じかもしれません。私はMark Pilgrim によるUniversal Feed Parserを使用しています。大きなフィード (Google リーダーのパブリック トピックなど) を解析すると、AppEngine がすべてのエントリの処理に失敗する場合があります。私のダッシュボードには、これらの CPU 制限の警告がたくさんあります。しかし、コードをまだ最適化できない可能性があります。
総じて、AppEngine はまだライフストリーム アプリの理想的なプラットフォームではありませんが、将来的には変わる可能性があります。
It might change when they offer paid plans, but as it stands, App Engine is not good for CPU intensive apps. It is designed to scale to handle a large number of requests, not necessarily a large amount of calculation per request. I am running into this issue with fairly minor calculations, and I fear I may have to start looking elsewhere as my data set grows.
(これは明らかにかなり古いものであり、関連する Google クエリで依然として非常に上位に表示されるという理由だけで応答しています...)
AppEngine を使い始めたばかりで、大量の外部リクエストには使用していません。しかし、上記の情報はおそらく今ではあまり有効ではなく、まだ有効ではないかもしれないことを私は知っています. 彼らは 2008 年 9 月以降、制限をかなり緩和しました。上記に関する最初の不満とその後の展開については、Aral Balkan のブログを確認してください。
アプリが Django のみに依存している場合は、App Engine が適しています。ただし、C で拡張されたライブラリを追加する必要がある場合は、問題が発生します。App Engine は、C を使用して処理時間を高速化する PIL や ReportLab などをサポートしていません。これについて言及しているのは、長期的には C を使用していくつかのルーチンを高速化したい場合があるためです。
co-loc を使用する場合は、WebFaction.com をチェックしてください。Django/Python の優れたサポートがあり、前述のライブラリを使用しても問題ありません。
Slice Hostを見てみましょう: 彼らは xen ベースの仮想化サーバー インスタンスを月額 $20.00 から販売しています...
私たちはあなたと同じです。売られ過ぎ、業績不振、古いホスティング会社にはうんざりです。私たちは自分たちの手で問題を解決しました。自分のことを知っている人のためにホスティング会社を作りました。ボックスを提供し、帯域幅を提供し、パフォーマンスを提供すれば、作業を開始できます。高速マシン、RAID-10 ドライブ、Tier-1 帯域幅、ルート アクセス。カスタマイズされた Xen VPS バックエンドで管理され、リソースが確実に保護および保証されます。
マネージド プロバイダーやコロコロのコストを負担することなく、プロジェクトを開始してスケールアウトするのに最適です。
いいえ。多くのものを取得する必要がある場合、App Engine はうまく機能しません。オフラインの前処理を行った後にデータをストアに置くことで、フロントエンドとして使用できますが、本当にクレイジーなことをしない限り、リクエストごとに最大 1 秒の時間で多くのことを行うことはできません。
あなたのアプリは、独自のホスティングの方が良いでしょう。
フィードの取得や計算は問題になりません。ただし、すぐにアカウントの料金を支払う必要があります。App Engine には Django が含まれていますが、モデル パーツ用にいくつかのアダプターを使用する必要があります。メンテナンスの煩わしさから解放されること間違いなしです。