SlideShare a Scribd company logo
The Cloud is Broken
Those who ignore history are doomed
to repeat it
Edgar Román
emroman@pbs.org
March 3rd, 2015
DC Python Meetup
Caveats, Disclaimer, etc
• These are my opinions
• I am not yet omniscient so my knowledge of
tools mentioned may be inaccurate
• We’re really talking about Cloud Orchestration
• For moderate to complex environments (my blog
doesn’t count)
– Beyond web app / db
Our Architecture – V1
• Web App tier
– Runs code from git repo
• DB Master with slaves
– Hopefully managed by DDL in repo (i.e.
Django Migrations)
• Memcache/Redis layer
– Simple and self-configuring
• Celery Queue
– Asynchronous jobs, persistent queue
• Job worker pool
And more…
• Web App tier
– Lives in Auto-Scaling group
– Allows inbound tcp connections on 80/443 via load
balancer
• DB Master with slaves
– Only one inbound tcp port allowed
– Defined set of network connection for replication
• Memcache/Redis layer
– Restricted access to this from Web Apps only
• Celery Queue
– Web App can queue jobs, works can pop
• Job worker pool
– No inbound access at all!
Then we evolve
• V2
– Adds ElasticSearch tier
• V3
– Adds nightly Hadoop batch
Add some environments…
• Production, Staging, QA
• Then the devs want a local copy to work on
The challenge
• Production is on v1
• V2 is in QA
• Devs working on V3
And I need to manage them all quickly and easily
Philosophy Shift
• Olden days
– Used Visio to track changes to the physical
hardware
• Now
– Use tools to track multiple environments or
tiers in the cloud now
• Why not
– Create the entire architecture as needed,
preconfigured, and on-demand
If you create a single virtual entity in a
cloud without a script, it is like writing a
perl script on a server somewhere
without telling anyone
We’ve learned so much from software
development,
why can’t we use this knowledge for
cloud orchestration and management?
Modules / Decomposition
Versioning
Code Reuse / DRY
Abstraction
Compilations / Build Workflow
Modules / Decomposition
• We know from software:
– Grouping makes sense
– Helps organize logical sets of things
• What we have in cloud management:
– Default view of chef management consoles is
a flat list of nodes
– Vast majority of tutorials and examples put all
hosts in a single network
– AWS EC2, Chef, Ansible supports optional
groups by tagging
• Conclusion: Poor holistic support
Versioning
• We know from software:
– Versioning is critical for tracking features and
bugs
– Allows recovery from errors, mistakes, and
disasters
– Versioning important not just at file level, but
whole project
• What we have in cloud management:
– Ansible, Chef only version individual
playbooks/cookbooks, not
projects/environments/collections
– Restoring a known state for cloud project is a
manual process
• Conclusion: Poor holistic support
Code Reuse / DRY
• We know from software:
– Repeating yourself causes bloat and often errors
when refactoring / updating code
– Updates in normalized code are easier and well
understood
• What we have in cloud management:
– Minimal support for extra variables in
Ansible/Chef/Cloudformation per class of server
– Global variables for credentials
– Generally would need to cut/paste extra variables
in multiple places
• Conclusion: We’re getting there
Abstraction
• What we know from software:
– Using abstractions like file i/o allow use on
multiple platforms
• What we have in cloud management:
– Mostly tools support multiple clouds (AWS,
Rackspace, etc)
– OpenStack is closest analogy to cloud
abstraction
• Conclusion: Very Promising
Compilation / Workflow
• What we know from software:
– Compilation of code enables easy transport
and packaging
– Enables DRY capabilities
• What we have in cloud management:
– Workflow support is generally supported, but
not necessarily holistically or with versioning
of workflow support
• Conclusion: Not Bad
So…we should extend tools…
• to deal with not just servers, but networks and
other entities (abstraction)
• to manage collections of these entities
(modules)
• to manage versioning of these collections
(versioning)
• to allow configuration of these versioned
collections per environments (dry)
• to allow deployment (workflow) of these
versioned collections with configurations to
specific environments
Keep an eye on…
• Apache CloudStack
– http://cloudstack.apache.org/
• Cloudify
– http://getcloudify.org/
Questions?
Oh yeah, we’re hiring…

More Related Content

What's hot (20)

PPT
Web Application Optimization Techniques
takinbo
 
PDF
A vision for ejabberd - ejabberd SF Meetup
Mickaël Rémond
 
PDF
Node.js to the rescue
Marko Heijnen
 
PDF
XMPP Academy #1
Mickaël Rémond
 
