SlideShare a Scribd company logo
Cisco Confidential© 2010 Cisco and/or its affiliates. All rights reserved. 1
3 Years of Puppet at Cisco:
The Secrets to Our Success
PuppetConf 2013
Keith Chambers & Ryan Uber
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2
•  Worked at Cisco for 13 years
-  7 years in Technical Assistance Center (support)
-  2 years in Product Marketing
-  4 years as WebEx Social Platform Architect
•  Passionate about technology
•  Passionate about people
•  Always looking to raise the bar
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 3
•  Worked at Cisco for 3 years
-  Software Engineer
-  Has played a critical role in our success
•  Work at a managed host provider for 5 years
-  Designed and implemented most of the infrastructure
-  Supported everything he built
•  Puppet user for 6 years
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 4
•  Overview
•  Experience
•  Plumbing
•  History & Evolution
•  Secrets to our success
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 6
•  Enterprise Social Media
-  Create content
-  Communities
-  Follow
-  Like
-  Activity feed
-  Recommendations
•  On-premise deployment
model
•  Later added cloud hosted
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 7
Persistence
•  Traditional tiered web service
•  Large number of services
-  App Server
-  Worker
-  OpenFire
-  RabbitMQ
-  Memcached
-  MongoDB
-  Oracle
-  Solr
Caching
Application
Web Server
Worker
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 8
•  Virtual appliance delivery model
•  Roles based architecture
-  1 service per VM
-  25 VM deployments are
common
•  Director provides system wide:
-  Configuration
-  Software maintenance
-  Diagnostics and logging
-  Health monitoring
•  Everything works out of the box
Oracle
OS
MongoDB
OS
Solr
OS
Worker
OS
Memcached
OS
App
OS
RabbitMQ
OS
OpenFire
OS
Virtualized Compute & Storage
Director
OS
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10
1.  Customer downloads a single OVA from Cisco
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 11
1.  Customer downloads a single OVA from Cisco
2.  Customer deploys the Director VM from the OVA by selecting the
Director configuration option
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 12
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 13
1.  Customer downloads a single OVA from Cisco
2.  Customer deploys the Director VM from the OVA by selecting the
Director configuration option
3.  Customer configures Director VM network settings
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 14
1.  Customer downloads a single OVA from Cisco
2.  Customer deploys the Director VM from the OVA by selecting the
Director configuration option
3.  Customer configures Director VM network settings
4.  Customer browses to the Director UI and configures system settings
and defines the topology
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 15
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 16
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 17
1.  Customer downloads a single OVA from Cisco
2.  Customer deploys the Director VM from the OVA by selecting the
Director configuration option
3.  Customer configures Director VM network settings
4.  Customer browses to the Director UI and configures system settings
and defines the topology
5.  Customer deploy all VMs defined in the topology from the OVA by
selecting the appropriate configuration
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 18
1.  Customer downloads a single OVA from Cisco
2.  Customer deploys the Director VM from the OVA by selecting the
Director configuration option
3.  Customer configures Director VM network settings
4.  Customer browses to the Director UI and configures system settings
and defines the topology
5.  Customer deploy all VMs defined in the topology from the OVA by
selecting the appropriate configuration
•  System handles all other setup and configuration
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 19
1.  Customer download a single release image from file from Cisco
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 20
1.  Customer download a single release image from file from Cisco
2.  Customer uploads the release image to the Director
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 21
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 22
1.  Customer download a single release image from file from Cisco
2.  Customer uploads the release image to the Director
3.  Customer clicks upgrade
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 23
1.  Customer download a single release image from file from Cisco
2.  Customer uploads the release image to the Director
3.  Customer clicks upgrade
•  System handles the upgrade
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 24
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 25
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 26
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 27
OVF
OS
Bootstrap
Config
Network
Settings
Director FQDN
Glue Code
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 28
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 29
•  Package everything as an RPM
•  RPMs distributed from Director via
Yum
•  Controller is a Puppet Master
Director
OS
Analytics
Store
OS
Puppet
Master
Yum
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 30
•  Versioned build artifact containing:
-  All RPMs for all roles
-  All Puppet modules
•  Upgrade mechanics:
-  New image uploaded to Director
-  Old image unmounted and new
image mounted
-  Director calls Puppet run for all
hosts
-  On success the updated version
is stored in on VM file system
-  Salt used to fetch version
number from all VMs
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 31
Director
OS
Analytics
Store
QUAD OS
JSON Store
QUAD OS
RDBMS
Store
QUAD OS
Graph
Store
QUAD OS
Rsyslog
•  Rsyslog
-  High performance
-  Reliable
-  Part of CentOS 6
Rsyslogx Rsyslogx Rsyslogx Rsyslogx
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 32
Director
OS
Analytics
Store
OS
BSON
Store
OS
RDBMS
Store
OS
Social
Graph
OS
monit monit monit monit
Nagios
•  Nagios:
-  Reliable
-  Extremely flexible
-  Available in EPEL
•  Monit
-  Reliable
-  Flexible and extensible
-  Enables self healing
-  HTTP API
-  Available in EPEL
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 33
Director
OS
Analytics
Store
OS
BSON
Store
OS
RDBMS
Store
OS
Social
Graph
OS
Graphite
collectd collectd collectd collectd
•  Graphite:
-  Reliable
-  Extremely flexible
-  Available in EPEL
•  Collectd
-  Reliable
-  100+ plugins
-  Extensible
-  In EPEL
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 34
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 35
Phase 1
Mid 2010
•  20GB VM
•  CentOS 5
•  deployer.zip
•  Monitoring 1.0
•  100% proprietary
•  Time to market focused
•  No DevOps tooling
experience in the team
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 36
Phase 1
Mid 2010
•  20GB VM
•  CentOS 5
•  deployer.zip
•  Monitoring 1.0
•  100% proprietary
•  Time to market focused
•  No DevOps tooling
experience in the team
Phase 2
Early 2011
•  RPM + Yum
•  Puppet
•  Release Image
•  Reduce VM footprint
•  Major pushback on Puppet
•  Your team matters
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 37
Phase 1
Mid 2010
•  20GB VM
•  CentOS 5
•  deployer.zip
•  Monitoring 1.0
•  100% proprietary
•  Time to market focused
•  No DevOps tooling
experience in the team
Phase 2
Early 2011
•  RPM + Yum
•  Puppet
•  Release Image
•  Reduce VM footprint
•  Major pushback on Puppet
•  Your team matters
Phase 3
Mid 2011
•  Director REST API
•  OVF Properties
•  Unified Logging w/
Rsyslog + Scribe
•  Rsyslog was resisted due
to name association with
syslog
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 38
Phase 1
Mid 2010
•  20GB VM
•  CentOS 5
•  deployer.zip
•  Monitoring 1.0
•  100% proprietary
•  Time to market focused
•  No DevOps tooling
experience in the team
Phase 2
Early 2011
•  RPM + Yum
•  Puppet
•  Release Image
•  Reduce VM footprint
•  Major pushback on Puppet
•  Your team matters
Phase 3
Mid 2011
•  Director REST API
•  OVF Properties
•  Unified Logging w/
Rsyslog + Scribe
•  Rsyslog was resisted due
to name association with
syslog
Phase 4
Early 2012
•  CentOS 6 upgrade
•  Monit
•  Salt
•  Remove Scribe
•  Maintain fewer libraries
•  Further reduce VM footprint
•  Started replacing Monitoring 1.0
•  Salt proved buggy
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 39
Phase 1
Mid 2010
•  20GB VM
•  CentOS 5
•  deployer.zip
•  Monitoring 1.0
•  100% proprietary
•  Time to market focused
•  No DevOps tooling
experience in the team
Phase 2
Early 2011
•  RPM + Yum
•  Puppet
•  Release Image
•  Reduce VM footprint
•  Major pushback on Puppet
•  Your team matters
Phase 3
Mid 2011
•  Director REST API
•  OVF Properties
•  Unified Logging w/
Rsyslog + Scribe
•  Rsyslog was resisted due
to name association with
syslog
Phase 4
Early 2012
•  CentOS 6 upgrade
•  Monit
•  Salt
•  Remove Scribe
•  Maintain fewer libraries
•  Further reduce VM footprint
•  Started replacing Monitoring 1.0
•  Salt proved buggy
Phase 5
Late 2012
•  Replaced Monitoring 1.0 with
Nagios, Collectd, Graphite
•  Last minute decision to go with
Graphite
•  Puppet code spaghetti
•  VM tampering undercutting upgrade
reliability
•  Other Cisco groups want to reuse
our code
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 40
Phase 1
Mid 2010
•  20GB VM
•  CentOS 5
•  deployer.zip
•  Monitoring 1.0
•  100% proprietary
•  Time to market focused
•  No DevOps tooling
experience in the team
Phase 2
Early 2011
•  RPM + Yum
•  Puppet
•  Release Image
•  Reduce VM footprint
•  Major pushback on Puppet
•  Your team matters
Phase 3
Mid 2011
•  Director REST API
•  OVF Properties
•  Unified Logging w/
Rsyslog + Scribe
•  Rsyslog was resisted due
to name association with
syslog
Phase 4
Early 2012
•  CentOS 6 upgrade
•  Monit
•  Salt
•  Remove Scribe
•  Maintain fewer libraries
•  Further reduce VM footprint
•  Started replacing Monitoring 1.0
•  Salt proved buggy
Phase 5
Late 2012
•  Replaced Monitoring 1.0 with
Nagios, Collectd, Graphite
•  Last minute decision to go with
Graphite
•  Puppet code spaghetti
•  VM tampering undercutting upgrade
reliability
•  Other Cisco groups want to reuse
our code
Phase 6
Started 2012
•  Generic programmable
Controller
•  Deploy VMs via IaaS API
•  Orchestrate deploy and upgrade
with Fabric
•  Baked VM images
•  Hiera for module parameters
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 41
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 42
Keep it simple
•  80/20 rule
•  Build only what you need
•  What works is boring
Learn and adapt
•  Don’t fall in love
with what you’ve
built
Unix tool chain
pattern
•  Loosely couple with
best of bread tools
•  End-to-end
solutions lock you in
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 43
•  Excellent at configuration management
•  Bulletproof reliability
•  Long term investment protection
•  Vibrant community and ecosystem
•  Commitment to open source
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 44
•  Alex Honor of DTO Solutions and Simplify Ops
-  Insightful program leadership
-  Walking encyclopedia of proven patterns
-  Always there when I’m in a jam
© 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 45

