web-dev-qa-db-ja.com

Google App Engineの使用に関するフィードバックはありますか?

非常に小さく、迅速で汚れたサイドプロジェクトを行うことを検討しています。 Google App EngineがPython with Djangoに組み込まれているので実行されているという事実が気に入っています-そのプラットフォームを試す口実を与えます...質問はこれです:

おもちゃの問題以外にApp Engineを利用した人はいますか?私はそこに良いサンプルアプリをいくつか見ているので、これは本当の取引には十分であると思いますが、いくつかのフィードバックを求めていました。

他の成功/失敗のメモは素晴らしいでしょう。

125
agartzke

私は自分の小さな地震時計アプリケーションのアプリエンジンを試しました http://quakewatch.appspot.com/

私の目的はApp Engineの機能を確認することでした。そのため、ここに主なポイントがあります。

  1. djangoにはデフォルトでは付属していません。Pythonicには独自のWebフレームワークがあり、DjangoのようなURLディスパッチャーがあり、Djangoテンプレートを使用しています。持っているDjango exp。使いやすいでしょう
  2. サーバー上で実行時間の長いプロセスを実行することはできません。実行するのはリクエストへの応答であり、それ以外の場合は迅速でなければなりません。そうでない場合、appengineはそれを強制終了します自分のサーバー上
  3. 私のquakewatchアプリにはサブスクリプション機能があります。つまり、最新の地震が発生したときにメールで送信する必要がありましたが、ここで新しい地震ソリューションを監視するためにアプリエンジンでバックグラウンドプロセスを実行できません。あなたのページの1つに接続し、それはサブスクリプション電子メールを実行しますが、ここでもあなたはここで多くの時間を費やしたり、タスクをいくつかに分割したりしないように注意する必要があります
  4. Djangoモデリング機能に似ていますが、バックエンドはまったく異なりますが、新しいプロジェクトでは問題になりません。

しかし、全体的には、バックグラウンド処理をあまり必要としないアプリの作成には優れていると思います。

編集: タスクキュー は、バッチ処理またはスケジュールされたタスクの実行に使用できます

編集:1年間GAEで実際のアプリケーションを作成または作成した後、今の私の意見は、何百万ものユーザーにスケーリングする必要があるアプリケーションを作成しない限り、GAEを使用しないことです。 GAEでの簡単なタスクの維持と実行は、分散型の性質による頭痛の種です。期限超過エラーを回避したり、エンティティをカウントしたり、複雑なクエリを実行したりするには、複雑なコードが必要なので、小さな複雑なアプリケーションはLAMPに固執する必要があります。

編集:モデルは、将来必要となるすべてのトランザクションを考慮して特別に設計する必要があります。同じエンティティグループ内のエンティティのみがトランザクションで使用でき、2つの異なるグループを更新するプロセスが悪夢になるためです。同じエンティティグループに属していない限り、トランザクションでuser1からuser2に送金することは不可能ですが、同じエンティティグループにすることは、頻繁な更新の目的には最適でない場合があります。..これを読んでください http://blog.notdot。 net/2009/9/Distributed-Transactions-on-App-Engine

62
Anurag Uniyal

いくつかの高トラフィックアプリケーションをホストするためにGAEを使用しています。およそ50-100リクエスト/秒程度です。それは素晴らしいです、私はそれを十分にお勧めすることはできません。

私の以前のWeb開発の経験はRuby(Rails/Merb)でした。)学習Pythonは簡単でした。私はDjangoまたはPylonsまたはその他のフレームワーク。GAEの例から始めて、提供されている基本的なwebappライブラリから必要なものを構築しました。

SQLの柔軟性に慣れている場合は、データストアに慣れることができます。外傷的すぎることはありません!最大の調整は、JOINから離れることです。正規化が重要であるという考えを捨てる必要があります。

ベン

36
mainsocial

Google App Engineを使用するために私が遭遇した説得力のある理由の1つは、ドメインのGoogle Appsとの統合です。基本的に、ドメインの(制御された)ログインに制限されたカスタムの管理対象Webアプリケーションを作成できます。

このコードに関する私の経験のほとんどは、単純な時間/タスク追跡アプリケーションを構築することでした。テンプレートエンジンはシンプルでありながら、マルチページアプリケーションを非常に親しみやすくしました。ログイン/ユーザー認識APIも同様に役立ちます。あまり問題なくパブリックページ/プライベートページのパラダイムを作成できました。 (ユーザーはログインしてプライベートページを表示します。匿名ユーザーにはパブリックページしか表示されませんでした。)