PDF
A Practical Introduction to Functions-as-a-Service
Valeri Karpov
 
PDF
Velocity - NxtGen Oxford
Phil Pursglove
 
PPTX
AMF Flash and .NET
Yaniv Uriel
 
PPT
Ria Applications And PHP
John Coggeshall
 
PDF
Beyond Apache: Faster Web Servers
webhostingguy
 
PPTX
Aws 12 Month Free Tier for Web Designers and Developers
Dylan Burris
 
PDF
A Gentle Introduction to Functions-as-a-Service
Valeri Karpov
 
PPT
Intro To Alfresco Part 3
Jeff Potts
 
PPTX
Scaling High Traffic Web Applications
Achievers Tech
 
PPT
Cache Optimization with Akamai
Blake Crosby
 
PPTX
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Sergio Compean
 
PPT
Roll your own FOSS cloud hosting
Russell Searle
 
PDF
Whats next in templating
Filip Bruun Bech-Larsen
 
PDF
Store
ESUG
 
PPTX
The Next Step in Responsive - RESS
Anthony Laurence
 
PDF
Working in harmony
Edmund Turbin
 
Web Application Optimization Techniques
takinbo
 
A vision for ejabberd - ejabberd SF Meetup
Mickaël Rémond
 
Node.js to the rescue
Marko Heijnen
 
XMPP Academy #1
Mickaël Rémond
 
A Practical Introduction to Functions-as-a-Service
Valeri Karpov
 
Velocity - NxtGen Oxford
Phil Pursglove
 
AMF Flash and .NET
Yaniv Uriel
 
Ria Applications And PHP
John Coggeshall
 
Beyond Apache: Faster Web Servers
webhostingguy
 
Aws 12 Month Free Tier for Web Designers and Developers
Dylan Burris
 
A Gentle Introduction to Functions-as-a-Service
Valeri Karpov
 
Intro To Alfresco Part 3
Jeff Potts
 
Scaling High Traffic Web Applications
Achievers Tech
 
Cache Optimization with Akamai
Blake Crosby
 
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Sergio Compean
 
Roll your own FOSS cloud hosting
Russell Searle
 
Whats next in templating
Filip Bruun Bech-Larsen
 
Store
ESUG
 
The Next Step in Responsive - RESS
Anthony Laurence
 
Working in harmony
Edmund Turbin
 

Similar to Cloud Orchestration is Broken (20)

PPTX
Midwest PHP - Scaling Magento
Mathew Beane
 
PPTX
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
Getting value from IoT, Integration and Data Analytics
 
PDF
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
 
PDF
Spring in the Cloud
Eberhard Wolff
 
PDF
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
 
PPTX
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Ido Flatow
 
PPTX
Cloud patterns
Nicolas De Loof
 
PDF
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
PDF
Journey towards serverless infrastructure
Ville Seppänen
 
PPTX
My personal story from azure it pro to azure dev ops
nj-azure
 
PPT
Succeding with the Apache SOA stack
Johan Edstrom
 
PPTX
DevOps, A brief introduction to Vagrant & Ansible
Arnaud LEMAIRE
 
PPTX
Cloudify workshop at CCCEU 2014
Uri Cohen
 
PPT
PowerPoint Presentation
lalitjangra9
 
PDF
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
Kellyn Pot'Vin-Gorman
 
PDF
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
ShapeBlue
 
PPTX
Picnic Software - Developing a flexible and scalable application
Nick Josevski
 
PPT
SynapseIndia drupal presentation on drupal info
Synapseindiappsdevelopment
 
PPTX
Profiling and Tuning a Web Application - The Dirty Details
Achievers Tech
 
PPTX
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Lohika_Odessa_TechTalks
 
Midwest PHP - Scaling Magento
Mathew Beane
 
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
Getting value from IoT, Integration and Data Analytics
 
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
 
Spring in the Cloud
Eberhard Wolff
 
12-Step Program for Scaling Web Applications on PostgreSQL
Konstantin Gredeskoul
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Ido Flatow
 
Cloud patterns
Nicolas De Loof
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
Journey towards serverless infrastructure
Ville Seppänen
 
My personal story from azure it pro to azure dev ops
nj-azure
 
Succeding with the Apache SOA stack
Johan Edstrom
 
DevOps, A brief introduction to Vagrant & Ansible
Arnaud LEMAIRE
 
Cloudify workshop at CCCEU 2014
Uri Cohen
 
