SlideShare una empresa de Scribd logo
1 de 66
Descargar para leer sin conexión
4/20/2013
Abusing the Cloud
for Fun
& Profit
CoderFaire Atlanta Alan Pinstein, Founder & CTO, TourBuzz
http://www.tourbuzz.net
http://www.showcaseIDX.com
@apinstein
apinstein@mac.com
What is the cloud?
What is the cloud?
Utility Computing
✤ Bare Metal
✤ Dedicated Server
✤ VM/Shared Hosting
✤ SaaS / Software-as-a-Service
✤ PaaS / Platform-as-a-Service
?
Know your place in the Stack
✤ Heroku vs EC2
Know your place in the Stack
✤ Heroku vs EC2
✤ Don’t try to devops your sysadmin if you
aren’t a sysadmin
Know your place in the Stack
✤ Heroku vs EC2
✤ Don’t try to devops your sysadmin if you
aren’t a sysadmin
✤ Move down the stack only as soon as
needed
Monetary Considerations
http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
Monetary Considerations
✤ No up-front capital costs
http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
Monetary Considerations
✤ No up-front capital costs
✤ But, more expensive cost per
unit-of-work
http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
Monetary Considerations
✤ No up-front capital costs
✤ But, more expensive cost per
unit-of-work
✤ Matches Cost To Usage, not
Capacity
http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
Monetary Considerations
✤ No up-front capital costs
✤ But, more expensive cost per
unit-of-work
✤ Matches Cost To Usage, not
Capacity
✤ Lots of things are metered that
you aren’t used to - “what gets
measured gets managed”
http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
Monetary Considerations
✤ No up-front capital costs
✤ But, more expensive cost per
unit-of-work
✤ Matches Cost To Usage, not
Capacity
✤ Lots of things are metered that
you aren’t used to - “what gets
measured gets managed”
✤ Potential lower TCO
http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
FreeTier FTW
✤ Heroku: 1 free web worker
https://www.heroku.com/pricing
✤ Mandrill: SMTP SaaS up to 12k/mo
http://mandrill.com/pricing/
✤ AWS: Free Tier
http://aws.amazon.com/free/
You cannot do this on your own.
Performance Characteristics
✤ You must understand your app’s
performance characteristics
Performance Characteristics
✤ You must understand your app’s
performance characteristics
✤ You must understand the performance
characteristics of your cloud resource
Performance Characteristics
✤ You must understand your app’s
performance characteristics
✤ You must understand the performance
characteristics of your cloud resource
✤ If they don’t match, and you have
problems...
I TOLD YOU SO.
AWS/EBSVolatility
http://www.stratalux.com/2012/08/09/putting-amazon’s-provisioned-iops-to-the-test/
Opaque stack: performance tuning is hard
✤ Used to dedicated hardware? Get ready for shared VM
performance volatility!
Opaque stack: performance tuning is hard
✤ Used to dedicated hardware? Get ready for shared VM
performance volatility!
✤ No idea what resource limits you’re given
Opaque stack: performance tuning is hard
✤ Used to dedicated hardware? Get ready for shared VM
performance volatility!
✤ No idea what resource limits you’re given
✤ Often support is hard to get or cagy about how stuff
works
Opaque stack: performance tuning is hard
✤ Used to dedicated hardware? Get ready for shared VM
performance volatility!
✤ No idea what resource limits you’re given
✤ Often support is hard to get or cagy about how stuff
works
✤ Documentation is typically not very detailed
Opaque stack: performance tuning is hard
✤ Used to dedicated hardware? Get ready for shared VM
performance volatility!
✤ No idea what resource limits you’re given
✤ Often support is hard to get or cagy about how stuff
works
✤ Documentation is typically not very detailed
✤ See: RapGenius v Heroku
✤ September 18th:
Dedicated (Xen) to AWS/EC2
✤ December 10th:
m1.xlarge > c1.medium
✤ March 3rd:
Offload image processing to
autoscaling Heroku app
Should it AutoScale?
Should it AutoScale?
✤ Volatile load (minutes/hours/days)
Should it AutoScale?
✤ Volatile load (minutes/hours/days)
✤ Volatile load (months/years)
Should it AutoScale?
✤ Volatile load (minutes/hours/days)
✤ Volatile load (months/years)
✤ Scaling up vs Scaling down
Should it AutoScale?
✤ Volatile load (minutes/hours/days)
✤ Volatile load (months/years)
✤ Scaling up vs Scaling down
✤ Cost
Should it AutoScale?
✤ Volatile load (minutes/hours/days)
✤ Volatile load (months/years)
✤ Scaling up vs Scaling down
✤ Cost
✤ Performance
Will it AutoScale?
Will it AutoScale?
✤ Decouple independent processes
Will it AutoScale?
✤ Decouple independent processes
✤ Inter-app communication must be robust
Design for Failure, and Nothing will Fail.
Using the Cloud Successfully means
Changing the way you build apps
Using the Cloud Successfully means
Changing the way you build apps
✤ Automate everything. You will start from scratch frequently.
Using the Cloud Successfully means
Changing the way you build apps
✤ Automate everything. You will start from scratch frequently.
✤ DBA, sysadmin. Implies people doing manual work.
Using the Cloud Successfully means
Changing the way you build apps
✤ Automate everything. You will start from scratch frequently.
✤ DBA, sysadmin. Implies people doing manual work.
✤ DEVOPS is sustainable, but requires expertise.
Using the Cloud Successfully means
Changing the way you build apps
✤ Automate everything. You will start from scratch frequently.
✤ DBA, sysadmin. Implies people doing manual work.
✤ DEVOPS is sustainable, but requires expertise.
✤ Programmable infrastructure
Using the Cloud Successfully means
Changing the way you build apps
✤ Automate everything. You will start from scratch frequently.
✤ DBA, sysadmin. Implies people doing manual work.
✤ DEVOPS is sustainable, but requires expertise.
✤ Programmable infrastructure
✤ Not just for the data center (vagrant)
** go to Nic’s talk later today **
Using the Cloud Successfully means
Changing the way you build apps
✤ Automate everything. You will start from scratch frequently.
✤ DBA, sysadmin. Implies people doing manual work.
✤ DEVOPS is sustainable, but requires expertise.
✤ Programmable infrastructure
✤ Not just for the data center (vagrant)
** go to Nic’s talk later today **
✤ Automation is FREEDOM.
Using the Cloud Successfully means
Changing the way you build apps
✤ Automate everything. You will start from scratch frequently.
✤ DBA, sysadmin. Implies people doing manual work.
✤ DEVOPS is sustainable, but requires expertise.
✤ Programmable infrastructure
✤ Not just for the data center (vagrant)
** go to Nic’s talk later today **
✤ Automation is FREEDOM.
✤ From vendor lock-in, employee turnover,
cost of starting from scratch
Tales from the cloud...
Arg.
x1000
Arg.
✤ CDN --> many reports of serving
partial content.
x1000
Arg.
✤ CDN --> many reports of serving
partial content.
✤ Debugging real problems with
vendors is hard.
x1000
Arg.
✤ CDN --> many reports of serving
partial content.
✤ Debugging real problems with
vendors is hard.
✤ We had to revert.
x1000
WTF.
$ heroku ps:scale workers=20
WTF.
$ heroku ps:scale workers=20
WTF.
$ heroku ps:scale workers=20
WTF.
$ heroku ps:scale workers=20
$ heroku ps:scale workers=10
WTF.
$ heroku ps:scale workers=20
$ heroku ps:scale workers=10
WTF.
$ heroku ps:scale workers=20
$ heroku ps:scale workers=10
WTF.
$ heroku ps:scale workers=20
$ heroku ps:scale workers=10
#fail
WTF!
# mac laptop
~ $ time cat /dev/random | head -c 10000K > /dev/
null
real 1.03s
user 0.00s
sys 1.01s
WTF!
# heroku
~ $ time cat /dev/random | head -c 100 > /dev/null
real 0m8.430s
user 0m0.020s
sys 0m0.000s
# mac laptop
~ $ time cat /dev/random | head -c 10000K > /dev/
null
real 1.03s
user 0.00s
sys 1.01s
WTF!
# heroku
~ $ time cat /dev/random | head -c 100 > /dev/null
real 0m8.430s
user 0m0.020s
sys 0m0.000s
# mac laptop
~ $ time cat /dev/random | head -c 10000K > /dev/
null
real 1.03s
user 0.00s
sys 1.01s
✤ Heroku has very little entropy
✤ Caused sleep & usleep to be “lazy”; use nanosleep instead.
WTF?!
$ s3cmd put file.jpg s3://mybucket/file.jpg
=> 200 OK
$ curl http://mybucket/file.jpg
=> 404 file not found
$ sleep 5 && curl http://mybucket/file.jpg
=> 200 OK
Eventually consistent....
Stuff that went right
✤ Increased application performance
✤ Sleep better at night
✤ Save a lot of money
✤ Clear path for scaling as we grow that should avoid hair-on-fire
emergencies
✤ FREEDOM: options and flexibility
Plan your trip in the cloud
✤ “Design for failure, and nothing will fail”
Plan your trip in the cloud
✤ “Design for failure, and nothing will fail”
✤ Choose vendors carefully
Plan your trip in the cloud
✤ “Design for failure, and nothing will fail”
✤ Choose vendors carefully
✤ Expectations - from your team and vendors
Plan your trip in the cloud
✤ “Design for failure, and nothing will fail”
✤ Choose vendors carefully
✤ Expectations - from your team and vendors
✤ Architecture
Plan your trip in the cloud
✤ “Design for failure, and nothing will fail”
✤ Choose vendors carefully
✤ Expectations - from your team and vendors
✤ Architecture
✤ Contingency plans
We are hiring!
Q & A
Alan Pinstein
@apinstein
apinstein@mac.com
http://www.tourbuzz.net
http://www.showcaseIDX.com

