Top Banner
Google App Engine 入門 -2009年のGoogle App Engine Javaをふりかえる- tantack@名古屋Scala勉強会
39

Google App Engine Java 入門

Dec 18, 2014

Download

Technology

tantack

2009年12月26日の名古屋SGGAE/J勉強会発表資料。
2009年のGoogle App Engine Javaを振り返るという趣旨で、入門用資料を構成したが中途半端に。
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Google App Engine Java 入門

Google App Engine 入門-2009年のGoogle App Engine Javaをふりかえる-

tantack@名古屋Scala勉強会

Page 2: Google App Engine Java 入門

自己紹介

id: tantack(hatena,twitter,etc…)

お仕事はJavaPG兼SEもどきの2年生

こんなワードに喰いつきます

– Java

– Scala

– Google App Engine Java

– Android

– 集合知

– 日本酒

Page 3: Google App Engine Java 入門

勉強会のご紹介

名古屋Scala勉強会– 毎月第3金曜日あたりに

『Scalaスケーラブル

プログラミング』の

読書会をやっています。

通称コップ本→

名古屋アジャイル勉強会– 毎月月末の金曜日に、アジャイルをテーマとしたワークショップ形式の勉強会をやっています。

Page 4: Google App Engine Java 入門

今年、2009年も色々ありましたが・・・

Page 5: Google App Engine Java 入門

1年間お疲れ様でした!!

Page 6: Google App Engine Java 入門

だが、休暇モードに入るのはまだ早い!

Page 7: Google App Engine Java 入門

・・・ということで、2009年の締めくくりとして

本日はGAE/Jについて

一緒に勉強していきましょう

Page 8: Google App Engine Java 入門

今日のお話

ざっくりクラウドサービス

Google App Engine Java?

2009年のGoogle App EngineJavaをふりかえる

Page 9: Google App Engine Java 入門

ざっくりクラウドサービス

Page 10: Google App Engine Java 入門

ざっくりクラウドサービス

明確な定義はない!

・・・けれども、

『パソコン中心だったデータの保存や

処理を、インターネット上のサーバ群へと移行する流れ』のことを、今回の発表ではクラウドと呼ぶ。

クラウドって?

WEBアプリ+データPC・モバイル端末

利用者は場所・アクセスする端末を選ばず、インターネット上に浮かぶ雲のような『どこか』にあるサーバ群を利用する。

Page 11: Google App Engine Java 入門

ざっくりクラウドサービス

SaaS

PaaS

IaaS

開発者側の視点からク

ラウドサービスを見た場

合、3種類のサービスに分類される

Page 12: Google App Engine Java 入門

ざっくりクラウドサービス

SaaS

PaaS

IaaS

Software as a Service(ソフトウェア提供サービス)

提供されるソフトウェアのみを利用できる。

GmailtwitterSalesforce.comEvernote

Page 13: Google App Engine Java 入門

ざっくりクラウドサービス

SaaS

PaaS

IaaS

Infrastructure as a Service

(インフラ提供サービス)

仮想マシンやストレージの提供。開発者側でOSからミドルウェアまで選択できる。

Amazon EC2/S3

Page 14: Google App Engine Java 入門

ざっくりクラウドサービス

SaaS

PaaS

IaaS

Platform as a Service(プラットフォーム提供サービス)

ミドルウェア(実行環境、DB等)含む提供。開発言語は限定される。

Google App EngineWindows AzureForce.com

Page 15: Google App Engine Java 入門

Google App Engine Java?

Page 16: Google App Engine Java 入門

Google App Engine Java?

GAE/Jを使うメリット無料で試せる

サーバの維持コストはゼロ

アプリケーション開発に専念できる

Page 17: Google App Engine Java 入門

Google App Engine Java?

無料で試せる一定のリソース使用量(Quota)までなら無料

リソース使用の少ないアプリケーションなら、完全に無料での運用も可能

利用者が増え、Quota制限を超えた(*1)ときだけ、お金を払えばよい(*2)

*1 Quota制限を超えたら、無料利用の場合、アプリケーションは停止する。

*2 自動で課金されるわけではない。

予めいくらまでなら払うか、明示的に指定しておく。

Page 18: Google App Engine Java 入門

Google App Engine Java?

サーバの維持コストはゼロサーバはどうしよう?OSはどうする?DBは?・・・といった検討が不要

利用者の増加等によって負荷が増えた場合にも、自動的にスケールするため、サーバ増設の心配をする必要がない

サーバの保守はGoogleが行っているため、故障の心配する必要もない(*1)

*1 最近は少なくなったと思うが、GAE自体止まることがある。

Page 19: Google App Engine Java 入門

Google App Engine Java?

アプリケーション開発に専念できる必要なものは携帯電話(*1)、EclipseとGoogle Plugin for Eclipseのみ

開発者はアプリケーションを書くだけで、すぐにサービスが公開できる

*1 アカウント登録に携帯電話会社のメールアドレスが必要。

(iPhoneやAndroidだと死亡?)

Page 20: Google App Engine Java 入門

Google App Engine Java?

実行環境の特徴自動スケーリング

Java APIの制限

データストア

各種サービス

Page 21: Google App Engine Java 入門

Google App Engine Java?