PowerPoint Presentation
lalitjangra9
 
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
Kellyn Pot'Vin-Gorman
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
ShapeBlue
 
Picnic Software - Developing a flexible and scalable application
Nick Josevski
 
SynapseIndia drupal presentation on drupal info
Synapseindiappsdevelopment
 
Profiling and Tuning a Web Application - The Dirty Details
Achievers Tech
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Lohika_Odessa_TechTalks
 
Ad

More from Public Broadcasting Service (9)

PPT
Simplified Localization+ Presentation
Public Broadcasting Service
 
PPTX
PBS Localization+ API Webinar
Public Broadcasting Service
 
PPT
Mobile Presentation at PBS TECH CON 2011
Public Broadcasting Service
 
PPTX
PBS Presentation at AWS Summit 2012
Public Broadcasting Service
 
PPT
I've Got a Key to Your API, Now What? (Joint PBS and NPR API Presentation Giv...
Public Broadcasting Service
 
PPTX
Architecture at PBS
Public Broadcasting Service
 
PPTX
SQL Injection Defense in Python
Public Broadcasting Service
 
PDF
PBS Tech Con 2011 API Workshop
Public Broadcasting Service
 
PPT
Fall2010 producer summit_openpbs_final
Public Broadcasting Service
 
Simplified Localization+ Presentation
Public Broadcasting Service
 
PBS Localization+ API Webinar
Public Broadcasting Service
 
Mobile Presentation at PBS TECH CON 2011
Public Broadcasting Service
 
PBS Presentation at AWS Summit 2012
Public Broadcasting Service
 
I've Got a Key to Your API, Now What? (Joint PBS and NPR API Presentation Giv...
Public Broadcasting Service
 
Architecture at PBS
Public Broadcasting Service
 
SQL Injection Defense in Python
Public Broadcasting Service
 
PBS Tech Con 2011 API Workshop
Public Broadcasting Service
 
Fall2010 producer summit_openpbs_final
Public Broadcasting Service
 
Ad

Recently uploaded (20)

PPTX
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
PDF
GEO Strategy 2025: Complete Presentation Deck for AI-Powered Customer Acquisi...
Zam Man
 
PPTX
Google SGE SEO: 5 Critical Changes That Could Wreck Your Rankings in 2025
Reversed Out Creative
 
PDF
LOGENVIDAD DANNYFGRETRRTTRRRTRRRRRRRRR.pdf
juan456ytpro
 
PDF
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
PPTX
The Monk and the Sadhurr and the story of how
BeshoyGirgis2
 
PPTX
Artificial-Intelligence-in-Daily-Life (2).pptx
nidhigoswami335
 
PPT
1965 INDO PAK WAR which Pak will never forget.ppt
sanjaychief112
 
DOCX
An_Operating_System by chidi kingsley wo
kingsleywokocha4
 
PPTX
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
PPTX
B2B_Ecommerce_Internship_Simranpreet.pptx
LipakshiJindal
 
PPTX
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
PDF
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
PPTX
dns domain name system history work.pptx
MUHAMMADKAVISHSHABAN
 
PDF
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 
PPT
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 
PDF
How Much GB RAM Do You Need for Coding? 5 Powerful Reasons 8GB Is More Than E...
freeshopbudget
 
PPTX
MSadfadsfafdadfccadradfT_Presentation.pptx
pahalaedward2
 
PPTX
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
PDF
The AI Trust Gap: Consumer Attitudes to AI-Generated Content
Exploding Topics
 
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
GEO Strategy 2025: Complete Presentation Deck for AI-Powered Customer Acquisi...
Zam Man
 
Google SGE SEO: 5 Critical Changes That Could Wreck Your Rankings in 2025
Reversed Out Creative
 
LOGENVIDAD DANNYFGRETRRTTRRRTRRRRRRRRR.pdf
juan456ytpro
 
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
The Monk and the Sadhurr and the story of how
BeshoyGirgis2
 
Artificial-Intelligence-in-Daily-Life (2).pptx
nidhigoswami335
 
1965 INDO PAK WAR which Pak will never forget.ppt
sanjaychief112
 
An_Operating_System by chidi kingsley wo
kingsleywokocha4
 
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
B2B_Ecommerce_Internship_Simranpreet.pptx
LipakshiJindal
 
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
dns domain name system history work.pptx
MUHAMMADKAVISHSHABAN
 
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 
How Much GB RAM Do You Need for Coding? 5 Powerful Reasons 8GB Is More Than E...
freeshopbudget
 
MSadfadsfafdadfccadradfT_Presentation.pptx
pahalaedward2
 
