chef boston-workflows
DESCRIPTION
Managing Cookbooks, Roles, Databags across version releases. Chef-Boston Meetup Aug 28th 2012TRANSCRIPT
Team Development Workflows
Managing Cookbooks, Roles & Databags Across VersionsChef Boston Meetup
Aug 28th 2012
Pete CheslockSonian
Caveats & ThoughtsI’m not advocating the Right™ way to do any
one thing here.
This works for us (Sonian) – it may not work for you. YMMV
A good process evolves over time. What we started is not where we are today and not where we’ll be in 6 months.
Ownership – set it and forget it won’t work here.
Our ProblemMany different software stacks with separate
customer SLA’s
Small changes could have large consequences.
Many people making changes to branches (inside and outside our team).
High velocity – many hot-fixes – limited testing – Zero Tracking.
Technical Debt (An easy one to blame stuff on)
Stage 1Ticket Bankruptcy – Make the move to Jira
Invest in cleanup of technical debtSpecifically in our Git Repository
Split the team into Proactive/Reactive TeamDecrease distractions Increase focus – decrease context switching
Introduction of myself as the “buffer”New Feature RequestsHotfixes or Sysadmin type tasksSupport our Engineering and Support Team
Stage 2Deployment Checklists
Peer reviewed – across departments“Follow the checklist”
Deploy Ownership – Team Based Deploys
Make our chef runs faster/more efficient.
Cookbook refactor, invest in knife plugins, LWRP, overall quality.
Monitoring, Metrics, Security
Stage 3Build apps to support our technology
ExternalSensu (https://github.com/sensu) (MIT)SCLI (https://github.com/sonian/scli) IBM
Smartcloud command line tool (MIT)Mise En Place (Soon to be released with MIT
license)Fog (https://github.com/fog) - Contributions to
Smartcloud and VPC support.
InternalSecurityAutomation
Taking Code from Idea to Deployment
Sprint Planning (3 week Dev – 1 week QA)
Create Jira Story – Prioritize in next sprint unless needed now.
All Chef branches need Jira stories
Commit, Merge, Push, Test
All Jira stories (and branches) live in QA for regression testing
After QA Approval – merge to master
Development Simplicity
Dev (Daily)
QA (Daily)
Master
Cut Branch(eng-9999)
Make ChangesMerge
Production Complexity
release/2012-07-01
base/2012-07-01
release/2012-08-01
base/2012-08-01
master
Cherry-Picks Forward
Rebase & Squash Commit Branches Backwards
Cut Brancheng-9999
Why?Can’t have untested changes make it out to
production. Small changes could have unintended consequences.
Sets of chef cookbooks and application code (often tied together) were tested at the same time.
Important to get the processes in place prior to investment in automation.
Technical Debt (The scapegoat)