Google App Engine Java 入門

Post on 18-Dec-2014

5875 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

2009年12月26日の名古屋SGGAE/J勉強会発表資料。 2009年のGoogle App Engine Javaを振り返るという趣旨で、入門用資料を構成したが中途半端に。

Transcript

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

tantack@名古屋Scala勉強会

自己紹介

id: tantack(hatena,twitter,etc…)

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

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

– Java

– Scala

– Google App Engine Java

– Android

– 集合知

– 日本酒

勉強会のご紹介

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

『Scalaスケーラブル

プログラミング』の

読書会をやっています。

通称コップ本→

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

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

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

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

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

本日はGAE/Jについて

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

今日のお話

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

Google App Engine Java?

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

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

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

明確な定義はない!

・・・けれども、

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

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

クラウドって?

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

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

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

SaaS

PaaS

IaaS

開発者側の視点からク

ラウドサービスを見た場

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

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

SaaS

PaaS

IaaS

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

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

GmailtwitterSalesforce.comEvernote

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

SaaS

PaaS

IaaS

Infrastructure as a Service

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

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

Amazon EC2/S3

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

SaaS

PaaS

IaaS

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

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

Google App EngineWindows AzureForce.com

Google App Engine Java?

Google App Engine Java?

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

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

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

Google App Engine Java?

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

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

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

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

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

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

Google App Engine Java?

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

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

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

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

Google App Engine Java?

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

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

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

(iPhoneやAndroidだと死亡?)

Google App Engine Java?

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

Java APIの制限

データストア

各種サービス

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がオススメ

Google App Engine Java?

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

ソケット通信は行えない

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

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

Google App Engine Java?

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

できる

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

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

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

Mail API…メールの送受信

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

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

2009年の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等に必要な定時処理が可能に。

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の日本語が文字化けしていた問題は解決!

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リリース

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

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

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のサポート開始

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

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

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を使用したら、アプリケーションを止める等の制御ができるように。

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倍になるらしい。

参考資料

参考資料

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

– 日経BP社出版局編

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

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

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

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

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

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

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

参考資料

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

– (株)グルージェント

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

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

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

技術入門書。

ただ既に情報の古k(略

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

まとめ

まとめ

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

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

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

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

つまり・・・

GAE/Jを始めるなら今!

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

top related