213
Cloud Computing boot camp on the Google App Engine by Matthew McCullough of Ambient Ideas, LLC

Cloudcomputingbootcamponthegoogleappenginev1 2-1-090819150335 Phpapp01

Embed Size (px)

DESCRIPTION

Cloudcomputing google prg

Citation preview

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/