successful practices for continuous delivery codecph

49
Mandi Walls | Technical Community Manager | [email protected] @lnxchk Successful Practices for Continuous Delivery

Upload: mandi-walls

Post on 13-Apr-2017

71 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Successful Practices for Continuous Delivery CodeCPH

Mandi Walls | Technical Community Manager | [email protected]@lnxchk

Successful Practices

forContinuous

Delivery

Page 2: Successful Practices for Continuous Delivery CodeCPH

Mandi WallsTechnical Community Manager for EMEA@[email protected]

Page 3: Successful Practices for Continuous Delivery CodeCPH

EVERY business is a software business

We’re going to be a software company with airplanes.

– CIO, Alaska Airlines

Page 4: Successful Practices for Continuous Delivery CodeCPH

It’s Hard!?!?• “DevOps” is now seven years old• There are still plenty of people who reject it• But even simple practices can improve quality of delivery• DevOps Report found in their 2014 survey that Ops using version

control was a significant indicator of success• https://www.perforce.com/blog/140829/devops-version-control-even-more-

important-ops-dev

Page 5: Successful Practices for Continuous Delivery CodeCPH

Quality and innovation, historically a tradeoffQU

ALIT

Y/CO

MPL

IANC

E

RATE OF INNOVATION

Page 6: Successful Practices for Continuous Delivery CodeCPH

The game changer: rapid time to value

Innovation

Quality/Compliance

DynamicInfrastructure

Page 7: Successful Practices for Continuous Delivery CodeCPH

Dynamic infrastructureMigrate applications to the cloud and support hybrid and multi-cloud environments. Automate the management of heterogeneous networks, including legacy systems.

• Provisioning and setting up environments • Dynamic scaling of compute resources• Migrating legacy workloads to the cloud• Multi cloud and hybrid cloud deployment• Support for heterogeneous environments

Page 8: Successful Practices for Continuous Delivery CodeCPH

The game changer: rapid time to value

Innovation

Quality/Compliance

DynamicInfrastructure

Infrastructure as Code

Automate the Stack

+

Page 9: Successful Practices for Continuous Delivery CodeCPH

Infrastructure as Code• Programmatically provision and

configure components• Treat like any other code base• Reconstruct business from code

repository, data backup, and compute resources

Page 10: Successful Practices for Continuous Delivery CodeCPH

AutomationTurn infrastructure into code—infrastructure as code is versionable, testable and repeatable. Manual processes become a thing of the past.

• Automated, full-stack application policies• Package and service installation• Versionable, testable, repeatable workflow• Scalable application policies• Management of interdependencies across nodes

Page 11: Successful Practices for Continuous Delivery CodeCPH

Describe Infrastructure as Codehttpd_service 'customers' do mpm 'prefork' action [:create, :start]end

httpd_config 'customers' do instance 'customers' source 'customers.conf.erb' notifies :restart, 'httpd_service[customers]'end

directory '/var/www/customers/public_html' do recursive trueend

Page 12: Successful Practices for Continuous Delivery CodeCPH

Test the Codedescribe 'apache::default' do context 'When all attributes are default, on an unspecified platform' do

let(:chef_run) do runner = ChefSpec::ServerRunner.new runner.converge(described_recipe) end

it 'converges successfully' do expect { chef_run }.to_not raise_error end

it 'installs apache' do expect(chef_run).to install_package 'apache2' end endend

Page 13: Successful Practices for Continuous Delivery CodeCPH

Version the Code & the Artifact

name 'cmgw'maintainer 'Chef Software, Inc.'maintainer_email '[email protected]'license 'apache2'description 'Installs/Configures cmgw'long_description 'Installs/Configures cmgw'version '0.1.0'

Page 14: Successful Practices for Continuous Delivery CodeCPH

The game changer: rapid time to value

Innovation

Quality/Compliance

DynamicInfrastructure

Infrastructure as Code

Automate the Stack

DevOps

+ +

Page 15: Successful Practices for Continuous Delivery CodeCPH

DEVOPSA cultural and professional movement, focused on how we build and operate high velocity organizations, born from

the experiences of its practitioners.

Page 16: Successful Practices for Continuous Delivery CodeCPH

PEOPLE

PRODUCTS

COMPANIES

Page 17: Successful Practices for Continuous Delivery CodeCPH

WE ARE LEAN• Eliminate non-value-added action (Waste/Muda)• Pull over Push• Kaizen (Continuous Improvement)• Kaikaku (Disruptive Change)• Small Batch + Experimentation

Page 18: Successful Practices for Continuous Delivery CodeCPH
Page 19: Successful Practices for Continuous Delivery CodeCPH

UBIQUITOUS WORKFLOW AUTOMATION

Page 20: Successful Practices for Continuous Delivery CodeCPH

DIVERSITY

Page 21: Successful Practices for Continuous Delivery CodeCPH

DevOps workflow & cultureEliminate silos and lower the overhead of IT operations and service management by supporting DevOps culture. Build communities.

• Unified workflow for application and infrastructure

• Integration with version control for dev and ops

• Support for automated testing of infrastructure and applications

• Integration of security and compliance into product development

• Advanced, high-velocity workflow

Page 22: Successful Practices for Continuous Delivery CodeCPH

