44
The Cloud Layer for Software Developers by Lucas Carlson for NASA May 7, 2015 A Brief Overview of Programming for PaaS (Platform-as-a-Service)

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

Embed Size (px)

Citation preview

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

The Cloud Layer for Software Developers

by

Lucas Carlsonfor NASA

May 7, 2015

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

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

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?

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

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

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

http://j.mp/topaas

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

What’s Wrong: The Developer’s Plight

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

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

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…

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

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…

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

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…

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

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…

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

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…

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

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…

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

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…

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

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

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

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

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

Building Web

Applications Yourself

is

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

How the Cloud

Enables Innovation

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

What’s the opposite of

fragile?

Hint: It’s not robustness

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

What’s the opposite of

fragile?

Answer : Antifragile

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

Anti-fragile

Definition

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

Examples

Break under

stress

Don’t care about

stress

Grow under

stress

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

The “Heart of Africa”

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

Characteristics

Monolithic Decentralized

Tightly coupled Loosely coupled

Heavyweight Lightweight

Complicated Simple

No redundancy Extra redundancy

AgileSluggish

Locked-in Interoperable

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

Anti-fragile

actively randomly kills

its own servers to

ensure its architectural

anti-fragility

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

Web Deployment Is Changing

To Managed

Platforms to Run

Your Code For You

From Non-

Standard DIY

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

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

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

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

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

Resiliency

App App App AppLoad

Balancer

DB DB

BROWSE

R

Worker WorkerLoad

Balancer

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

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

A Brief History of Cloud

For Programmers

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

In The Beginning There Were Datacenters

Ordering Servers Could Take

Weeks

Maintaining Them Was Up To You

Very Expensive Up Front Costs

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

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

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

And SaaS

Pre-Packaged Hosted Programming Services

Sending bulk email, accepting credit cards, etc.

Write Less Code

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

PaaS Manages YOUR Code on IaaS Servers

No Longer Manage Operating

Systems

Take Out Operational Headaches

Enable Standardized Best

Practices

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

What is PaaS? And How to Use It

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

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

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

Portfolio of Cloud Services

EASY

HARD

SaaS

IaaS

PaaS

Page 39: NASA Talk- The Cloud Layer for Software Developers: An Overview of Platform-as-a-Service (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

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

IaaS Providers

IaaS

AWS

Google Compute Engine

Azure

DigitalOcean

Rackspace

CenturyLink Cloud

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

PaaS Providers

Heroku

AppFog

Cloud Foundry

OpenShift

Google App Engine

Azure

PaaS

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

Conclusions

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

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

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

Thank You!

@cardmagic

LucasCarlson.com