2000+ virtual machinesHundreds of learn instancesHundreds of test agentsIn-house CM tool
Constantly fighting firesResulted from high technical debtImpact to team:High WIPContext switchingLarge backlogImage: http://www.ctif.org/CTIF-Commission-Rescue-and-Fire
If your question is Puppet vs. Chef, the answer is yes.Advantages:Provide DSL (easier to read)Community for helpOpen source, corporate backingHandles errors, etc.
Manual changes lead to driftGoal: Avoid Configuration Drift
Fully capable of rebuilding a server from scratch at any timeEasier than troubleshooting unique issuesImage: http://coverlaydown.com/2013/02/the-phoenix-rises-on-coming-back-and-moving-forward/
The logical evolution of Phoenix Servers
DevOps is not about tools, it’s about culture.…however, tools can change behavior, …and behavior change leads to culture change.
Ruby Wrapper to VirtualBox (and others)Simplifies Local VM integrationUnderstands CM ToolsPlugin API
Chef client installed on machine<Vagrant boots machine, passes runlist to client>Describe Chef Server briefly
Discuss how some developer best practices can/should apply to ops.
Depict how changes are made:Change locally, in VagrantUnit test changes/regressionsRun Integration TestsCommit to Git (pre-commit hook to ensure incremented version)Jenkins runs testsIf successful, publish to Chef Server (staging environment)Staging environment updates (daemon or push)Manual testing…if all goodPromote change in Jenkins to production environmentServers update (daemon/push)
Transcript of "Infrastructure as Code (BBWorld/DevCon13)"
Mike McGarr, Director of Learn DevOps
Director of Learn DevOps
I have been at Blackboard for 8 months.
Software Engineer for 12+ years
Founder of the DC Continuous Integration,
Delivery and Deployment Meetup
LEARN DEVOPS TEAM
Purpose: Provide development support to the rest of
Learn‟s Product Development (PD) team.
• Build/Release Engineering
• Manage Enterprise Applications
• Manage Data Center
• Help desk for PD
• Manually managed
• Little/No Version
• No history/context
• Few knew how to run
• Fewer knew how to fix
• Lots of firefighting to
resolve CM issues
Automate the creation and maintenance of
servers (to the farthest extent possible)
• Build from source control
• Utilize open source tools
• Ensure testability
A practice popularized by the DevOps