Google App Engine はライフストリーミング アプリにとって価値のあるプラットフォームですか?[閉まっている]
-
02-07-2019 - |
質問
私は、多数のユーザーの多数のフィードを取得し、その結果に対してデータマイニングと機械学習アルゴリズムを実行するライフストリーミング アプリを構築しています。GAE の負荷分散とスケーラブルなホスティングは、最終的に大量のデータを移動する可能性のあるシステムに適しているように思えますが、cron ジョブがないのが厄介です。同じ場所で Django を使用し、独自の DB スケーリングに対処した方がよいでしょうか?
解決
ご質問に直接答えることはできませんが、私の構築経験から マイクロアップデーター (AppEngine で数百のフィードを収集するニュース アグリゲータ)を参照すると、少し洞察が得られるかもしれません。
フィードを取得しています。cron ジョブによる大量のフィードの取得 (SDK 1.2.5 まではこれが唯一の解決策でした) は効率的でもスケーラブルでもないため、ジョブ頻度には下限があります (たとえば 1 分なので、1 時間あたり最大 60 フィードしか取得できません)。最新の SDK 1.2.5 では、 XMPP API, 、まだ実装していません。最も有望なアプローチは次のとおりです パブサブハブブブ, 、コールバック URL を提供すると、HubBub が新しいエントリを通知します。 リアルタイム. 。そして、 デモの実装 AppEngine で試してみることができます。
フィードを解析しています。フィードの解析には CPU が大量に消費されることはすでにご存知かもしれません。私が使う ユニバーサル フィード パーサー Mark Pilgrim 氏によると、大規模なフィード (Google リーダーの公開トピックなど) を解析すると、AppEngine がすべてのエントリの処理に失敗する場合があります。私のダッシュボードには、こうした CPU 制限の警告がたくさん表示されます。ただし、コードをまだ最適化できない可能性があります。
AppEngine はまだライフストリーム アプリにとって理想的なプラットフォームではありませんが、将来的には変わる可能性があります。
他のヒント
有料プランが提供されれば状況は変わるかもしれませんが、現状では App Engine は CPU を大量に使用するアプリには適していません。これは、リクエストごとに必ずしも大量の計算を行う必要はなく、多数のリクエストを処理できるように設計されています。かなり小規模な計算でこの問題に遭遇しており、データセットが増大するにつれて他の場所を探し始めなければならないのではないかと心配しています。
(これは明らかにかなり古いもので、関連する Google クエリで依然として上位に表示されるという理由だけで応答しています...)
AppEngine を使い始めたばかりですが、大量の外部リクエストにはまだ使用していません。しかし、上記の情報は現在ではおそらく有効性がかなり低くなり、まだ有効ではない可能性があることはわかっています。2008 年 9 月以降、制限が大幅に緩和されました - アラル・バルカンのブログをチェック 上記に関する彼の最初の苦情とその後の展開に対して。
アプリが Django のみに依存している場合は、App Engine を選択することをお勧めします。ただし、C 拡張ライブラリを追加する必要がある場合は、大変な作業になります。App Engine は、C を使用して処理時間を高速化する PIL や ReportLab などをサポートしていません。私がこれについて言及しているのは、長期的にはルーチンの一部を高速化するために C を使用する必要があるかもしれないからです。
co-loc を使用する場合は、WebFaction.com をチェックしてください。彼らは優れた Django/Python サポートを備えており、前述のライブラリを使用しても問題ありません。
を見てみましょう スライスホスト:XEN ベースの仮想化サーバー インスタンスを月額 $20.00 から販売しています。
私たちもあなたと同じです。販売過剰、パフォーマンスの低い、古代のホスティング会社にうんざりしています。私たちは自分の手に問題を取りました。私たちは自分のものを知っている人々のためにホスティング会社を建設しました。箱を渡し、帯域幅を与え、パフォーマンスを与えてください。仕事に取り掛かります。高速マシン、RAID-10ドライブ、Tier-1帯域幅、ルートアクセス。カスタマイズされたXen VPSバックエンドで管理して、リソースが保護され保証されるようにします。
これは、マネージド プロバイダーやコロニーのコストを発生させることなく、プロジェクトを開始してスケールアウトするのに最適です。
いいえ。多くのものを削除する必要がある場合、App Engine はうまく機能しません。オフライン前処理を行った後にデータをストアに置くことで、フロントエンドとして使用できますが、いくつかの処理を行わないと、リクエストあたりの最大 1 秒の時間内では多くのことを行うことはできません。 本当に クレイジーなこと。
あなたのアプリはおそらく独自のホスティングの方が良いでしょう。
フィードの取得や計算は問題ありません。しかし、すぐにアカウントの料金を支払わなければなりません。アプリ エンジンには Django が含まれていますが、モデル部分ではいくつかのアダプターを使用する必要があります。メンテナンスの煩わしさから確実に解放されます。