Google App Engine のアプリケーションはどの程度移植可能ですか? これらは GAE に永久にバインドされていますか?
6 に答える
良きコンサルタントとして、答えは「依存」だと思います。
まず、SDK で GAE プロジェクトをいつでも実行できます。したがって、その程度では拘束されません。それ以上は、使用する他の API によって異なります。webapp ライブラリは他のライブラリと非常によく似ていますが、スタンドアロンとしては利用できないと思います。ただし、GAE は Web フレームワークとして Django もサポートしており、もちろんスタンドアロンでも使用できます。
コードは単なる Python です。ただし、データ API などの一部の API は、実際には Google クラウドとやり取りすることを目的としています。任意の GAE プログラムを手直しせずに別のプラットフォームに移行できるかどうかはわかりません。
Django 0.96 を使用している場合は、ちょっとした作業の後、コードを別のホストに移動できます。モデルのポートをデータストアから別のデータベースに変更する必要があります。Google が提供する User クラスと、場合によっては他の Google 固有の API の使用を停止する必要があります。
Django アプリを問題なく GAE に移植しました。
私はここ数ヶ月、アプリエンジン(java)用に開発してきました。
理論的には、データアクセスにJPAやJDOなどの標準を
使用し、タスクキューなどの高度な機能を使用しない場合は
、アプリを別の環境に移植する際にそれほど問題はありません。
そうは言っても、悪夢のようなパフォーマンスの問題を回避するために、データストアへのアクセスに低レベルのGoogleAPIを使用していることがよくあります。アプリの設計にモジュラーデータアクセスレイヤーがある場合、この問題の副作用をある程度減らすことができます。
別の注意点として、アプリケーションがapp-engineでスムーズに動作している場合、それを他の場所に移動する理由は考えられません。