Post on 14-Jul-2015
INtroduction to DevOps
Being one with the flow
Wednesday, February 6, 13
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
DevOpsWhat 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
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
Chef Client Server Architecture
Wednesday, February 6, 13
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
RecipeSimple Example of a Recipe
yum_package "autofs" do action :installend
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
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
Live DEMO
Wednesday, February 6, 13
Kanban & OpsWhat 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
Operations Kanban
Wednesday, February 6, 13
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
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
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
Continuous Deployment
Wednesday, February 6, 13
QUESTIONS ?Contact Me @
g.ryan.fawcett@commtouch.comLinkedIN www.linkedin.com/in/gryanfawcett/
More on Chef http://www.slideshare.net/gryanfawcett/cooking-5-star-
infrastructure-with-chef
Wednesday, February 6, 13