Más contenido relacionado

La actualidad más candente

Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"Chris Mills
 
DrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEF
DrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEFDrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEF
DrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEFccmcnerdy
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web appsChris Mills
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!Chris Mills
 
A frame beginner lesson
A frame beginner lessonA frame beginner lesson
A frame beginner lessonDaosheng Mu
 
AWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAmazon Web Services
 
Immutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWSImmutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWSPavel Gabriel
 
Drop your website load times down a waterfall final 1
Drop your website load times down a waterfall final 1Drop your website load times down a waterfall final 1
Drop your website load times down a waterfall final 1Jeff Costa
 
A-Frame: VR for Web Developers
A-Frame: VR for Web DevelopersA-Frame: VR for Web Developers
A-Frame: VR for Web DevelopersKevin Ngo
 
3 tips to make your Wordpress site faster
3 tips to make your Wordpress site faster3 tips to make your Wordpress site faster
3 tips to make your Wordpress site fasterJonathan Alford
 
Drupalcon 2009 Flash and Drupal
Drupalcon 2009 Flash and DrupalDrupalcon 2009 Flash and Drupal
Drupalcon 2009 Flash and Drupalgdoteof
 
Copass + Ruby on Rails = <3 - From Simplicity to Complexity
Copass + Ruby on Rails = <3 - From Simplicity to ComplexityCopass + Ruby on Rails = <3 - From Simplicity to Complexity
Copass + Ruby on Rails = <3 - From Simplicity to ComplexityAugustin Riedinger
 