自動スケーリングアプリケーションに負荷が掛かると、負荷に応じて自動的にスケーリングし、負荷分散が行われる

アプリケーション側で意識して負荷対策をとる必要はないが、リソース使用=利用料金に直結する

リソースの使用をいかに抑えるかが、運用上は重要になってくる

Page 22: Google App Engine Java 入門

Google App Engine Java?

データストア Datastore APIはGoogleのBigtableを利用したKey-Valueストア

JDO, JPA, Low-Level APIによりCRUD操作を行う

JDOはLow-Level APIに比べると、データ量が増えるほどパフォーマンスが落ちていく

Datastoreに近いLow-Level API、もしくはそれをラップしたslim3 Datastoreがオススメ

Page 23: Google App Engine Java 入門

Google App Engine Java?

Java APIの制限複数のスレッドを作成することができない

ソケット通信は行えない

ファイルへの書き込み禁止

1回のリクエストは30秒以内で完了しないと例外を投げられる

Page 24: Google App Engine Java 入門

Google App Engine Java?

各種サービス Cron…指定した時間・間隔で定時処理を行うことが

できる

Memchache API…メモリ上にデータをキャッシュしておく

Task Queue API…タスクをキューに登録し、同時にいくつもの処理を走らせることができる

URLフェッチ API…HTTP,HTTPS通信

Mail API…メールの送受信

Quota API…Quotaの状況を取得する

Blobstore API…50MBまでのデータを扱う

Page 25: Google App Engine Java 入門

2009年のGoogle App Engine Javaをふりかえる

Page 26: Google App Engine Java 入門

Google App Engine Java SDK 1.2.0

1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0

2009年04月07日 SDK 1.2.0リリース

Google App Engineに待望のJava版登場!

4日後の4月11日、ひがやすを氏が開発を続けていた

フレームワークslim3がGAE/Jに対応。このバージョンからCronサポートも始まったため、Bot等に必要な定時処理が可能に。

Page 27: Google App Engine Java 入門

Google App Engine Java SDK 1.2.1

1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0

2009年05月13日 SDK 1.2.1リリース

主にバグ修正のアップデート

この修正で、JSPの日本語が文字化けしていた問題は解決!

Page 28: Google App Engine Java 入門

Google App Engine Java SDK 1.2.2

1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0

2009年07月13日 SDK 1.2.2リリース

主にバグ修正のアップデート

あんまり印象に残ってない・・・。

Page 29: Google App Engine Java 入門

Google App Engine Java SDK 1.2.5

1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0

2009年09月03日 SDK 1.2.5リリース

Task Queue API for Javaの追加!

XMPPのサポート開始

複数のタスクをキューに登録し、バックグラウンドで並行処理ができるように。

Page 30: Google App Engine Java 入門

Google App Engine Java SDK 1.2.6

1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0

2009年10月13日 SDK 1.2.6リリース

GAEドメインでのメール受信サポート開始アプリケーションの削除サポート開始

GAE/J単体でメールの送受信が可能に。あと間違えてデプロイしてしまった、アプリケーションの削除がようやくできるようになった。

Page 31: Google App Engine Java 入門

Google App Engine Java SDK 1.2.8

1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0

2009年12月03日 SDK 1.2.8リリース

JAXBのサポート開始Quota APIのサポート開始

一定量までQuotaを使用したら、アプリケーションを止める等の制御ができるように。

Page 32: Google App Engine Java 入門

Google App Engine Java SDK 1.3.0

1.2.0 1.2.1 1.2.2 1.2.5 1.2.6 1.2.8 1.3.0

2009年12月14日 SDK 1.3.0リリース

Blobstore APIの追加リフレクションの動作最適化

50MBまでの大きなデータを扱えるように。またGroovyやJRubyといった、リフレクションを多用する言語は、実行速度が最大10倍になるらしい。

Page 33: Google App Engine Java 入門

参考資料

Page 34: Google App Engine Java 入門

参考資料

クラウド大全<サービス詳細から基盤技術まで>

– 日経BP社出版局編

クラウドコンピューティング登場の

背景から、Amazon EC2,GAEといった

各クラウドサービスの技術入門、

分散処理技術の紹介・検証まで

手広くカバーされています。

技術者がクラウドコンピューティング全体を俯瞰・把握するのに良い書籍です。

ただ既に情報の古くなっている部分も多いです。

Page 35: Google App Engine Java 入門

参考資料

Google App Engine for Java [実践]クラウドシステム構築

– (株)グルージェント

GAE/Jにできないこと、『制約』に

焦点を当て、『制約』のなかで

GAE/Jを最大限活用するための

技術入門書。

ただ既に情報の古k(略

最新情報はtwitterが最速、次いで個人のブログに詳細がアップされる、といった感じです。twitterでGAEについてつぶやいている方をフォローするのがオススメです。

Page 36: Google App Engine Java 入門

まとめ

Page 37: Google App Engine Java 入門

まとめ

サーバの維持コストはゼロ

開発者はアプリケーション開発に専念できる

GAE/Jの登場から、まだ9ケ月弱

アレコレ模索する、夜明け前の段階

つまり・・・

Page 38: Google App Engine Java 入門

GAE/Jを始めるなら今!

Page 39: Google App Engine Java 入門

ご静聴ありがとうございました!