OSCON 2012 OpenStack Automation and DevOps Best Practices
Automation and DevOps Best Practices Rob Hirschfeld, Dell Matt Ray, Opscode
Deploying & Managing a Cloud is not simple. • Deploying to physical gear on layered networks • Multiple interlocking projects • Hundreds of conﬁguration options • An aggressive 6 month delivery cycle • Constant innovation on core technologies It does not have to be hard!
Problem: Clouds do not operate themselves! Operations Servers Networks Storage Etc. Expertise
Ops automation (“devops”) jumpstarts learning,reduces complexity and manages scale. Operations Automation ic (DevOps) ur Top O Servers Networks Storage Etc. Operations Expertise
DevOps is CAMS‣ Culture‣ Automation‣ Measurement‣ Sharing
Foundation for Success: Open Operations‣ Start with “Operations as Code”‣ Leverage the community ‣ Write Operations code so it can be openly shared ‣ Learn from other people’s experience‣ Make operations a priority ‣ Engage developers in operations challenges ‣ Make deployability a dev & test concern‣ These are central issues to Opscode & Dell
What is Chef?‣ An Open Source automation platform to continuously deﬁne, build, and manage infrastructure.‣ Chef enables people to easily build & manage complex & dynamic applications at massive scale‣ Built on the idea of Infrastructure as Code ‣ Programmatically provision and conﬁgure nodes ‣ Reconstruct business from code repository, data backup, and bare metal resources.
How Can Chef Help?Blueprint Your Build Anything… And Manage It SimplyInfrastructure Provision compute • Introduce continuous• Compute resources in the Data incremental change or total change.• Application Center and the Cloud • Infrastructure • Automatically reconfigure• Storage everything• Security • Application Stacks • Re-provision for disaster• Network • Big Data recovery• Configuration Standards • HPC • Fail-over to bare metal • IaaS • Monitor for compliance • PaaS • Cloud migrations becomeUsing 1,000’s of man- trivial • SaaS days of prior art!
The Path to Full Automation Full Continuous Infrastructure Deployment Automation Application Conﬁguration Management CommonDiscovery and Management Automation Visibility Tasks: Scripts, OS Compliance, Updates & Patches
…and it matters how they are deployed! Cookbooks
Clouds are a complex: not like an app‣ Building up OpenStack requires a system view ‣ Breaking projects into discrete cookbooks enables maintainability ‣ Conventions are needed so that projects and cross reference each other‣ Networking is critical ‣ Each component requires correct VLAN, teaming and virtual bridge conﬁguration. ‣ Each site has unique networking needs (IP, subnet, VLAN) ‣ NIC enumeration can break even the simplest scipts‣ Hardware conﬁguration is boring but very important ‣ Application choices force conﬁguration changes (late binding) ‣ Small mistakes can be very expensive to ﬁnd and ﬁx‣ We needed a way to make deploy simpler, faster & repeatable
OpenStack Installer: Dell Crowbar Project‣ Field Proven Technologies ‣ Build on locally deployed Chef Server, Raw servers to full cloud in <2 hours, Multi-Node from the ground up, Hardened with over a year of real deployments‣ Apache 2 Open Source (on github/dellcloudedge) ‣ Multi-Apps (OpenStack & Hadoop), Multi-OS (Ubuntu, RHEL, CentOS, SUSE), Development “in the open” w/ community engagement‣ OpenStack Releases (dell.com/OpenStack) ‣ Cactus, Diablo and Essex!‣ Not Dell Hardware Limited
Crowbar Builds Up Clouds in layers APIs, User Access, & Ecosystem PartnersOps Management Dell “Crowbar” Cloud Infrastructure Core Components & Operating Systems Physical Resources
2) OS and Ops Infrastructure APIs, User Access, & Ecosystem PartnersOps Management Dell “Crowbar” Cloud Infrastructure Core Components & Operating Systems * Physical Resources * Suse pending, based on open source activity
3) Cloud Platform Integration APIs, User Access, & Ecosystem PartnersOps Management Dell “Crowbar” Cloud Infrastructure Core Components & Operating Systems * Physical Resources * Suse pending, based on open source activity
OpenStack Orchestration: Chef & Crowbar Status (po st) Orchestration State Machine OpenStack ComponentsOps Management Crowbar Magic Happens! nt Clie Dell “Crowbar” f- Che Run List Chef-Client Network Configuration Chef Server Chef-C lient Operating System Conﬁg. Che f-C lien t Hardware Config (uses “Sledgehammer”) DHCP Server(s) t PXE Boo
Crowbar & OpenStack Cookbooks‣ Having cookbooks is not enough, Crowbar also ‣ Understands how the cookbooks connect together ‣ Helps you plan out the networking & server allocations‣ Crowbar has a consistent Chef design approach ‣ “Proposal” databags to setup attributes and run-lists ‣ Consistent naming conventions ‣ Roles to link things together – A LOT OF ROLES‣ Crowbar adds many cookbooks for network, monitoring, provisioning & hardware conﬁg.
Chef for OpenStack‣ Community for the automated deployment and management of OpenStack ‣ opscode.com/openstack/‣ Cookbooks‣ Documentation‣ Mailing list ‣ groups.google.com/group/opscode-chef-openstack‣ IRC ‣ #openstack-chef on irc.freenode.net
Chef for OpenStack GoalsAlready a lot of OpenStack deployments managed with Chef‣ Provide a stable set of core OpenStack cookbooks‣ Document how the pieces work together‣ Evolve to keep up with latest changes‣ Expand support into new technologies ‣ Operating systems, databases, hypervisors, etc. ‣ Alternate storage types ‣ Alternate networking implementations for Quantum
Chef for OpenStack Roadmap‣ Get stable Essex cookbooks out‣ Establish patterns of collaboration‣ Continuous Integration and gated testing‣ Folsom milestones‣ Documentation, documentation, documentation
Upstreaming accelerates strong deploys‣ Feedback loops enable cookbooks to mature quickly Community Cookbooks Dell Crowbar Chef Cloud A Host B Crowbar Dell Cloud A Chef Community Community Customers Customers
Infrastructure as Code Repositories‣ Deploy your data center with Crowbar ‣ Store this in version control ‣ Test your changes ‣ Promote to production ‣ Rinse, repeat‣ OpenStack deployment is managed with Chef ‣ See above‣ Deploy your applications on OpenStack with Chef ‣ See above
Deploy Your Applications on OpenStack‣ Nova Dashboard‣ Knife OpenStack‣ enStratus‣ Hybrid Cloud!?
knife-openstack$ knife openstackAvailable openstack subcommands: (for details, knife SUB- COMMAND --help)** OPENSTACK COMMANDS **knife openstack flavor list (options)knife openstack image list (options)knife openstack server create (options)knife openstack server delete SERVER [SERVER] (options)knife openstack server list (options)
knife-openstackknife openstack server create --flavor 1 --image 7 -S keypair -r role[hadoop-worker]’‣ Deploy applications on top of OpenStack‣ Manage them with Chef‣ Conﬁguration backed by version control‣ Transfer your infrastructure anywhere
Challenges‣ Making Community work sharable‣ Testing / Validation ‣ Community ‣ Keeping on Upstreams ‣ Automation (Tempest & CI) ‣ Linking Dev and Ops‣ Upgrade Process‣ # of conﬁgurations
Join the Community & Get Started‣ Invest in reusing community code ‣ Respect abstractions & patterns from community code ‣ Participate in communities ‣ Submit bugs (and patches!)‣ Use Upstreams! ‣ Community Cookbooks… Opscode ‣ community.opscode.com ‣ Deploy Infrastructure… Dell Crowbar ‣ github.com/dellcloudedge/crowbar