16
INtroduction to DevOps Being one with the flow Wednesday, February 6, 13

Devops what it means to me

Embed Size (px)

Citation preview

Page 1: Devops what it means to me

INtroduction to DevOps

Being one with the flow

Wednesday, February 6, 13

Page 2: Devops what it means to me

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

Page 3: Devops what it means to me

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

Page 4: Devops what it means to me

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

Page 5: Devops what it means to me

Chef Client Server Architecture

Wednesday, February 6, 13

Page 6: Devops what it means to me

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

Page 7: Devops what it means to me

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

Page 8: Devops what it means to me

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

Page 9: Devops what it means to me

Live DEMO

Wednesday, February 6, 13

Page 10: Devops what it means to me

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

Page 11: Devops what it means to me

Operations Kanban

Wednesday, February 6, 13

Page 12: Devops what it means to me

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

Page 13: Devops what it means to me

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

Page 14: Devops what it means to me

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

Page 15: Devops what it means to me

Continuous Deployment

Wednesday, February 6, 13