回答:
私は小さな地震時計アプリケーションhttp://quakewatch.appspot.com/の App Engineを試しました
私の目的はApp Engineの機能を確認することでした。そのため、主なポイントは次のとおりです。
しかし、全体的には、バックグラウンド処理をあまり必要としないアプリの作成には優れていると思います。
編集:タスクキューをバッチ処理またはスケジュールされたタスクの実行に使用できるようになりました
編集:1年間GAEで実際のアプリケーションを作成または作成した後、今の私の意見は、何百万ものユーザーにスケーリングする必要があるアプリケーションを作成しない限り、GAEを使用しないことです。GAEでの簡単なタスクの維持と実行は、分散型の性質による頭痛の種です。期限超過エラーを回避したり、エンティティをカウントしたり、複雑なクエリを実行したりするには、複雑なコードが必要になるため、小さな複雑なアプリケーションはLAMPに固執する必要があります。
編集:モデルは、将来必要となるすべてのトランザクションを考慮して特別に設計する必要があります。同じエンティティグループ内のエンティティのみをトランザクションで使用でき、2つの異なるグループを更新するプロセスが悪夢になるため、user1からuser2に送金する場合などです。同じエンティティグループに属していない限り、トランザクションでのトランザクションは不可能ですが、同じエンティティグループにすることは、頻繁な更新の目的には最適でない場合があります。... http://blog.notdot.net/2009/9/Distributed-Transactions-をお読みくださいon-App-Engine
いくつかの高トラフィックアプリケーションをホストするためにGAEを使用しています。およそ50-100リクエスト/秒程度です。それは素晴らしいです、私はそれを十分にお勧めすることはできません。
以前のWeb開発の経験はRuby(Rails / Merb)でした。Pythonの学習は簡単でした。DjangoやPylonsなどのフレームワークをいじるのではなく、GAEの例から始めて、提供されている基本的なWebアプリケーションライブラリから必要なものを構築しました。
SQLの柔軟性に慣れている場合は、データストアに慣れることができます。外傷的すぎることはありません!最大の調整は、JOINから離れることです。正規化が重要であるという考えを捨てる必要があります。
ベン
Google App Engineを使用するために私が遭遇した説得力のある理由の1つは、ドメインのGoogle Appsとの統合です。基本的に、ドメインの(制御された)ログインに制限されるカスタムの管理されたWebアプリケーションを作成できます。
このコードに関する私の経験のほとんどは、単純な時間/タスク追跡アプリケーションを構築することでした。テンプレートエンジンはシンプルでありながら、マルチページアプリケーションを非常に親しみやすくしました。ログイン/ユーザー認識APIも同様に役立ちます。あまり問題なくパブリックページ/プライベートページのパラダイムを作成できました。(ユーザーはログインしてプライベートページを表示します。匿名ユーザーにはパブリックページしか表示されませんでした。)
「実際の仕事」のために引っ張られたとき、私はちょうどプロジェクトのデータストア部分に入っていました。
非常に短い時間で多くのことを達成できました(まだ完了していません)。私は以前にPythonを使用したことがなかったので、これは特に快適でした(両方とも私にとって新しい言語であったため、また、新しい言語にもかかわらず開発がまだ速いためです)。私は自分の仕事を成し遂げることができないだろうと私を信じるように導いた非常に少しに遭遇しました。代わりに、私は機能性と機能についてかなり前向きな印象を持っています。
それが私の経験です。たぶん、それは未完成のおもちゃプロジェクト以上のものではないかもしれませんが、プラットフォームの十分な情報を得た試用を表しており、それがお役に立てば幸いです。
「Djangoを実行するApp Engine」のアイデアは少し誤解を招きます。App EngineはDjangoモデルレイヤー全体を置き換えるので、データのモデリングと考え方の異なる方法を必要とするApp Engineのデータストアに慣れるための時間を費やす準備をしてください。
GAEを使用してhttp://www.muspy.comをビルドしました
それはおもちゃのプロジェクトより少し多いですが、過度に複雑でもありません。私はまだGoogleが対処するいくつかの問題に依存していますが、全体的にWebサイトの開発は楽しい経験でした。
ホスティングの問題、サーバー管理などに対処したくない場合は、ぜひお勧めします。特にあなたがすでにPythonとDjangoを知っているなら。
現時点では、App Engineは小規模なプロジェクトにはかなり優れていると思います。ホスティングについて心配する必要がないことについては多くのことが言われています。APIはまた、スケーラブルなアプリを構築する方向にあなたをプッシュします。これは良い習慣です。
sql gameを見てください。それは非常に安定していて、実際にある時点でトラフィック制限を押して、Googleによって抑制されていました。App Engineについては、他の誰かが完全に制御しているサーバーでアプリをホストする以外に、良いニュースはありません。
私はGAEを使用して、いくつかのパラメーターを受け入れ、電子メールを送信する単純なアプリケーションを作成しました。それは非常にシンプルで高速でした。また、GAEデータストアとmemcacheサービス(http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html)でいくつかのパフォーマンスベンチマークを作成しました。それほど速くはありません。私の意見は、GAEは特定の方法論を実施する深刻なプラットフォームであるということです。私はそれが本当にスケーラブルなプラットフォームに進化すると思います。そこでは悪い習慣は単に許されません。
フラッシュゲームサイトのBearded Gamesで GAEを使用しました。GAEは優れたプラットフォームです。PHPの昔よりもずっと簡単なDjangoテンプレートを使用しました。優れた管理パネルが付属しており、本当に優れたログを提供します。データストアはMySQLのようなデータベースとは異なりますが、操作がはるかに簡単です。サイトの構築は簡単でわかりやすく、サイトに関する有益なアドバイスがたくさんあります。
私はGAEとDjangoを使用してFacebookアプリケーションを作成しました。http://code.google.com/p/app-engine-patchは、Django 1.1をサポートしているため、出発点として使用しました。私は、manage.pyコマンドが機能しないと想定していたので、それらを使用しようとはしませんでしたが、詳しく調べませんでした。アプリケーションには3つのモデルがあり、pyfacebookも使用されていましたが、それが複雑さの程度でした。http://brianyamabe.comでブログを書き始めた、より複雑なアプリケーションを作成しているところです。