This document discusses infrastructure as code and provides examples using tools like Chef, Vagrant, and Jenkins. It summarizes building a Jenkins server from source control using Chef recipes to install Java, add users, and install packages to set up the service. It emphasizes best practices like version control, testing, and treating infrastructure like code.
2. ABOUT ME
Mike McGarr
Director of Learn DevOps
Blackboard Inc.
michael.mcgarr@blackboard.com
I have been at Blackboard for 8 months.
Software Engineer for 12+ years
Founder of the DC Continuous Integration,
Delivery and Deployment Meetup
3. LEARN DEVOPS TEAM
Purpose: Provide development support to the rest of
Learn‟s Product Development (PD) team.
Includes:
• Build/Release Engineering
• Manage Enterprise Applications
• Manage Data Center
• Help desk for PD
7. INFRASTRUCTURE AS
CODE
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
movement.
46. LEARN TO PROGRAM
Ops acting like developers…
Learn the language!
Learn the environment:
• rvm
• rbenv
• gems
• bundler
47. THANK YOU!
Mike McGarr
Director of Learn DevOps
Blackboard Inc.
michael.mcgarr@blackboard.com
@jmichaelmcgarr
http://earlyandoften.wordpress.com
Editor's Notes
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.
ConvergenceIdempotence
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)