NASA Talk- The Cloud Layer for Software Developers: An Overview of Platform-as-a-Service (PaaS)

Preview:

Citation preview

The Cloud Layer for Software Developers

by

Lucas Carlsonfor NASA

May 7, 2015

A Brief Overview of Programming for PaaS (Platform-as-a-Service)

Programmer18 Years

Author• Ruby Cookbook

• Programming for PaaS

Entrepreneur• AppFog PaaS

• Mog Music Streaming Service

Current Role• Chief Innovation Officer at

CenturyLink

Who Am I?

Structure

1

Who Am I?2

What’s Wrong

The Developer’s

Plight

3

How the Cloud

Enables Innovation

4

A Brief History of Cloud

for Programmers

5

What is PaaS?

And How to Use It

6

Conclusions

http://j.mp/topaas

What’s Wrong: The Developer’s Plight

If it ain’t broke, don’t fix it… right?

Scaling Web Applications is Hard

2b

5

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

Jason tried to do it once…

Scaling Web Applications is Hard

Web

Server2b

5

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

2a

BROWSE

R

Started simple…

Scaling Web Applications is Hard

Web

Server2b

5

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

BROWSE

R

And then grew…

Browser

6

Web

Server2b

5

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

Scaling Web Applications is Hard

Limited

Redundancy

Error 500

And broke…

Scaling Web Applications is Hard

Web

Server

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

BROWSE

R

And grew more…

Scaling Web Applications is Hard

Web

Server

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

BROWSE

R

And more…

Scaling Web Applications is Hard

Browser

6

Web

Server

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

Limited

Scale

Error 500

And broke more…

Limited

Scale

Scaling Web Applications is Hard

1

5

Browser

6

Web

Server

5

2b

5

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

2a

Error 500

Scaling Web Applications is Hard

3-Tier

Systems

Scale… Up to a Point

Databases are

limited by disk size and

IO rates

Applications

are limited by RAM and CPU

As they get

more complex,they end up

breaking

Building Web

Applications Yourself

is

How the Cloud

Enables Innovation

What’s the opposite of

fragile?

Hint: It’s not robustness

What’s the opposite of

fragile?

Answer : Antifragile

Anti-fragile

Definition

Examples

Break under

stress

Don’t care about

stress

Grow under

stress

The “Heart of Africa”

Characteristics

Monolithic Decentralized

Tightly coupled Loosely coupled

Heavyweight Lightweight

Complicated Simple

No redundancy Extra redundancy

AgileSluggish

Locked-in Interoperable

Anti-fragile

actively randomly kills

its own servers to

ensure its architectural

anti-fragility

Web Deployment Is Changing

To Managed

Platforms to Run

Your Code For You

From Non-

Standard DIY

Old Model: DIY

Web

Server

Application

Server

AppThena

Web App

Other

Web App

Other

Web App

Other

Web App

53

Database

Server

4

Data

CSS

Images

Pages

BROWSE

R

New Model: PaaS

App App App AppLoad

Balancer

DB DB

BROWSE

R

Worker WorkerLoad

Balancer

PaaS (Platform-as-a-Service) Runs Your Apps For You

Resiliency

App App App AppLoad

Balancer

DB DB

BROWSE

R

Worker WorkerLoad

Balancer

PaaS (Platform-as-a-Service) Runs Your Apps For You

A Brief History of Cloud

For Programmers

In The Beginning There Were Datacenters

Ordering Servers Could Take

Weeks

Maintaining Them Was Up To You

Very Expensive Up Front Costs

And Then There Was IaaS

On-Demand API-Driven Servers

Billed Hourly, No Up Front Cost

Scale Up and Down as You Want

You Still Have to Manage and Run

Your Code on the Servers

And SaaS

Pre-Packaged Hosted Programming Services

Sending bulk email, accepting credit cards, etc.

Write Less Code

PaaS Manages YOUR Code on IaaS Servers

No Longer Manage Operating

Systems

Take Out Operational Headaches

Enable Standardized Best

Practices

What is PaaS? And How to Use It

Automatically Deploys Your Apps

App App App AppLoad

Balancer

DB DB

BROWSE

R

Worker WorkerLoad

Balancer

PaaS (Platform-as-a-Service) Runs Your Apps For You

Portfolio of Cloud Services

EASY

HARD

SaaS

IaaS

PaaS

SaaS and Cloud Managed Services

Errors

Exceptional, Airbrake

Analytics

Statsmix, NewRelic,

Blitz

Other

Zerigo, CloudFlare,

Recurly, Stripe

Mobile

Urban Airship, Pusher,

Realtime.io

Data

ClearDB, Amazon

RDS, Heroku

Postgres, MongoLab

Search

Searify, Websolr, AWS

CloudSearch

Email

Mailgun, Sendgrid,

CloudMailin

Logging

Loggly, Logentries,

Papertrail

Background

Tasks

Iron.io, CloudAMQP

IaaS Providers

IaaS

AWS

Google Compute Engine

Azure

DigitalOcean

Rackspace

CenturyLink Cloud

PaaS Providers

Heroku

AppFog

Cloud Foundry

OpenShift

Google App Engine

Azure

PaaS

Conclusions

Conclusions

1. Scaling Web Applications is Hard

2.

PaaS Does It For You

3.

What Parts of Your Application

Lifecycles Can You Outsource to

Automated Platforms?

1

2

3

Thank You!

@cardmagic

LucasCarlson.com

Recommended