Achieving DevOps Success with
Chef Automate
Nicole Johnson – Manager, Solutions Architects – East NA
Chef Commercial
Product
Chef InSpec Habitat Open Source
Products
Cloud & Infrastructure Automation
Delivery Workflow
Visibility
Compliance
Application Automation
Chef Platform
Barriers to Enterprise Adoption of DevOps
Anti-pattern = stitching together disparate tool chains
Thrashing on the shape of the workflow across that
tooling, lack of skills, training and cultural adoption (can
take years)
Siloed centers for DevOps
Security and compliance are an afterthought
New Capabilities Accelerate and De-risk DevOps
Adoption
Chef Compliance: Compliance as Code – just like Apps as Code and
Infrastructure as code
Chef Automate: Full stack collaboration
platform manages complex changes across:
• Infrastructure as Code
• Containers as Code
• Applications as Code
• Compliance as Code
New: Enterprise Transformation Practice
Go Fast Safely: Allow Teams to Build Code and Automate
Systems
• Infrastructure as
Code
• Containers as Code
• Policy as Code
• Process as Code
• Applications
Reinforce the right
behaviors to collaborate
safely on code at
velocity
Culture
Automation
Governance
Build, deploy, and
manage infrastructure
and applications
anywhere
Operate safely and in
compliance with internal
controls and regulatory
requirements
version
collaborate
consistently
test
automatically
Deploy Anywhere
● On-premise
● Cloud
● Hybrid-Cloud
Configuration
Automation
Workflow
ApplicationInfrastructure
Chef is Infrastructure as Code
•Programmatically provision
and configure components
•Treat like any other code
base
•Reconstruct business from
code repository, data
backup, and compute
resources
http://www.flickr.com/photos/louisb/4555295187/
Automate infrastructure & applications with Chef
On Linux based OSes:
package "httpd" do
action :install
end
template ”/var/www/index.html" do
source ”index.html.erb”
mode "0644"
end
service "httpd" do
action [ :enable, :start ]
end
Building Blocks: What is a Resource?
•A Resource is a system state you define
• Example: Package installed, state of a service, configuration file existing
•You declare what state you want the resource in.
• Chef automatically determines HOW that state is achieved
On Linux based OSes: On Windows based OSes:
Chef Workflow and Test-Driven Infrastructure
...
...
...
Targets/Workloads
Collaborative Dev
Chef Visibility
Production
Chef Server
Chef server
Chef
Supermarket
Assessment
Chef Compliance
Search
Audit
Discover
Deploy
Chef Workflow
Local Dev/
Remediation
Model
Build
Test
Chef DK
Chef Client & Cookbooks
Documentation
SSH supports two different protocol versions. The original
version, SSHv1, is subject to a number of different security
vulnerabilities.
Please use the more secure SSHv2 to avoid these
vulnerabilities
Scripting Tools
# grep “^Protocol” /etc/ssh/sshd_config | sed ‘s/Protocol//’
# 2
control 'cis-3.1' do
impact 0.7
title 'Set Daemon umask’
desc 'Set the default umask for all processes
started at boot time.'
describe file('/etc/sysconfig/init') do
its('content') {should match 'umask 027'}
end
end
InSpec Testing Framework
Compliance as Code
Compliance as Code
Compliance
Security
DevOps
How do we write and test our intended change?
One path for change
Test the ArtifactsTest the Code
VERIFY BUILD
ACCEPTANC
E
REHEARSA
L
DELIVERE
D
UNION
Submit
Change
One path for change
VERIFY BUILD ACCEPTANCE
REHEARSA
L
DELIVEREDUNIONAPPROVE DELIVER
Lint
Syntax
Unit
Security
Quality
Publish
Lint
Syntax
Unit
Provision
Deploy
Smoke
Functional
Provision
Deploy
Smoke
Functiona
l
Provision
Deploy
Smoke
Functional
Provision
Deploy
Smoke
Functional
Submi
t
Chang
e
Does this
code
change
look
good?
Do we
want
to ship
this?
One path for change
VERIFY BUILD ACCEPTANCE
REHEARSA
L
DELIVEREDUNIONAPPROVE DELIVER
Lint
Syntax
Unit
Security
Quality
Publish
Lint
Syntax
Unit
Submi
t
Chang
e
Does this
code
change
look good?
One path for change
VERIFY BUILD ACCEPTANCE
REHEARSA
L
DELIVEREDUNIONAPPROVE DELIVER
Lint
Syntax
Unit
Security
Quality
Publish
Lint
Syntax
Unit
Provision
Deploy
Smoke
Functional
Submi
t
Chang
e
Does this
code
change
look
good?
Do we
want
to ship
this?
Shared Workflow
Workflow’s pipeline is shared across projects and teams
SUBMIT
CHANGE
VERIFY
APPROVE
CHANGE
DELIVER
CHANGE
ACCEPTANCEBUILD
UNION REHEARSAL DELIVERED
COOKBOOK Y
APPLICATION Y
COOKBOOK X
APPLICATION X
Subscription
Includes:
• Premium Features
• 24x7 Support
• Supported Content
Infrastructure
Automation Application Automation Compliance Automation
Workflow Visibility Compliance
HighAvailability
Content (Chef Cookbooks, Habitat Plans, Compliance Profiles)
Premium
Features
Open
Source
Software
Delivery Phases
Verify and Build
Build
Acceptance, Union, Rehearsal, Delivered
Provision Deploy
Smoke Functional
Delivery Phases – Example Java Application
• JUnit
Verify and Build
Build
• Lint4J • javac
• Fortify • FindBugs • Maven
• Artifactory
Acceptance, Union, Rehearsal, Delivered
• EC2
• Chef
Provisioning
Provision Deploy
• Load jar in
Tomcat
• Curl $URL;
check for 200
OK
Smoke Functional
• Selenium
• Cucumber
• Chef InSpec

