harper reed: cloud contraints

Post on 12-May-2015

550 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Cloud ConstraintsHarper Reed

harper@nata2.org@harper

Hi!

I build a lot of applications.

BIG

SMALL (ish)supertrackr

fukung.net

Cloud Computing is Awesome

Cloud computing has a lot of constraints

ArchitectureDevelopmentDeployment

Architecture

You never know if a resource may disappear/fail.

Examples:EC2 InstancesCloud Server Resources

Development

The languages and supported technologies may be limited

Examples: App Engine: python/javaHeroku: ruby

Deployment

Old style simple deployment is gone.

Examples:App engine deploy toolsEC2 Tool chainHeroku tool chain

Google App Engine

Google App Engine

A platform for developing and hosting web applications in Google-managed data centers.

App Engine

Time per request: 30 secBlobstore size: 2 GBHTTP response size: 10 MBDatastore item size: 1 MBApplication code size: 150 MB

Time per request

Limit the time allowed per request

Query Constraints

App Engine used to only return resultsets with 1000 results.

Datastore

Often PaaS providers limit the type and kind of queries you can do over a datastore.

Joins are not your friend

Port 80

You can only serve and make requests on port 80.

Misc tools/apis

QueueSearchMap ReduceDatastoreEmail

see: http://addons.heroku.com/

Servers

EC2 and Rackspace Cloud

Servers offer a lot of freedom. They are also a pain in the ass (don't trust them).

Architecture

Architecting server infrastructures in clouded environments is MUCH different than the old fashioned big iron way.

see: elastic scaling, IaaS vs PaaS

Cloud Server Constraints

Less constraints than PaaS providers. Often emulates a real server.

see: rackspace cloud

Some real constaints

Transient serversArchitect for failureDeployment

Transient servers

Your servers may/will disappear. You need to build that assumption into your infrastructure.

Architect for failure

When you don't control the resource and hardware - you will experience failures.

Build around the potential for failure.

Deployment

The nature of cloud servers let's you pop up 100s or 1000s of boxes. This is a nightmare to manage without awesome tools like puppet, chef, etc.

The Magic

Work within these constraints even when you don't have them

Your apps will be better.They will respond better.They will be more efficient.

Your users will be happier

Questions

@harperharperreed.org

harper@nata2.org

?

top related