Build the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameBuild the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameMozilla VR
 
Introduction to A-Frame
Introduction to A-FrameIntroduction to A-Frame
Introduction to A-FrameDaosheng Mu
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsJoe Ferguson
 
You ain't gonna need write a GenServer - Ulisses Almeida | Elixir Club Ukraine
You ain't gonna need write a GenServer - Ulisses Almeida  | Elixir Club UkraineYou ain't gonna need write a GenServer - Ulisses Almeida  | Elixir Club Ukraine
You ain't gonna need write a GenServer - Ulisses Almeida | Elixir Club UkraineElixir Club
 
Getting Started with Web VR
Getting Started with Web VR Getting Started with Web VR
Getting Started with Web VR Saurabh Badhwar
 
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services SingaporeKel
 
What happens after react?
What happens after react?What happens after react?
What happens after react?Jesper Bylund
 

La actualidad más candente (20)

Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
 
DrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEF
DrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEFDrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEF
DrupalCamp LA 2012: COOK UP SOME STACKS OF DRUPAL GOODNESS WITH CHEF
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
 
A frame beginner lesson
A frame beginner lessonA frame beginner lesson
A frame beginner lesson
 
AWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverythingAWS Customer Presentation - SchoolofEverything
AWS Customer Presentation - SchoolofEverything
 
Immutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWSImmutable servers with Packer/Chef/AWS
Immutable servers with Packer/Chef/AWS
 
Drop your website load times down a waterfall final 1
Drop your website load times down a waterfall final 1Drop your website load times down a waterfall final 1
Drop your website load times down a waterfall final 1
 
A-Frame: VR for Web Developers
A-Frame: VR for Web DevelopersA-Frame: VR for Web Developers
A-Frame: VR for Web Developers
 
3 tips to make your Wordpress site faster
3 tips to make your Wordpress site faster3 tips to make your Wordpress site faster
3 tips to make your Wordpress site faster
 
Drupalcon 2009 Flash and Drupal
Drupalcon 2009 Flash and DrupalDrupalcon 2009 Flash and Drupal
Drupalcon 2009 Flash and Drupal
 
Copass + Ruby on Rails = <3 - From Simplicity to Complexity
Copass + Ruby on Rails = <3 - From Simplicity to ComplexityCopass + Ruby on Rails = <3 - From Simplicity to Complexity
Copass + Ruby on Rails = <3 - From Simplicity to Complexity
 
Faster web pages
Faster web pagesFaster web pages
Faster web pages
 
Build the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameBuild the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-Frame
 
Introduction to A-Frame
Introduction to A-FrameIntroduction to A-Frame
Introduction to A-Frame
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
You ain't gonna need write a GenServer - Ulisses Almeida | Elixir Club Ukraine
You ain't gonna need write a GenServer - Ulisses Almeida  | Elixir Club UkraineYou ain't gonna need write a GenServer - Ulisses Almeida  | Elixir Club Ukraine
You ain't gonna need write a GenServer - Ulisses Almeida | Elixir Club Ukraine
 
Getting Started with Web VR
Getting Started with Web VR Getting Started with Web VR
Getting Started with Web VR
 
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
 
What happens after react?
What happens after react?What happens after react?
What happens after react?
 

Destacado

Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php PresentationAlan Pinstein
 
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Alan Pinstein
 
Precise kilometer calculation by underground cable fault detector
Precise kilometer calculation by underground cable fault detectorPrecise kilometer calculation by underground cable fault detector
Precise kilometer calculation by underground cable fault detectorvivekmv716
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Destacado (6)

Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...
 
Precise kilometer calculation by underground cable fault detector
Precise kilometer calculation by underground cable fault detectorPrecise kilometer calculation by underground cable fault detector
Precise kilometer calculation by underground cable fault detector
 
Php Presentation
Php PresentationPhp Presentation
Php Presentation
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similar a Abusing the Cloud for Fun and Profit

Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandYan Pritzker
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 NotesRoss Lawley
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudJulien SIMON
 
Castles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App EngineCastles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App Enginecatherinewall
 
Practical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationPractical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationChris Dagdigian
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupAmazon Web Services
 
Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Abhishek Singh
 
2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with BlackfireMarko Mitranić
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 mayLuciano Amodio
 
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIn-Memory Computing Summit
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applicationsFDConf
 
Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Jan Jongboom
 
