Cloud Computing boot camp
on the Google App Engine
by Matthew McCullough of Ambient Ideas, LLC
MatthewTwitter @matthewmccull
Blog http://www.ambientideas.com/blog sidebar has all my social media links
Email [email protected]
GitHub http://github.com/matthewmccullough
http://flushirts.spreadshirt.com/us/US/Shop/
Theory
& Backgro
und
Practi
ce
“computation may someday be organized as a public utility”
-John McCarthy
“Cloud Computing”coined
“A style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet.”
-Wikipedia
“Users need not have knowledge of, expertise in, or control over the technology infrastructure in the "cloud" that supports them.”
-Wikipedia
What is the Cloud?
Transition to Production
No licensing fees
Instant availability
What’s the most expensive item on a
startup’s balance sheet?
Hardware setup time
Database setup time
Web container setup time
Server destruction
From most open to most constrained
Rackspace Cloud Servers(formerly Mosso)
Rackspace Cloud Sites
Google App Engine
Levels of Abstraction
Operating System Images
or abstracted away
Programming languages?
Rackspace CloudTraditional File System
Amazon EC2S3 Buckets
Amazon EC2Elastic Block Storage
Mor.phTraditional File System
Google App EngineBigTable
Rackspace CloudMicrosoft SQL Server
Rackspace CloudMySQL
Rackspace Cloud<any db>
Amazon EC2Simple DB
Amazon EC2IBM DB2
Google App EngineBig Table
Operating Systems
Debian, Fedora, Ubuntuon Rackspace Cloud
Windows Serveron Amazon EC2
1000 variants of Linuxon Amazon EC2
CentOS Linuxon Mor.ph
Custom Linuxon Google App Engine
Fully supported level$1500/month
Mor.phFree human inside
specially marked boxes!
Google App Engine
We’ll give it away free and make up for it in
volume!
Google App Engine
Getting Started with
GAE
Regular Google Account
10,000: first wave
25,000: second wave
Everyone: third wave
Technology Stack
Shell scripts to manage apps
Source code included
SDK-version-locked by the SDK JARs you
include
Subset of JDK 1.6
Custom Class Loaders
Whitelist of Classes
Can work on desktop,not on GAE
required for deployment
xxxxx.appspot.com
Google Web Toolkit
Authentication(2 options)
Integration withGoogle Accounts
Admin & User Level Permissions
Roll your own(hint: use SpringSecurity)
Memcache(as an alternative to persistent disk storage)
JSR-107 / JCache(javax.cache)
Relational Database?
Relational Database
Can import from existing DB
Limited GORM-JPA
java.util.logging
System.out == infoSystem.err == warning
No server affinity
Even for sequential requests
But... you can use URLFetchfor HTTP/HTTPS resources
No more than 30s
Customtimeout response
Pay forlarge usage
Budget per resource type
Jetty Demo Container
Bundled withGWT plugin
http://appengine.google.com/
http://*.appspot.com
Remember, that layeron top of EC2?
Large Setups more economical to self-host
Out of your hands
Do you trust the vendor?
Persistence can be weird
Resources
• http://mor.ph
• http://appengine.google.com
• http://www.rackspacecloud.com/cloud_hosting_products/servers(formerly http://mosso.com)
• http://aws.amazon.com/ec2/