Pengenalan perangkat Jaringan komputer pada teknik jaringan komputer dan tele...
Prayudha3
 
The AI Trust Gap: Consumer Attitudes to AI-Generated Content
Exploding Topics
 

Cloud Orchestration is Broken

  • 1. The Cloud is Broken Those who ignore history are doomed to repeat it Edgar Román [email protected] March 3rd, 2015 DC Python Meetup
  • 2. Caveats, Disclaimer, etc • These are my opinions • I am not yet omniscient so my knowledge of tools mentioned may be inaccurate • We’re really talking about Cloud Orchestration • For moderate to complex environments (my blog doesn’t count) – Beyond web app / db
  • 3. Our Architecture – V1 • Web App tier – Runs code from git repo • DB Master with slaves – Hopefully managed by DDL in repo (i.e. Django Migrations) • Memcache/Redis layer – Simple and self-configuring • Celery Queue – Asynchronous jobs, persistent queue • Job worker pool
  • 4. And more… • Web App tier – Lives in Auto-Scaling group – Allows inbound tcp connections on 80/443 via load balancer • DB Master with slaves – Only one inbound tcp port allowed – Defined set of network connection for replication • Memcache/Redis layer – Restricted access to this from Web Apps only • Celery Queue – Web App can queue jobs, works can pop • Job worker pool – No inbound access at all!
  • 5. Then we evolve • V2 – Adds ElasticSearch tier • V3 – Adds nightly Hadoop batch
  • 6. Add some environments… • Production, Staging, QA • Then the devs want a local copy to work on
  • 7. The challenge • Production is on v1 • V2 is in QA • Devs working on V3 And I need to manage them all quickly and easily
  • 8. Philosophy Shift • Olden days – Used Visio to track changes to the physical hardware • Now – Use tools to track multiple environments or tiers in the cloud now • Why not – Create the entire architecture as needed, preconfigured, and on-demand
  • 9. If you create a single virtual entity in a cloud without a script, it is like writing a perl script on a server somewhere without telling anyone
  • 10. We’ve learned so much from software development, why can’t we use this knowledge for cloud orchestration and management?
  • 11. Modules / Decomposition Versioning Code Reuse / DRY Abstraction Compilations / Build Workflow
  • 12. Modules / Decomposition • We know from software: – Grouping makes sense – Helps organize logical sets of things • What we have in cloud management: – Default view of chef management consoles is a flat list of nodes – Vast majority of tutorials and examples put all hosts in a single network – AWS EC2, Chef, Ansible supports optional groups by tagging • Conclusion: Poor holistic support
  • 13. Versioning • We know from software: – Versioning is critical for tracking features and bugs – Allows recovery from errors, mistakes, and disasters – Versioning important not just at file level, but whole project • What we have in cloud management: – Ansible, Chef only version individual playbooks/cookbooks, not projects/environments/collections – Restoring a known state for cloud project is a manual process • Conclusion: Poor holistic support
  • 14. Code Reuse / DRY • We know from software: – Repeating yourself causes bloat and often errors when refactoring / updating code – Updates in normalized code are easier and well understood • What we have in cloud management: – Minimal support for extra variables in Ansible/Chef/Cloudformation per class of server – Global variables for credentials – Generally would need to cut/paste extra variables in multiple places • Conclusion: We’re getting there
  • 15. Abstraction • What we know from software: – Using abstractions like file i/o allow use on multiple platforms • What we have in cloud management: – Mostly tools support multiple clouds (AWS, Rackspace, etc) – OpenStack is closest analogy to cloud abstraction • Conclusion: Very Promising
  • 16. Compilation / Workflow • What we know from software: – Compilation of code enables easy transport and packaging – Enables DRY capabilities • What we have in cloud management: – Workflow support is generally supported, but not necessarily holistically or with versioning of workflow support • Conclusion: Not Bad
  • 17. So…we should extend tools… • to deal with not just servers, but networks and other entities (abstraction) • to manage collections of these entities (modules) • to manage versioning of these collections (versioning) • to allow configuration of these versioned collections per environments (dry) • to allow deployment (workflow) of these versioned collections with configurations to specific environments
  • 18. Keep an eye on… • Apache CloudStack – http://cloudstack.apache.org/ • Cloudify – http://getcloudify.org/

Editor's Notes

  • #9: The software analogy is: we write code and then compile it. But do we ever edit the compiled binary? That’s like manually editing your cloud infrastructure
  • #13: Starting to see a little bit with Chef’s environments