More Related Content

PPTX
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
PDF
Cisco Automation with Puppet and onePK - PuppetConf 2013
PDF
Automating with NX-OS: Let's Get Started!
PPTX
Device Programmability with Cisco Plug-n-Play Solution
PDF
Configuration Management Tools on NX-OS
PPTX
OpenStack Enabling DevOps
PPTX
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
PPTX
UCS Management APIs A Technical Deep Dive
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Cisco Automation with Puppet and onePK - PuppetConf 2013
Automating with NX-OS: Let's Get Started!
Device Programmability with Cisco Plug-n-Play Solution
Configuration Management Tools on NX-OS
OpenStack Enabling DevOps
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
UCS Management APIs A Technical Deep Dive

What's hot (20)

PPTX
OpenStack and the Transformation of the Data Center - Lew Tucker
PDF
TechWiseTV Workshop: Catalyst Switching Programmability
PPTX
Rome 2017: Building advanced voice assistants and chat bots
PPTX
FIWARE Lab architecture, an open point to start the installation of a new region
PPTX
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
PDF
TechWiseTV Workshop: Digital Building Switches
PDF
Présentation cisco aci in action fundamentals - fcouderc - v6
PPTX
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
PPT
Chapter 2 overview
PDF
Ocs F5 Bigip Bestpractices
PDF
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
PPTX
Cisco Spark & Tropo API Workshop
PDF
How to build a Neutron Plugin (stadium edition)
PPTX
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
PPTX
Process for joining to the FIWARE Lab
PPTX
How to Build Advanced Voice Assistants and Chatbots
PDF
DevNetCreate - ACI and Kubernetes Integration
PDF
Accelerate the SDN with Intel ONP
PDF
NCS: NEtwork Control System Hands-on Labs
PPTX
Introduction to Beryllium release of OpenDaylight
OpenStack and the Transformation of the Data Center - Lew Tucker
TechWiseTV Workshop: Catalyst Switching Programmability
Rome 2017: Building advanced voice assistants and chat bots
FIWARE Lab architecture, an open point to start the installation of a new region
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
TechWiseTV Workshop: Digital Building Switches
Présentation cisco aci in action fundamentals - fcouderc - v6
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Chapter 2 overview
Ocs F5 Bigip Bestpractices
PLNOG16: Automatyzacja kreaowania usług operatorskich w separacji od rodzaju ...
Cisco Spark & Tropo API Workshop
How to build a Neutron Plugin (stadium edition)
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
Process for joining to the FIWARE Lab
How to Build Advanced Voice Assistants and Chatbots
DevNetCreate - ACI and Kubernetes Integration
Accelerate the SDN with Intel ONP
NCS: NEtwork Control System Hands-on Labs
Introduction to Beryllium release of OpenDaylight
Ad

