Google Cloudのサーバーレスアプリケーション学習モジュール紹介

Google Cloudの新しい学習モジュール「Serverless Migration Station」について

Google Cloudは最近、サーバーレスアプリケーションのモダナイゼーションに関する新しい学習リソース「Serverless Migration Station」を発表しました。このプログラムは、無料のオンラインコースとして提供され、技術者が自身のアプリケーションをアップデートする手助けを目指しています。この記事では、この新しいリソースの重要性や内容について掘り下げていきます。

サーバーレスとは?

サーバーレスアーキテクチャは、開発者がインフラストラクチャの管理を気にすることなくアプリケーションの開発に集中できるようにする仕組みです。これにより、スケーラビリティやコスト効率が向上し、開発者は迅速に新機能を開発することが可能になります。

新しい学習モジュールの概要

「Serverless Migration Station」は、一連のモダナイゼーション技術を学ぶためのモジュールで構成されています。具体的には、次のような内容が含まれています:

  • Cloud NDBへの移行(モジュール2): App Engineの旧NDBライブラリを代替し、Datastoreへのアクセスを実現します。
  • Cloud Runへの移行(モジュール4・5): コンテナ化を利用して、アプリの移植性を向上させることで、簡単にデプロイが可能になります。
  • Cloud Tasksへの移行(モジュール7-9): 従来のApp Engineタスクキューサービスから新しい機能を積極的に活用できます。

これらのモジュールは、Googleのエンジニアであるマーティン・オマンダー氏と共に、具体的なコードや設定ファイルを見ながら、開発者に移行手順を具体的に教えます。

サンプルアプリの紹介

学習モジュールでは、アプリケーションの具体例としてシンプルなPython 2のApp Engine NDBアプリケーションが取り上げられています。このアプリケーションは以下の機能を持っています:

  • 訪問者のIPアドレスおよびブラウザ情報を記録
  • 最近の訪問ログを表示

サンプルコードの一部は以下の通りです:

import os
import webapp2
from google.appengine.ext import ndb
from google.appengine.ext.webapp import template

class Visit(ndb.Model):
    visitor = ndb.StringProperty()
    timestamp = ndb.DateTimeProperty(auto_now_add=True)

def store_visit(remote_addr, user_agent):
    Visit(visitor='{}: {}'.format(remote_addr, user_agent)).put()

def fetch_visits(limit):
    return (v.to_dict() for v in Visit.query().order(-Visit.timestamp).fetch(limit))

class MainHandler(webapp2.RequestHandler):
    def get(self):
        store_visit(self.request.remote_addr, self.request.user_agent)
        visits = fetch_visits(10)
        tmpl = os.path.join(os.path.dirname(__file__), 'index.html')
        self.response.out.write(template.render(tmpl, {'visits': visits}))

app = webapp2.WSGIApplication([
    ('/', MainHandler),
], debug=True)

次のステップとリソースの利用

各モジュールは、学ぶべき特定のモダナイゼーション技術に焦点を当てています。動画での解説の後、codelabが開発者を段階的に導きます。進行中に問題が発生した場合は、いつでも「START」のコードにリセットして再度挑戦することが可能です。また、達成した「FINISH」のコードと比較することで、理解を深めることができます。

他のリソースと対象

最初のモジュールはPython 2およびApp Engine向けに設計されていますが、Python 3や非App Engineユーザー向けの内容も用意されています。今後は、他のレガシー言語向けのリソースも計画されていますので、興味がある方はぜひ注視してみてください。

「Serverless Migration Station」のリソースが、サーバーレスアプリケーションを現代化するための道筋を示す役立つ手助けとなることを期待しています。