Date post: | 19-May-2015 |
Category: |
Education |
Upload: | matthew-mccullough |
View: | 4,041 times |
Download: | 1 times |
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
➊
1960
“computation may someday be organized as a public utility”
-John McCarthy
circa 2000
“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?
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!
Time savings
Hardware setup time
OS setup time
Database setup time
Web container setup time
Server setup
Server destruction
Cloud Players
From most open to most constrained
Rackspace Cloud Servers(formerly Mosso)
Rackspace Cloud Sites
Amazon EC2
Mor.ph
Google App Engine
Levels of Abstraction
Operating System Images
Predetermined
or abstracted away
Programming languages?
Ruby?
Java?
PHP?
Python?
Anything?
File Systems
Rackspace CloudTraditional File System
Amazon EC2S3 Buckets
Amazon EC2Elastic Block Storage
Mor.phTraditional File System
Google App EngineBigTable
Databases
Rackspace CloudMicrosoft SQL Server
Rackspace CloudMySQL
Rackspace Cloud<any db>
Amazon EC2Simple DB
Amazon EC2IBM DB2
Mor.phPostgreSQL
Mor.phMySQL
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
Pricing
Rackspace Cloud
1.5¢ per hour
Amazon EC2
Mor.ph
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
April 8th, 2008
small company
Python!
April 7th, 2009
Java!
But more like
Banned
Java
Getting Started with
GAE
Free to start
Cell Phone #
Regular Google Account
10,000: first wave
95 minutes
25,000: second wave
Everyone: third wave
➌
Technology Stack
SDK
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
“Sandbox”
Whitelist of Classes
Caution!
Can work on desktop,not on GAE
Application ID
Globally Unique
required for deployment
xxxxx.appspot.com
Servlet API
Jetty
JSPs
Java Mail API
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)
Low level API
JSR-107 / JCache(javax.cache)
BigTable
Relational Database?
Relational Database
Can import from existing DB
JDO
JPA
Limited GORM-JPA
DataNucleus
Logging
java.util.logging
System.out == infoSystem.err == warning
Log4j
a few NOs
No Hibernate
No file writing
No threads
No server affinity
Even for sequential requests
No sockets
But... you can use URLFetchfor HTTP/HTTPS resources
No JNI
No more than 30s
Ouch!
Customtimeout response
❹
Admin Console
Statistics
Graphs of Usage
System Health
Logs
Pay forlarge usage
Daily Budgets
Budget per resource type
Dev Tools
Eclipse
Jetty Demo Container
Bundled withGWT plugin
Ant
Maven
Grails Plugin
❺
Ideas & Demos
http://appengine.google.com/
http://*.appspot.com
❻
Ecosphere
Hyperic
Yup, those guys
CloudStatus.com
Mor.ph
Remember, that layeron top of EC2?
Humans
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://www.rackspacecloud.com/cloud_hosting_products/servers(formerly http://mosso.com)
• http://aws.amazon.com/ec2/