1. Team Development
Workflows
Managing Cookbooks, Roles & Databags Across Versions
Chef Boston Meetup
Aug 28th 2012
Pete Cheslock
Sonian
2. Caveats & Thoughts
ï Iâ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.
3. Our Problem
ï Many 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)
4. Stage 1
ï Ticket Bankruptcy â Make the move to Jira
ï Invest in cleanup of technical debt
ï Specifically in our Git Repository
ï Split the team into Proactive/Reactive Team
ï Decrease distractions
ï Increase focus â decrease context switching
ï Introduction of myself as the âbufferâ
ï New Feature Requests
ï Hotfixes or Sysadmin type tasks
ï Support our Engineering and Support Team
5. Stage 2
ï Deployment 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
6. Stage 3
ï Build apps to support our technology
ï External
ï Sensu (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.
ï Internal
ï Security
ï Automation
7.
8. 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
9. Development Simplicity
Dev QA
Master
(Daily) (Daily)
Cut Branch
Merge Make Changes
(eng-9999)
11. 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)