Similar to 3 Years of Puppet at Cisco: The Secrets to Our Success - PuppetConf 2013 (20)

PPTX
Considerations for Operating An OpenStack Cloud
PPTX
Foreman-and-Puppet-for-Openstack-Audo-Deployment
PPTX
Puppet for Production in WebEx - PuppetConf 2013
PPTX
Considerations for Operating an OpenStack Cloud
PDF
Presentation cloupia product overview and demo
PDF
Presentation cloud orchestration solution overview
PDF
Cisco UCS Director for the Public Sector
PDF
Presentation ciac
PDF
Presentation deploying cloud based services
PDF
Presentation cloud, the whole offer
PPTX
Cisco Evolving virtual switching to applications & cloud
PPTX
Cisco cloupia bdm presentation
PPTX
TechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
PPTX
Cisco UCS - CA World 2013
PPTX
Cisco Security portfolio update
PDF
OpenStack Benelux Conference 2014 | Openstack Iaas and the Future of Applicat...
PDF
Cisco ONE Enterprise Cloud (UCSD) Hands-on Lab
PDF
Cisco Connect Ottawa 2018 dev net
PDF
Puppet devops wdec
PDF
Cisco Data Center Orchestration Solution
Considerations for Operating An OpenStack Cloud
Foreman-and-Puppet-for-Openstack-Audo-Deployment
Puppet for Production in WebEx - PuppetConf 2013
Considerations for Operating an OpenStack Cloud
Presentation cloupia product overview and demo
Presentation cloud orchestration solution overview
Cisco UCS Director for the Public Sector
Presentation ciac
Presentation deploying cloud based services
Presentation cloud, the whole offer
Cisco Evolving virtual switching to applications & cloud
Cisco cloupia bdm presentation
TechWiseTV Workshop: Open NX-OS and Devops with Puppet Labs
Cisco UCS - CA World 2013
Cisco Security portfolio update
OpenStack Benelux Conference 2014 | Openstack Iaas and the Future of Applicat...
Cisco ONE Enterprise Cloud (UCSD) Hands-on Lab
Cisco Connect Ottawa 2018 dev net
Puppet devops wdec
Cisco Data Center Orchestration Solution
Ad

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
PPTX
The Evolution of Puppet: Key Changes and Modernization Tips
PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
PPTX
Customizing Reporting with the Puppet Report Processor
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
PDF
Puppet camp2021 testing modules and controlrepo
PPTX
Puppetcamp r10kyaml
PDF
2021 04-15 operational verification (with notes)
PPTX
Puppet camp vscode
PDF
Modules of the twenties
PDF
Applying Roles and Profiles method to compliance code
PPTX
KGI compliance as-code approach
PDF
Enforce compliance policy with model-driven automation
PDF
Keynote: Puppet camp compliance
PPTX
Automating it management with Puppet + ServiceNow
PPTX
Puppet: The best way to harden Windows
PPTX
Simplified Patch Management with Puppet - Oct. 2020
Puppet Community Day: Planning the Future Together
The Evolution of Puppet: Key Changes and Modernization Tips
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Bolt Dynamic Inventory: Making Puppet Easier
Customizing Reporting with the Puppet Report Processor
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet camp2021 testing modules and controlrepo
Puppetcamp r10kyaml
2021 04-15 operational verification (with notes)
Puppet camp vscode
Modules of the twenties
Applying Roles and Profiles method to compliance code
KGI compliance as-code approach
Enforce compliance policy with model-driven automation
Keynote: Puppet camp compliance
Automating it management with Puppet + ServiceNow
Puppet: The best way to harden Windows
Simplified Patch Management with Puppet - Oct. 2020