「実際の仕事」のために引っ張られたとき、私はちょうどプロジェクトのデータストア部分に入っていました。

非常に短い時間で多くのことを達成できました(まだ完了していません)。これまでPython=を使用したことがなかったので、これは特に快適でした(両方とも私にとって新しい言語であったため、また、新しい言語にもかかわらず開発がまだ速いためです)。少しでも、自分の仕事を成し遂げることはできないだろうと信じるようになりましたが、その代わりに、機能性と機能についてかなり前向きな印象を持っています。

それが私の経験です。たぶん、それは未完成のおもちゃプロジェクト以上のものではないかもしれませんが、プラットフォームの十分な情報を得た試用を表しており、それがお役に立てば幸いです。

23
el2iot2

「Djangoを実行するApp Engine」のアイデアは少し誤解を招きます。 App EngineはDjangoモデルレイヤー全体を置き換えます。そのため、App Engineのデータストアに慣れるための時間を費やす準備をしてください。データストアには、データのモデリングと考え方の異なる方法が必要です。

12
sutee

私はGAEを使用してビルドしました http://www.muspy.com

それはおもちゃのプロジェクトより少し多いですが、過度に複雑でもありません。私はまだGoogleが対処するいくつかの問題に依存していますが、全体的にWebサイトの開発は楽しい経験でした。

ホスティングの問題、サーバー管理などに対処したくない場合は、ぜひお勧めします。特に、PythonおよびDjangoをすでに知っている場合は。

現時点では、App Engineは小規模なプロジェクトには非常に優れていると思います。ホスティングについて心配する必要がないことについては多くのことが言われています。 APIはまた、スケーラブルなアプリを構築する方向にあなたをプッシュします。これは良い習慣です。

  • app-engine-patch は、DjangoとApp Engineの間の適切なレイヤーであり、認証アプリなどの使用を可能にします。
  • Googleは、2008年末までにSLAおよび価格モデルを約束しました。
  • リクエストは10秒で完了する必要があり、Webサービスへのサブリクエストは5秒で完了する必要があります。これにより、高速で軽量なアプリケーションを設計し、深刻な処理を他のプラットフォーム(ホストされたサービスやEC2インスタンスなど)にオフロードする必要があります。
  • より多くの言語がすぐに来ています!グーグルはそれを言ってはいけない:-)。私のお金はJava次にあります。
7
afternoon

この質問は完全に回答されています。どっちがいい。しかし、おそらく1つ言及する価値があります。 google app engineにはEclipse ide用のプラグインがあり、これを操作するのは楽しいです。

すでにEclipseを使用して開発を行っている場合は、そのことに非常に満足しています。

Google App EngineのWebサイトにデプロイするには、飛行機のロゴが付いた小さなボタンを1つクリックするだけです。

6
rowly

フラッシュゲームサイト Bearded Games にGAEを使用しました。 GAEは優れたプラットフォームです。私はDjangoテンプレートを使用しました。これは、PHPの昔よりもはるかに簡単です。優れた管理パネルが付属し、非常に優れたログを提供します。データストアは、MySQLのようなデータベースとは異なります。サイトの構築は簡単でわかりやすく、サイトに関する役立つアドバイスがたくさんあります。

4
Josh Patton

私はGAEを使用して、いくつかのパラメーターを受け入れ、電子メールを送信する単純なアプリケーションを作成しました。それは非常にシンプルで高速でした。また、GAEデータストアとmemcacheサービスでパフォーマンスベンチマークをいくつか作成しました( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html )。それほど速くはありません。私の意見は、GAEは特定の方法論を実施する深刻なプラットフォームであるということです。私はそれが本当にスケーラブルなプラットフォームに進化すると思います。そこでは悪い習慣は単に許されません。

4
David Gruzman

sql game を見てください。これは非常に安定しており、実際にはある時点でトラフィック制限がプッシュされているため、Googleによって抑制されていました。 App Engineについては、他の誰かが完全に制御しているサーバーでアプリをホストする以外に、良いニュースはありません。

4
Joe Skora

私はGAEとDjango=を使用してFacebookアプリケーションを作成しました。 http://code.google.com/p/app-engine-patch Django 1.1のサポートがあるため、私の出発点として使用します。manage.pyコマンドは機能しないと想定していたため、使用しようとしませんでした。でも調べてみませんでした。アプリケーションには3つのモデルがあり、pyfacebookも使用されていましたが、それが複雑さの範囲でした。ブログを作成し始めている、はるかに複雑なアプリケーションを作成中です。 http://brianyamabe.com

3
byamabe