Google Cloud App EngineからFlaskへの移行ガイド
最近、Google Cloudチームは、アプリの近代化をサポートするための一連のコードラボとビデオを発表しました。これらは、Google App Engine上でアプリを運用しているユーザー向けに設計された無料の実践的なチュートリアルです。このコンテンツの初回では、App Engineのデフォルトフレームワークであるwebapp2から、Pythonコミュニティで人気のあるフレームワークFlaskへの移行方法を紹介します。
なぜFlaskへの移行が必要なのか?
App Engineは、2018年に次世代プラットフォームを発表し、新しい要件として、ウェブフレームワークが自らルーティングを行う必要があるとしました。これにより、webapp2はもはやサポートされないため、開発者は新しいフレームワークへ移行する必要があります。しかし、この変更には良いニュースもあります。それは、モダンなApp Engineがより柔軟になり、開発者がより自然な形で開発できるようになったことです。
- webapp2アプリはApp Engine上で動作しますが、FlaskアプリはApp Engineや自社サーバー、データセンター、さらには他のクラウドでも動作することができます。
- Flaskは多くのユーザーを持ち、公開されたリソースも豊富で、サポートが充実しています。
- もしFlaskが合わない場合は、DjangoやPyramidなど他のWSGI準拠フレームワークを選択することもできます。
移行プロセスの概要
この移行プロセスは、「サーバーレス移行ステーション」というシリーズの一環として、Googleエンジニアのマーティン・オマンダーとともに段階的に進めていきます。このシリーズの最初のビデオでは、Python 2のApp Engine NDBを利用したwebapp2サンプルアプリの基本を紹介しました。
移行中、主に変更が加えられるのは、アプリケーションのメインハンドラーであるMainHandlerです。
これらの変更に関する具体的な内容としては、webapp2とFlaskのバージョンの「差分」も示されています。再デプロイ後、ユーザーは元のバージョンから見える出力が変わらないことを確認することができます。
次のステップ
今回のビデオは、前回のビデオで取り上げたPython 2のベースラインアプリから進行します。この状態を「START」と呼び、移行が完了したら生成されるソースコードは「FINISH」と呼ばれます。もし途中でミスをした場合は、「START」に戻ることができ、あなたのソリューションと私たちの「FINISH」と比較することもできます。
今後は、Python 3バージョンやJava 8、PHP 5、Go 1.11以前の他のレガシーランタイムについても取りアップする予定ですので、ぜひご期待ください。
リソースへのアクセス
移行学習モジュール、関連するビデオ(公開時)、コードラボチュートリアル、「START」と「FINISH」のコードなど、すべては移行リポジトリで見ることができます。次のビデオ(モジュール2)では、App EngineのNDBライブラリからCloud NDBへの移行について詳しく説明します。
これらのリソースが、サーバーレスアプリを近代化する手助けとなれば幸いです。開発者たちは新しいテクノロジーを習得し、自信を持ってクラウド環境でのアプリケーションを開発できるようになるでしょう。最初は難しそうですが、一緒に手を取り合って進んでいきましょう!