Achieving DevOps Success with Chef Automate

  • 1.
    Achieving DevOps Successwith Chef Automate Nicole Johnson – Manager, Solutions Architects – East NA
  • 2.
    Chef Commercial Product Chef InSpecHabitat Open Source Products Cloud & Infrastructure Automation Delivery Workflow Visibility Compliance Application Automation Chef Platform
  • 3.
    Barriers to EnterpriseAdoption of DevOps Anti-pattern = stitching together disparate tool chains Thrashing on the shape of the workflow across that tooling, lack of skills, training and cultural adoption (can take years) Siloed centers for DevOps Security and compliance are an afterthought
  • 4.
    New Capabilities Accelerateand De-risk DevOps Adoption Chef Compliance: Compliance as Code – just like Apps as Code and Infrastructure as code Chef Automate: Full stack collaboration platform manages complex changes across: • Infrastructure as Code • Containers as Code • Applications as Code • Compliance as Code New: Enterprise Transformation Practice
  • 5.
    Go Fast Safely:Allow Teams to Build Code and Automate Systems • Infrastructure as Code • Containers as Code • Policy as Code • Process as Code • Applications Reinforce the right behaviors to collaborate safely on code at velocity Culture Automation Governance Build, deploy, and manage infrastructure and applications anywhere Operate safely and in compliance with internal controls and regulatory requirements version collaborate consistently test automatically Deploy Anywhere ● On-premise ● Cloud ● Hybrid-Cloud Configuration Automation Workflow ApplicationInfrastructure
  • 6.
    Chef is Infrastructureas Code •Programmatically provision and configure components •Treat like any other code base •Reconstruct business from code repository, data backup, and compute resources http://www.flickr.com/photos/louisb/4555295187/
  • 7.
    Automate infrastructure &applications with Chef On Linux based OSes: package "httpd" do action :install end template ”/var/www/index.html" do source ”index.html.erb” mode "0644" end service "httpd" do action [ :enable, :start ] end
  • 8.
    Building Blocks: Whatis a Resource? •A Resource is a system state you define • Example: Package installed, state of a service, configuration file existing •You declare what state you want the resource in. • Chef automatically determines HOW that state is achieved On Linux based OSes: On Windows based OSes:
  • 9.
    Chef Workflow andTest-Driven Infrastructure ... ... ... Targets/Workloads Collaborative Dev Chef Visibility Production Chef Server Chef server Chef Supermarket Assessment Chef Compliance Search Audit Discover Deploy Chef Workflow Local Dev/ Remediation Model Build Test Chef DK Chef Client & Cookbooks
  • 10.
    Documentation SSH supports twodifferent protocol versions. The original version, SSHv1, is subject to a number of different security vulnerabilities. Please use the more secure SSHv2 to avoid these vulnerabilities
  • 11.
    Scripting Tools # grep“^Protocol” /etc/ssh/sshd_config | sed ‘s/Protocol//’ # 2
  • 12.
    control 'cis-3.1' do impact0.7 title 'Set Daemon umask’ desc 'Set the default umask for all processes started at boot time.' describe file('/etc/sysconfig/init') do its('content') {should match 'umask 027'} end end InSpec Testing Framework
  • 13.
  • 14.
  • 15.
    How do wewrite and test our intended change?
  • 16.
    One path forchange Test the ArtifactsTest the Code VERIFY BUILD ACCEPTANC E REHEARSA L DELIVERE D UNION Submit Change
  • 17.
    One path forchange VERIFY BUILD ACCEPTANCE REHEARSA L DELIVEREDUNIONAPPROVE DELIVER Lint Syntax Unit Security Quality Publish Lint Syntax Unit Provision Deploy Smoke Functional Provision Deploy Smoke Functiona l Provision Deploy Smoke Functional Provision Deploy Smoke Functional Submi t Chang e Does this code change look good? Do we want to ship this?
  • 18.
    One path forchange VERIFY BUILD ACCEPTANCE REHEARSA L DELIVEREDUNIONAPPROVE DELIVER Lint Syntax Unit Security Quality Publish Lint Syntax Unit Submi t Chang e Does this code change look good?
  • 19.
    One path forchange VERIFY BUILD ACCEPTANCE REHEARSA L DELIVEREDUNIONAPPROVE DELIVER Lint Syntax Unit Security Quality Publish Lint Syntax Unit Provision Deploy Smoke Functional Submi t Chang e Does this code change look good? Do we want to ship this?
  • 20.
    Shared Workflow Workflow’s pipelineis shared across projects and teams SUBMIT CHANGE VERIFY APPROVE CHANGE DELIVER CHANGE ACCEPTANCEBUILD UNION REHEARSAL DELIVERED COOKBOOK Y APPLICATION Y COOKBOOK X APPLICATION X
  • 21.
    Subscription Includes: • Premium Features •24x7 Support • Supported Content Infrastructure Automation Application Automation Compliance Automation Workflow Visibility Compliance HighAvailability Content (Chef Cookbooks, Habitat Plans, Compliance Profiles) Premium Features Open Source Software
  • 23.
    Delivery Phases Verify andBuild Build Acceptance, Union, Rehearsal, Delivered Provision Deploy Smoke Functional
  • 24.
    Delivery Phases –Example Java Application • JUnit Verify and Build Build • Lint4J • javac • Fortify • FindBugs • Maven • Artifactory Acceptance, Union, Rehearsal, Delivered • EC2 • Chef Provisioning Provision Deploy • Load jar in Tomcat • Curl $URL; check for 200 OK Smoke Functional • Selenium • Cucumber • Chef InSpec