cloud computing bootcamp on the google app engine [v1.1]
DESCRIPTION
Matthew McCullough's presentation to DOSUG on the Google App Engine's new Java language and JSP/servlet support. Covers the current definition of what Cloud means, and why you'd want to use it. All materials are highly subject to change, as this talk covers the Java Beta GAE support on the App Engine just 27 days after launch.TRANSCRIPT
Cloud Computing boot camp
on the Google App Engine
by Matthew McCullough of Ambient Ideas, LLC
http://flushirts.spreadshirt.com/us/US/Shop/
➊
1960
circa 2 0 0 0
What is the Cloud?
Scalable
Dynamic
Pay-per-use
Stateless
Affinity-less
Scale up
Scale down
Grid
Why the Cloud?
Cost of startup
Experimentation
Transition to Production
No licensing fees
Instant Availability
What’s the most expensive item on a
startup’s balance sheet?
You!
Server setup
Server destruction
Time savings
Developer & Consultant Time
Cloud Players
Google App Engine
Rackspace Mosso
Mor.ph
Amazon EC2
Levels of Abstraction
Any language?
Ruby?
Java?
PHP?
Python?
Anything?
OS Images
or Predetermined
or Abstracted
File Systems
Mor.phTraditional File System
Amazon EC2S3 Buckets
Amazon EC2Elastic Block Storage
Rackspace MossoTraditional File System
Google App EngineN/A
Databases
Amazon EC2Simple DB
Amazon EC2IBM DB2
Google App EngineBig Table
Mor.phPostgreSQL
Mor.phMySQL
MossoMySQL
MossoMicrosoft SQL Server
Mosso<any db>
Operating Systems
Windows Serveron Amazon EC2
1000 variants of Linuxon Amazon EC2
CentOS Linuxon Mor.ph
Debian, Fedora, Ubuntuon Mosso
<obfuscated>on Google App Engine
Pricing
Amazon EC2
Mosso
Mor.ph
$1500/month
Mor.phFree human inside
specially marked boxes!
Google App Engine
Google App Engine
We’ll give it away free and make it up in volume!
➋
Google App Engine
April 8th, 2008
small company
Python!
April 7th, 2009
Java!
But more like
Java!⅘
Getting Started with
GAE
Free to start
Cell Phone #
Regular Google Account
10,000 first wave
obsessed
95 minutes
25,000 second wave
Ideas & Demos
Mobile Apps
Technology Stack
Servlet API
Jetty
JSPs
Java Mail API
Google Web Toolkit
Authentication
Integration withGoogle Accounts
Admin & User Level Permissions
Java Cache API
JSR-107 / JCache
BigTable
Database
Can import from existing DB
JDO
JPA
No
No Gorm
No Hibernate
No file writing
No threads
lack of server affinity
Who moved my cheese?
Even for sequential requests
No sockets
But... can use URLFetchfor HTTP/HTTPS resources
No JNI
No more than 30s
Ouch!
Custom timeout response
Application ID
Globally Unique
required for deployment
xxxxx.appspot.com
SDK
Shell scripts to manage apps
Source code included
Versioned by the JARs you include
DataNucleus
JDO for BigTable
Subset of JDK 1.6
Custom Class Loaders
“Sandbox”
Whitelist of Classes
Caution!
Can work on desktop,not on GAE
Compression
gzip
Accept-Encoding:gzip
Admin Console
Statistics
Graphs of Usage
System Health
Pay forextreme usage
Daily Budget
Budgetper resource type
Logging
java.util.logging
System.out == infoSystem.err == warning
Log4j
Dev Tools
Eclipse
Jetty Demo Container
Bundled withGWT plugin
Ant
Maven
➌
Ecosphere
Hyperic
Yup, those guys
CloudStatus.com
Mor.ph
Layer on top of EC2
Humans
Eclectic Info
Amazon Mechanical Turk
AmazonElastic Map Reduce
Apache Hadoop
Cloud Fallout
Large Setups more economical to self-host
Out of your hands
Uptime?
Do you trust the vendor?
Persistence can be weird
Give it a try!
Resources
• http://mor.ph
• http://appengine.google.com
• http://mosso.com
• http://aws.amazon.com/ec2/