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

PPTX
SCCI'15 - Devology - Session 6 - Servers and PHP
PPTX
ReactPHP + Symfony
PPTX
Website design & developemet
PPTX
Lucee writing your own debugging template
PPTX
Lucee writing your own debugging template
PPTX
Caching strategies with lucee
PPTX
Moving to the Cloud: AWS, Zend, RightScale
SCCI'15 - Devology - Session 6 - Servers and PHP
ReactPHP + Symfony
Website design & developemet
Lucee writing your own debugging template
Lucee writing your own debugging template
Caching strategies with lucee
Moving to the Cloud: AWS, Zend, RightScale

What's hot (20)

PPT
Web Application Optimization Techniques
PDF
A vision for ejabberd - ejabberd SF Meetup
PDF
Node.js to the rescue
PDF
XMPP Academy #1
PDF
A Practical Introduction to Functions-as-a-Service
PDF
Velocity - NxtGen Oxford
PPTX
AMF Flash and .NET
PPT
Ria Applications And PHP
PDF
Beyond Apache: Faster Web Servers
PPTX
Aws 12 Month Free Tier for Web Designers and Developers
PDF
A Gentle Introduction to Functions-as-a-Service
PPT
Intro To Alfresco Part 3
PPTX
Scaling High Traffic Web Applications
PPT
Cache Optimization with Akamai
PPTX
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
PPT
Roll your own FOSS cloud hosting
PDF
Whats next in templating
PDF
Store
PPTX
The Next Step in Responsive - RESS
PDF
Working in harmony
Web Application Optimization Techniques
A vision for ejabberd - ejabberd SF Meetup
Node.js to the rescue
XMPP Academy #1
A Practical Introduction to Functions-as-a-Service
Velocity - NxtGen Oxford
AMF Flash and .NET
Ria Applications And PHP
Beyond Apache: Faster Web Servers
Aws 12 Month Free Tier for Web Designers and Developers
A Gentle Introduction to Functions-as-a-Service
Intro To Alfresco Part 3
Scaling High Traffic Web Applications
Cache Optimization with Akamai
Discover the Capabilities of Windows Azure Service Bus to Power Agile Busines...
Roll your own FOSS cloud hosting
Whats next in templating
Store
The Next Step in Responsive - RESS
Working in harmony
Ad

Similar to Cloud Orchestration is Broken (20)

PPTX
Midwest PHP - Scaling Magento
PPTX
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
PDF
Cloudy in Indonesia: Java and Cloud
PDF
Spring in the Cloud
PDF
12-Step Program for Scaling Web Applications on PostgreSQL
PPTX
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
PPTX
Cloud patterns
PDF
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
PDF
Journey towards serverless infrastructure
PPTX
My personal story from azure it pro to azure dev ops
PPT
Succeding with the Apache SOA stack
PPTX
DevOps, A brief introduction to Vagrant & Ansible
PPTX
Cloudify workshop at CCCEU 2014
PPT
PowerPoint Presentation
PDF
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
PDF
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
PPTX
Picnic Software - Developing a flexible and scalable application
PPT
SynapseIndia drupal presentation on drupal info
PPTX
Profiling and Tuning a Web Application - The Dirty Details
PPTX
Tech talk microservices debugging
Midwest PHP - Scaling Magento
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
Cloudy in Indonesia: Java and Cloud
Spring in the Cloud
12-Step Program for Scaling Web Applications on PostgreSQL
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Cloud patterns
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Journey towards serverless infrastructure
My personal story from azure it pro to azure dev ops
Succeding with the Apache SOA stack
DevOps, A brief introduction to Vagrant & Ansible
Cloudify workshop at CCCEU 2014
PowerPoint Presentation
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Picnic Software - Developing a flexible and scalable application
SynapseIndia drupal presentation on drupal info
Profiling and Tuning a Web Application - The Dirty Details
Tech talk microservices debugging
Ad

More from Public Broadcasting Service (9)

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

Recently uploaded (20)

PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
Testing WebRTC applications at scale.pdf
PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PPTX
international classification of diseases ICD-10 review PPT.pptx
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PPTX
SAP Ariba Sourcing PPT for learning material
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
PDF
Triggering QUIC, presented by Geoff Huston at IETF 123
PPTX
Internet___Basics___Styled_ presentation
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PPTX
artificial intelligence overview of it and more
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
Job_Card_System_Styled_lorem_ipsum_.pptx
INTERNET------BASICS-------UPDATED PPT PRESENTATION
Testing WebRTC applications at scale.pdf
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
international classification of diseases ICD-10 review PPT.pptx
Decoding a Decade: 10 Years of Applied CTI Discipline
Introuction about ICD -10 and ICD-11 PPT.pptx
SAP Ariba Sourcing PPT for learning material
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
Triggering QUIC, presented by Geoff Huston at IETF 123
Internet___Basics___Styled_ presentation
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
artificial intelligence overview of it and more
An introduction to the IFRS (ISSB) Stndards.pdf
Design_with_Watersergyerge45hrbgre4top (1).ppt
522797556-Unit-2-Temperature-measurement-1-1.pptx
Cloud-Scale Log Monitoring _ Datadog.pdf

Cloud Orchestration is Broken

  • 1. 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
  • 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