The rewards?*

*source: Dr. Nicole Forsgren research on DevOps

More deployments

Ship faster

Faster MTTR after issues More profits, market share, and productivity

Market cap goes up

Page 23: Successful Practices for Continuous Delivery CodeCPH

Continuous delivery of infrastructure & appsImplement a high-velocity software delivery pipeline that integrates application and infrastructure. Eliminate the risks incurred with large, infrequent releases.

• Rapid provisioning of dev and test environments

• Ensure consistency and repeatability of environments

• Unified pipeline for infrastructure, runtime environments and applications

• Support for large teams with multiple projects

• Advanced, high-velocity workflow

Page 24: Successful Practices for Continuous Delivery CodeCPH

MANAGE RISK

• Small batches, near term hypothesis• Validation comes from customers• Introduce near-term volatility to gain decreased

long-term risk

Page 25: Successful Practices for Continuous Delivery CodeCPH

CONTINUOUS INTEGRATION

• Always integrate branches to master• They should be short lived, iterative branches• Fix the build when it goes red

Page 26: Successful Practices for Continuous Delivery CodeCPH

THE FOUR-EYE RULE

Page 27: Successful Practices for Continuous Delivery CodeCPH

WRITE TESTS

• Unit test (a single function)• Integration tests (multiple classes/units)• Functional tests (user-oriented, high-level, full

stack)• Smoke tests (quickly determine if the system is

“working”)

Page 28: Successful Practices for Continuous Delivery CodeCPH

ONE PATH FOR CHANGE

• The way change moves through your organization is fixed

• Designed to re-enforce your principles and aid flow

• Flexible at the level of execution

Page 29: Successful Practices for Continuous Delivery CodeCPH

CODE GOES THROUGH THE SAME WORKFLOW

Applications are codeInfrastructure is code

Page 30: Successful Practices for Continuous Delivery CodeCPH

Security and compliance at velocityRegulatory compliance and security concerns are facts of life for every enterprise. At the same time, competitive pressures are increasing. Embed requirements into the software delivery pipeline. Code makes compliance at velocity possible.

• Embed compliance into the software delivery pipeline

• Automated checking of compliance criteria with analytics

• Structured review process during development

• Discovery and analysis• Patch management and remediation

Page 31: Successful Practices for Continuous Delivery CodeCPH
Page 32: Successful Practices for Continuous Delivery CodeCPH

SSH Control

SSH supports two different protocol versions. The original version, SSHv1, was subject to a number of security issues. Please use SSHv2 instead to

avoid these.

Page 33: Successful Practices for Continuous Delivery CodeCPH

Dev QA Stage Security Review Prod

Page 34: Successful Practices for Continuous Delivery CodeCPH
Page 35: Successful Practices for Continuous Delivery CodeCPH

Dev QA Stage Prod

Page 36: Successful Practices for Continuous Delivery CodeCPH

Dev QA Stage Prod

"Scanning"

Afterthought Scanning

Too Late!

Page 37: Successful Practices for Continuous Delivery CodeCPH

What We Have Here Is A Communications Problem

Page 38: Successful Practices for Continuous Delivery CodeCPH
Page 39: Successful Practices for Continuous Delivery CodeCPH

SSH Version Checkdescribe sshd_config do impact 1.0

title 'SSH Version 2'

desc <<-EOF SSH supports two different protocol versions. The original version, SSHv1, was subject to a number of security issues. Please use SSHv2 instead to avoid these. EOF

its('Protocol') { should cmp 2 }end

Page 40: Successful Practices for Continuous Delivery CodeCPH
Page 41: Successful Practices for Continuous Delivery CodeCPH
Page 42: Successful Practices for Continuous Delivery CodeCPH
Page 43: Successful Practices for Continuous Delivery CodeCPH

Unified Pipeline ShapeThe stages are fixed, and each stage has a fixed set of phases

VERIFY BUILD ACCEPTANCE REHEARSAL DELIVEREDUNIONAPPROVE DELIVER

LintSyntax

UnitSecurityQualityPublish

LintSyntax

Unit

ProvisionDeploySmoke

Functional

Provision

DeploySmoke

Functional

ProvisionDeploySmoke

Functional

ProvisionDeploySmoke

Functional

Submit

Change

Does thiscode changelook good?

Do we wantto ship this?

Page 44: Successful Practices for Continuous Delivery CodeCPH

Shared WorkflowDelivery’s pipeline is shared across projects and teams

Page 45: Successful Practices for Continuous Delivery CodeCPH
Page 46: Successful Practices for Continuous Delivery CodeCPH
Page 47: Successful Practices for Continuous Delivery CodeCPH
Page 48: Successful Practices for Continuous Delivery CodeCPH

Chef Provides a Proven Approach to DevOps

Apps

Runtime environments

Infrastructure

...

...

...

Targets/Workloads

Collaborative Dev Production

Chef Server

Chef Server

Chef Supermarket

Assessment

Chef Compliance

SearchAuditDiscover

ProvisionDeploy

Test

Chef Delivery

Local Dev

ModelBuildTest

Chef DK

Chef Client & Cookbooks

Page 49: Successful Practices for Continuous Delivery CodeCPH

What questions can I answer for you?