Busy Developer's Guide to the Clouds

ted@tedneward.com | Blog: http://blogs.tedneward.com | Twitter: tedneward | Github: tedneward | LinkedIn: tedneward

Objectives

What's our plan?

Cloud

What is this thing, cloud?

Cloud

Cloud Computing

Cloud

Cloud Computing: The idea

Cloud

Cloud Computing: The benefits

Cloud Glossary

What terms do we agree on?

Cloud: Glossary

Let's come to agreement on a few terms

Cloud: Glossary

Important foundataional terms

Cloud: Glossary

Cloud "models"

Cloud: Glossary

Cloud "models"

Cloud: Glossary

Cloud "models"

Cloud: Glossary

Cloud "services"

Cloud: Glossary

Cloud "platform services"

Amazon Web Services: An Overview

null --null

AWS

Amazon Web Services (AWS)

AWS

AWS Offerings

AWS

AWS Offerings

AWS

AWS Offerings

AWS

Amazon SDKs

AWS

For more information...

Azure: An Overview

null --null

Azure

Microsoft Azure

Azure

Azure Offerings

Azure

Azure Offerings

Azure

Azure Offerings

Azure

Azure SDKs

Azure

Azure Offerings

Google Cloud Platform

Google's cloud service offerings

Google Cloud

Google Cloud Platform

Google Cloud

Google Cloud offerings

Google Cloud

Google Cloud offerings

Google Cloud

Google Cloud offerings

Google Cloud

Google Cloud SDKs

Google Cloud

For more information...

Force.com

The Salesforce Cloud platform

Force.com

SalesForce is a cloud-hosted vertical CRM

Force.com

Force.com: SalesForce's PaaS play

Heroku

Developer cloud as-a-Service

Heroku

Heroku

Heroku

Heroku plugins

Heroku

Heroku Platform API

AppHarbor

Developer cloud as-a-Service

AppHarbor

AppHarbor

AppHarbor

AppHarbor plugins

AppHarbor

AppHarbor APIs

Meteor

Overview of an all-Javascript stack

Overview

Meteor (meteor.com) is an all-Javascript stack

Overview

Meteor's core concepts:

Overview

Meteor buzzword bingo:

Overview

Meteor architecture:

Cloud Considerations

Things to think about|on a cloudy day

Definitions

What is the Cloud to you?

Considerations

Cloud doesn't eliminate the Fallacies of Distributed Computing, just changes the concerns a bit

Considerations

Cloud doesn't eliminate the Fallacies of Distributed Computing, just changes the concerns a bit

Tenancy and instancing

Fundamental models of Cloud apps:

Resource elasticity

"Resource elasticity"

But be careful how easy servers spin up

Geo-distribution

Geo-distribution is the ability to regionalize servers

Customer relationships

Your customers are not Cloud customers

Be very clear about these two relationships

Recoverability and fault-tolerance

When you own the server, recoverability is your problem... and under your control

When you build a Cloud app, take that into account

Cost structure

Cloud apps cost differently than self- or commercially-hosted ones

Data storage and retrieval

BLOBs vs Tables: Who's right?

Testing

You were planning on unit-testing this thing, right?

Upgrades and deployments

Deploying new versions to the Cloud is a little different than your own server

Keep an eye on the effects of new code on:

Flexibility

"[CouchDB/MongoDB/XMPP/whatever] is hot! We need it!"

Cloud providers are interested in creating instances they can support

Debugging

Debugging a cloud app isn't quite like debugging a Production app

Consider:

Summary

Cloud is everywhere

Credentials

Who is this guy?