nasa talk- the cloud layer for software developers: an overview of platform-as-a-service (paas)
Post on 16-Jul-2015
119 Views
Preview:
TRANSCRIPT
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
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
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
top related