Recently uploaded (20)

PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Empathic Computing: Creating Shared Understanding
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Approach and Philosophy of On baking technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Cloud computing and distributed systems.
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Spectral efficient network and resource selection model in 5G networks
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx
Empathic Computing: Creating Shared Understanding
sap open course for s4hana steps from ECC to s4
Approach and Philosophy of On baking technology
MIND Revenue Release Quarter 2 2025 Press Release
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Programs and apps: productivity, graphics, security and other tools
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Cloud computing and distributed systems.
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Spectral efficient network and resource selection model in 5G networks

3 Years of Puppet at Cisco: The Secrets to Our Success - PuppetConf 2013

  • 1. Cisco Confidential© 2010 Cisco and/or its affiliates. All rights reserved. 1 3 Years of Puppet at Cisco: The Secrets to Our Success PuppetConf 2013 Keith Chambers & Ryan Uber
  • 2. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2 •  Worked at Cisco for 13 years -  7 years in Technical Assistance Center (support) -  2 years in Product Marketing -  4 years as WebEx Social Platform Architect •  Passionate about technology •  Passionate about people •  Always looking to raise the bar
  • 3. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 3 •  Worked at Cisco for 3 years -  Software Engineer -  Has played a critical role in our success •  Work at a managed host provider for 5 years -  Designed and implemented most of the infrastructure -  Supported everything he built •  Puppet user for 6 years
  • 4. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 4 •  Overview •  Experience •  Plumbing •  History & Evolution •  Secrets to our success
  • 5. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5
  • 6. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 6 •  Enterprise Social Media -  Create content -  Communities -  Follow -  Like -  Activity feed -  Recommendations •  On-premise deployment model •  Later added cloud hosted
  • 7. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 7 Persistence •  Traditional tiered web service •  Large number of services -  App Server -  Worker -  OpenFire -  RabbitMQ -  Memcached -  MongoDB -  Oracle -  Solr Caching Application Web Server Worker
  • 8. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 8 •  Virtual appliance delivery model •  Roles based architecture -  1 service per VM -  25 VM deployments are common •  Director provides system wide: -  Configuration -  Software maintenance -  Diagnostics and logging -  Health monitoring •  Everything works out of the box Oracle OS MongoDB OS Solr OS Worker OS Memcached OS App OS RabbitMQ OS OpenFire OS Virtualized Compute & Storage Director OS
  • 9. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9
  • 10. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10 1.  Customer downloads a single OVA from Cisco
  • 11. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 11 1.  Customer downloads a single OVA from Cisco 2.  Customer deploys the Director VM from the OVA by selecting the Director configuration option
  • 12. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 12
  • 13. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 13 1.  Customer downloads a single OVA from Cisco 2.  Customer deploys the Director VM from the OVA by selecting the Director configuration option 3.  Customer configures Director VM network settings
  • 14. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 14 1.  Customer downloads a single OVA from Cisco 2.  Customer deploys the Director VM from the OVA by selecting the Director configuration option 3.  Customer configures Director VM network settings 4.  Customer browses to the Director UI and configures system settings and defines the topology
  • 15. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 15
  • 16. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 16
  • 17. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 17 1.  Customer downloads a single OVA from Cisco 2.  Customer deploys the Director VM from the OVA by selecting the Director configuration option 3.  Customer configures Director VM network settings 4.  Customer browses to the Director UI and configures system settings and defines the topology 5.  Customer deploy all VMs defined in the topology from the OVA by selecting the appropriate configuration
  • 18. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 18 1.  Customer downloads a single OVA from Cisco 2.  Customer deploys the Director VM from the OVA by selecting the Director configuration option 3.  Customer configures Director VM network settings 4.  Customer browses to the Director UI and configures system settings and defines the topology 5.  Customer deploy all VMs defined in the topology from the OVA by selecting the appropriate configuration •  System handles all other setup and configuration
  • 19. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 19 1.  Customer download a single release image from file from Cisco
  • 20. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 20 1.  Customer download a single release image from file from Cisco 2.  Customer uploads the release image to the Director
  • 21. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 21
  • 22. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 22 1.  Customer download a single release image from file from Cisco 2.  Customer uploads the release image to the Director 3.  Customer clicks upgrade
  • 23. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 23 1.  Customer download a single release image from file from Cisco 2.  Customer uploads the release image to the Director 3.  Customer clicks upgrade •  System handles the upgrade
  • 24. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 24
  • 25. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 25
  • 26. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 26
  • 27. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 27 OVF OS Bootstrap Config Network Settings Director FQDN Glue Code
  • 28. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 28
  • 29. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 29 •  Package everything as an RPM •  RPMs distributed from Director via Yum •  Controller is a Puppet Master Director OS Analytics Store OS Puppet Master Yum
  • 30. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 30 •  Versioned build artifact containing: -  All RPMs for all roles -  All Puppet modules •  Upgrade mechanics: -  New image uploaded to Director -  Old image unmounted and new image mounted -  Director calls Puppet run for all hosts -  On success the updated version is stored in on VM file system -  Salt used to fetch version number from all VMs
  • 31. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 31 Director OS Analytics Store QUAD OS JSON Store QUAD OS RDBMS Store QUAD OS Graph Store QUAD OS Rsyslog •  Rsyslog -  High performance -  Reliable -  Part of CentOS 6 Rsyslogx Rsyslogx Rsyslogx Rsyslogx
  • 32. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 32 Director OS Analytics Store OS BSON Store OS RDBMS Store OS Social Graph OS monit monit monit monit Nagios •  Nagios: -  Reliable -  Extremely flexible -  Available in EPEL •  Monit -  Reliable -  Flexible and extensible -  Enables self healing -  HTTP API -  Available in EPEL
  • 33. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 33 Director OS Analytics Store OS BSON Store OS RDBMS Store OS Social Graph OS Graphite collectd collectd collectd collectd •  Graphite: -  Reliable -  Extremely flexible -  Available in EPEL •  Collectd -  Reliable -  100+ plugins -  Extensible -  In EPEL
  • 34. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 34
  • 35. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 35 Phase 1 Mid 2010 •  20GB VM •  CentOS 5 •  deployer.zip •  Monitoring 1.0 •  100% proprietary •  Time to market focused •  No DevOps tooling experience in the team
  • 36. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 36 Phase 1 Mid 2010 •  20GB VM •  CentOS 5 •  deployer.zip •  Monitoring 1.0 •  100% proprietary •  Time to market focused •  No DevOps tooling experience in the team Phase 2 Early 2011 •  RPM + Yum •  Puppet •  Release Image •  Reduce VM footprint •  Major pushback on Puppet •  Your team matters
  • 37. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 37 Phase 1 Mid 2010 •  20GB VM •  CentOS 5 •  deployer.zip •  Monitoring 1.0 •  100% proprietary •  Time to market focused •  No DevOps tooling experience in the team Phase 2 Early 2011 •  RPM + Yum •  Puppet •  Release Image •  Reduce VM footprint •  Major pushback on Puppet •  Your team matters Phase 3 Mid 2011 •  Director REST API •  OVF Properties •  Unified Logging w/ Rsyslog + Scribe •  Rsyslog was resisted due to name association with syslog
  • 38. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 38 Phase 1 Mid 2010 •  20GB VM •  CentOS 5 •  deployer.zip •  Monitoring 1.0 •  100% proprietary •  Time to market focused •  No DevOps tooling experience in the team Phase 2 Early 2011 •  RPM + Yum •  Puppet •  Release Image •  Reduce VM footprint •  Major pushback on Puppet •  Your team matters Phase 3 Mid 2011 •  Director REST API •  OVF Properties •  Unified Logging w/ Rsyslog + Scribe •  Rsyslog was resisted due to name association with syslog Phase 4 Early 2012 •  CentOS 6 upgrade •  Monit •  Salt •  Remove Scribe •  Maintain fewer libraries •  Further reduce VM footprint •  Started replacing Monitoring 1.0 •  Salt proved buggy
  • 39. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 39 Phase 1 Mid 2010 •  20GB VM •  CentOS 5 •  deployer.zip •  Monitoring 1.0 •  100% proprietary •  Time to market focused •  No DevOps tooling experience in the team Phase 2 Early 2011 •  RPM + Yum •  Puppet •  Release Image •  Reduce VM footprint •  Major pushback on Puppet •  Your team matters Phase 3 Mid 2011 •  Director REST API •  OVF Properties •  Unified Logging w/ Rsyslog + Scribe •  Rsyslog was resisted due to name association with syslog Phase 4 Early 2012 •  CentOS 6 upgrade •  Monit •  Salt •  Remove Scribe •  Maintain fewer libraries •  Further reduce VM footprint •  Started replacing Monitoring 1.0 •  Salt proved buggy Phase 5 Late 2012 •  Replaced Monitoring 1.0 with Nagios, Collectd, Graphite •  Last minute decision to go with Graphite •  Puppet code spaghetti •  VM tampering undercutting upgrade reliability •  Other Cisco groups want to reuse our code
  • 40. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 40 Phase 1 Mid 2010 •  20GB VM •  CentOS 5 •  deployer.zip •  Monitoring 1.0 •  100% proprietary •  Time to market focused •  No DevOps tooling experience in the team Phase 2 Early 2011 •  RPM + Yum •  Puppet •  Release Image •  Reduce VM footprint •  Major pushback on Puppet •  Your team matters Phase 3 Mid 2011 •  Director REST API •  OVF Properties •  Unified Logging w/ Rsyslog + Scribe •  Rsyslog was resisted due to name association with syslog Phase 4 Early 2012 •  CentOS 6 upgrade •  Monit •  Salt •  Remove Scribe •  Maintain fewer libraries •  Further reduce VM footprint •  Started replacing Monitoring 1.0 •  Salt proved buggy Phase 5 Late 2012 •  Replaced Monitoring 1.0 with Nagios, Collectd, Graphite •  Last minute decision to go with Graphite •  Puppet code spaghetti •  VM tampering undercutting upgrade reliability •  Other Cisco groups want to reuse our code Phase 6 Started 2012 •  Generic programmable Controller •  Deploy VMs via IaaS API •  Orchestrate deploy and upgrade with Fabric •  Baked VM images •  Hiera for module parameters
  • 41. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 41
  • 42. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 42 Keep it simple •  80/20 rule •  Build only what you need •  What works is boring Learn and adapt •  Don’t fall in love with what you’ve built Unix tool chain pattern •  Loosely couple with best of bread tools •  End-to-end solutions lock you in
  • 43. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 43 •  Excellent at configuration management •  Bulletproof reliability •  Long term investment protection •  Vibrant community and ecosystem •  Commitment to open source
  • 44. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 44 •  Alex Honor of DTO Solutions and Simplify Ops -  Insightful program leadership -  Walking encyclopedia of proven patterns -  Always there when I’m in a jam
  • 45. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 45