1. INtroduction to
DevOps
Being one with the flow
Wednesday, February 6, 13
2. Introduction
G. Ryan Fawcett
• Trained Agile Scrum / Kanban Master from 2004 - Today
• 20 years of System Engineering / System Administration experience
• Pervious engagements Kontera , Yahoo , Safeway and others big and small
Wednesday, February 6, 13
3. DevOps
What does it mean to us
• Infra-structure as code
• Reproducible Environments ( Dev, QA, Production)
• Kanban Change Management and Project Management
• Meeting Business needs with Development Agile processes
• Automated build environment
• Continuous Integration / Deployment
• Its all about FLOW
Wednesday, February 6, 13
4. What is Chef ?
• Chef is a infrastructure configuration management platform to create
infrastructure as code
• Configuration policy enforcement tool
• Continuous integration tool
Wednesday, February 6, 13
5. Chef
Client Server Architecture
Wednesday, February 6, 13
6. Chef Structures
• Roles: is a grouping of cookbooks and recipes shared between a type of
node
• Node: is a machine that has roles and attributes assigned to it
• Cookbook: a collection of recipes
• Recipe: a collection of resources
• Resource: basic unit of work, package, service, template, file, exec, etc
• Attributes: node data such as IP address, Hostname, any value you set
• Data-bag: data store of globally available JSON data
Wednesday, February 6, 13
7. Recipe
Simple Example of a Recipe
yum_package "autofs" do
action :install
end
service "autofs" do
supports :restart => true, :status => true, :reload => true
action [:enable, :start]
end
template "/etc/auto.master" do
source "auto.master.erb"
owner "root"
mode "0644"
notifies :restart, resources(:service => "autofs" )
end
template "/etc/auto.home" do
source "auto.home.erb"
owner "root"
mode "0644"
variables({
! :fqdn => node[:fqdn],
! :autofs_server => node[:autofs_server],
! })
notifies :restart, resources(:service => "autofs" )
end
Wednesday, February 6, 13
8. ERB Templates
<%=
if node[:domain] == "dc1.company.org"
node.set['autofs_server'] = '10.1.4.120'
end
if node[:domain] == "dc2.company.org"
node.set['autofs_server'] = '10.100.0.11'
end
%>
* -fstype=nfs,rw,nosuid,nodev,intr,soft <%= node[:autofs_server] %>:/
home_vol_01/&
Wednesday, February 6, 13
10. Kanban & Ops
What it accomplishes
• Knowledge Share ( Stand up / Documentation )
• Project Management ( Status of WIP for resource planning )
• Change Management ( Dashboard for what is changing )
• Operational Transparency ( Status of Projects / Deployments )
• Business Performance Metrics ( Reporting tools to see how low it takes
to make changes and deploy code)
Wednesday, February 6, 13
12. Jenkins and Branching
• Automated Build process daily or hourly ?
• Roll forward methodology a rollback is a push forward in version but
pervious production push.
• Ability to build a release or tree in under 30 mins.
Wednesday, February 6, 13
13. Managed environments
• Need for Environments to Sync up
• That process of building is the same on QA, Staging, and Production
Machines
• A centralized Chef source code repository shared company wide
• Virtualization of QA and Staging Environments to imitate production
• Automation / Configuration Meetings to discuss this with Dev,QA on
an ongoing basis.
Wednesday, February 6, 13
14. Continuous deployment
pipeline
• QA Promotes the Build to Staging
• Smoke and Load performance testing in a Staging Environment
• Build is promoted to Production Ready
• Chef server picks up the build and Places it in CCDeploy Repository
• Chef-clients checks for updates and updates the deployed packages
on the servers
• Chef continues to run and configures the application based on its
configuration files in the chef server.
Wednesday, February 6, 13
16. QUESTIONS ? Contact Me @
g.ryan.fawcett@commtouch.com
LinkedIN www.linkedin.com/in/gryanfawcett/
More on Chef
http://www.slideshare.net/gryanfawcett/cooking-5-star-
infrastructure-with-chef
Wednesday, February 6, 13