Switching SaaS Hosting From dedicated virtual machines to container-based clu...
Switching SaaS Hosting From dedicated virtual machines to container-based clu...Switching SaaS Hosting From dedicated virtual machines to container-based clu...
Switching SaaS Hosting From dedicated virtual machines to container-based clu...AWS Germany
 
Enterprise Hosting
Enterprise HostingEnterprise Hosting
Enterprise HostingAvarteq
 
All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...JAXLondon_Conference
 
Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)Yan Cui
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best PracticesEric Bottard
 
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...Amazon Web Services
 

Similar a Abusing the Cloud for Fun and Profit (20)

Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On Demand
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 Notes
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloud
 
Castles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App EngineCastles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App Engine
 
Practical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationPractical Cloud & Workflow Orchestration
Practical Cloud & Workflow Orchestration
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a Startup
 
Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up
 
2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire2019 StartIT - Boosting your performance with Blackfire
2019 StartIT - Boosting your performance with Blackfire
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
 
Offline of web applications
Offline of web applicationsOffline of web applications
Offline of web applications
 
Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014Offline for web - Frontend Dev Conf Minsk 2014
Offline for web - Frontend Dev Conf Minsk 2014
 
Switching SaaS Hosting From dedicated virtual machines to container-based clu...
Switching SaaS Hosting From dedicated virtual machines to container-based clu...Switching SaaS Hosting From dedicated virtual machines to container-based clu...
Switching SaaS Hosting From dedicated virtual machines to container-based clu...
 
Cloud Economics
Cloud EconomicsCloud Economics
Cloud Economics
 
Enterprise Hosting
Enterprise HostingEnterprise Hosting
Enterprise Hosting
 
All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...All change! How the new Economics of Cloud will make you think differently ab...
All change! How the new Economics of Cloud will make you think differently ab...
 
Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
 

Último

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Abusing the Cloud for Fun and Profit

  • 1. 4/20/2013 Abusing the Cloud for Fun & Profit CoderFaire Atlanta Alan Pinstein, Founder & CTO, TourBuzz http://www.tourbuzz.net http://www.showcaseIDX.com @apinstein apinstein@mac.com
  • 2. What is the cloud?
  • 3. What is the cloud?
  • 4. Utility Computing ✤ Bare Metal ✤ Dedicated Server ✤ VM/Shared Hosting ✤ SaaS / Software-as-a-Service ✤ PaaS / Platform-as-a-Service ?
  • 5. Know your place in the Stack ✤ Heroku vs EC2
  • 6. Know your place in the Stack ✤ Heroku vs EC2 ✤ Don’t try to devops your sysadmin if you aren’t a sysadmin
  • 7. Know your place in the Stack ✤ Heroku vs EC2 ✤ Don’t try to devops your sysadmin if you aren’t a sysadmin ✤ Move down the stack only as soon as needed
  • 9. Monetary Considerations ✤ No up-front capital costs http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
  • 10. Monetary Considerations ✤ No up-front capital costs ✤ But, more expensive cost per unit-of-work http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
  • 11. Monetary Considerations ✤ No up-front capital costs ✤ But, more expensive cost per unit-of-work ✤ Matches Cost To Usage, not Capacity http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
  • 12. Monetary Considerations ✤ No up-front capital costs ✤ But, more expensive cost per unit-of-work ✤ Matches Cost To Usage, not Capacity ✤ Lots of things are metered that you aren’t used to - “what gets measured gets managed” http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
  • 13. Monetary Considerations ✤ No up-front capital costs ✤ But, more expensive cost per unit-of-work ✤ Matches Cost To Usage, not Capacity ✤ Lots of things are metered that you aren’t used to - “what gets measured gets managed” ✤ Potential lower TCO http://readwrite.com/2011/01/02/how-to-save-money-by-migrating
  • 14. FreeTier FTW ✤ Heroku: 1 free web worker https://www.heroku.com/pricing ✤ Mandrill: SMTP SaaS up to 12k/mo http://mandrill.com/pricing/ ✤ AWS: Free Tier http://aws.amazon.com/free/
  • 15. You cannot do this on your own.
  • 16. Performance Characteristics ✤ You must understand your app’s performance characteristics
  • 17. Performance Characteristics ✤ You must understand your app’s performance characteristics ✤ You must understand the performance characteristics of your cloud resource
  • 18. Performance Characteristics ✤ You must understand your app’s performance characteristics ✤ You must understand the performance characteristics of your cloud resource ✤ If they don’t match, and you have problems... I TOLD YOU SO.
  • 20. Opaque stack: performance tuning is hard ✤ Used to dedicated hardware? Get ready for shared VM performance volatility!
  • 21. Opaque stack: performance tuning is hard ✤ Used to dedicated hardware? Get ready for shared VM performance volatility! ✤ No idea what resource limits you’re given
  • 22. Opaque stack: performance tuning is hard ✤ Used to dedicated hardware? Get ready for shared VM performance volatility! ✤ No idea what resource limits you’re given ✤ Often support is hard to get or cagy about how stuff works
  • 23. Opaque stack: performance tuning is hard ✤ Used to dedicated hardware? Get ready for shared VM performance volatility! ✤ No idea what resource limits you’re given ✤ Often support is hard to get or cagy about how stuff works ✤ Documentation is typically not very detailed
  • 24. Opaque stack: performance tuning is hard ✤ Used to dedicated hardware? Get ready for shared VM performance volatility! ✤ No idea what resource limits you’re given ✤ Often support is hard to get or cagy about how stuff works ✤ Documentation is typically not very detailed ✤ See: RapGenius v Heroku
  • 25. ✤ September 18th: Dedicated (Xen) to AWS/EC2 ✤ December 10th: m1.xlarge > c1.medium ✤ March 3rd: Offload image processing to autoscaling Heroku app
  • 27. Should it AutoScale? ✤ Volatile load (minutes/hours/days)
  • 28. Should it AutoScale? ✤ Volatile load (minutes/hours/days) ✤ Volatile load (months/years)
  • 29. Should it AutoScale? ✤ Volatile load (minutes/hours/days) ✤ Volatile load (months/years) ✤ Scaling up vs Scaling down
  • 30. Should it AutoScale? ✤ Volatile load (minutes/hours/days) ✤ Volatile load (months/years) ✤ Scaling up vs Scaling down ✤ Cost
  • 31. Should it AutoScale? ✤ Volatile load (minutes/hours/days) ✤ Volatile load (months/years) ✤ Scaling up vs Scaling down ✤ Cost ✤ Performance
  • 33. Will it AutoScale? ✤ Decouple independent processes
  • 34. Will it AutoScale? ✤ Decouple independent processes ✤ Inter-app communication must be robust Design for Failure, and Nothing will Fail.
  • 35. Using the Cloud Successfully means Changing the way you build apps
  • 36. Using the Cloud Successfully means Changing the way you build apps ✤ Automate everything. You will start from scratch frequently.
  • 37. Using the Cloud Successfully means Changing the way you build apps ✤ Automate everything. You will start from scratch frequently. ✤ DBA, sysadmin. Implies people doing manual work.
  • 38. Using the Cloud Successfully means Changing the way you build apps ✤ Automate everything. You will start from scratch frequently. ✤ DBA, sysadmin. Implies people doing manual work. ✤ DEVOPS is sustainable, but requires expertise.
  • 39. Using the Cloud Successfully means Changing the way you build apps ✤ Automate everything. You will start from scratch frequently. ✤ DBA, sysadmin. Implies people doing manual work. ✤ DEVOPS is sustainable, but requires expertise. ✤ Programmable infrastructure
  • 40. Using the Cloud Successfully means Changing the way you build apps ✤ Automate everything. You will start from scratch frequently. ✤ DBA, sysadmin. Implies people doing manual work. ✤ DEVOPS is sustainable, but requires expertise. ✤ Programmable infrastructure ✤ Not just for the data center (vagrant) ** go to Nic’s talk later today **
  • 41. Using the Cloud Successfully means Changing the way you build apps ✤ Automate everything. You will start from scratch frequently. ✤ DBA, sysadmin. Implies people doing manual work. ✤ DEVOPS is sustainable, but requires expertise. ✤ Programmable infrastructure ✤ Not just for the data center (vagrant) ** go to Nic’s talk later today ** ✤ Automation is FREEDOM.
  • 42. Using the Cloud Successfully means Changing the way you build apps ✤ Automate everything. You will start from scratch frequently. ✤ DBA, sysadmin. Implies people doing manual work. ✤ DEVOPS is sustainable, but requires expertise. ✤ Programmable infrastructure ✤ Not just for the data center (vagrant) ** go to Nic’s talk later today ** ✤ Automation is FREEDOM. ✤ From vendor lock-in, employee turnover, cost of starting from scratch
  • 43. Tales from the cloud...
  • 45. Arg. ✤ CDN --> many reports of serving partial content. x1000
  • 46. Arg. ✤ CDN --> many reports of serving partial content. ✤ Debugging real problems with vendors is hard. x1000
  • 47. Arg. ✤ CDN --> many reports of serving partial content. ✤ Debugging real problems with vendors is hard. ✤ We had to revert. x1000
  • 51. WTF. $ heroku ps:scale workers=20 $ heroku ps:scale workers=10
  • 52. WTF. $ heroku ps:scale workers=20 $ heroku ps:scale workers=10
  • 53. WTF. $ heroku ps:scale workers=20 $ heroku ps:scale workers=10
  • 54. WTF. $ heroku ps:scale workers=20 $ heroku ps:scale workers=10 #fail
  • 55. WTF! # mac laptop ~ $ time cat /dev/random | head -c 10000K > /dev/ null real 1.03s user 0.00s sys 1.01s
  • 56. WTF! # heroku ~ $ time cat /dev/random | head -c 100 > /dev/null real 0m8.430s user 0m0.020s sys 0m0.000s # mac laptop ~ $ time cat /dev/random | head -c 10000K > /dev/ null real 1.03s user 0.00s sys 1.01s
  • 57. WTF! # heroku ~ $ time cat /dev/random | head -c 100 > /dev/null real 0m8.430s user 0m0.020s sys 0m0.000s # mac laptop ~ $ time cat /dev/random | head -c 10000K > /dev/ null real 1.03s user 0.00s sys 1.01s ✤ Heroku has very little entropy ✤ Caused sleep & usleep to be “lazy”; use nanosleep instead.
  • 58. WTF?! $ s3cmd put file.jpg s3://mybucket/file.jpg => 200 OK $ curl http://mybucket/file.jpg => 404 file not found $ sleep 5 && curl http://mybucket/file.jpg => 200 OK Eventually consistent....
  • 59. Stuff that went right ✤ Increased application performance ✤ Sleep better at night ✤ Save a lot of money ✤ Clear path for scaling as we grow that should avoid hair-on-fire emergencies ✤ FREEDOM: options and flexibility
  • 60. Plan your trip in the cloud ✤ “Design for failure, and nothing will fail”
  • 61. Plan your trip in the cloud ✤ “Design for failure, and nothing will fail” ✤ Choose vendors carefully
  • 62. Plan your trip in the cloud ✤ “Design for failure, and nothing will fail” ✤ Choose vendors carefully ✤ Expectations - from your team and vendors
  • 63. Plan your trip in the cloud ✤ “Design for failure, and nothing will fail” ✤ Choose vendors carefully ✤ Expectations - from your team and vendors ✤ Architecture
  • 64. Plan your trip in the cloud ✤ “Design for failure, and nothing will fail” ✤ Choose vendors carefully ✤ Expectations - from your team and vendors ✤ Architecture ✤ Contingency plans
  • 66. Q & A Alan Pinstein @apinstein apinstein@mac.com http://www.tourbuzz.net http://www.showcaseIDX.com