Lessons Learned from Continuous Delivery

Preview:

Citation preview

Lessons Learned From Continuous DeliveryOut of the Frying Pan, Into the FireMandi WallsLeeds DevOpsJanuary 31, 2017

Mandi Walls

Technical Community Manager for EMEA@lnxchkmandi@chef.io

Who Is Chef?

Why Continuous Delivery?

• Used as a proxy for success with DevOps transformations• Blame John Allspaw and Paul Hammond

• “10+ Deploys A Day at Flickr”

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

Technical LessonsThe Fun Stuff

Lesson: Automation

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

Lesson: Dynamic Infrastructure

• 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

Do you HAVE to go to the Cloud?

• Well….• You need cloud-approximate features• APIs• Resources-on-Demand

Infrastructure as Code

• Programmatically provision and configure components

• Treat like any other code base• Reconstruct business from code repository,

data backup, and compute resources• Partner with dynamic infrastructure• “Cattle not pets” or “Crops not house plants”

How Chef Got Into DevOps

• System automation is often a first step for transitioning to DevOps work practices• With or without previous experience in Agile• Agile left Operations concerns in the dark• Config management presents practical value

• Displays easy wins, demonstrable and measurable outcomes• MTTR

The game changer: rapid time to value

Innovation

Quality/Compliance

DynamicInfrastructure

Infrastructure as Code

Automate the Stack

DevOps

+ +

Trust The Automation

Lesson: Revision Control

• Findings from State of DevOps report• Everyone must use version control

• Dev• Ops• You• Me• The dog your hipster office mate brings to work

Lesson: Automated Testing

• Difficult tasks – automating the testing of applications developed internally and COTS or contract work

• Different tools for different languages and platforms• Delivers a lot of value, but costs a lot to get going• Unfortunately met a lot of orgs that struggle with this or choose to postpone

Testing Infra Code Toodescribe '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

Culture LessonsThe Messy Stuff

Lesson: Collaboration

• Ideological shift for Operations folks used to working alone• Also difficult for specialized techs in silos – Storage Ops, NetOps, Security• Talking to people vs just putting in tickets and waiting

• The stereotypical “throw it over the wall”

Lesson: CAMS to CALMS

• CAMS: Culture, Automation, Metrics, Sharing (c. 2010)• CALMS: Culture, Automation, Lean, Metrics, Sharing• Using Lean to break through the logjam of enterprise processes

Lean

• Eliminate non-value-added action – Don’t do things that don’t add value just because you’ve always done them

• Pull over Push – Spend time on the things customers want to use. Don’t spend time thinking about ways to force them to use things they don’t want

• Kaizen – Continuously improve people, processes, tools• Kaikaku – Be willing to change the whole thing if it isn’t working• Small Batch + Experimentation – Often learned from Agile

Business StuffThe “Culture + Tools = ££££” Stuff

Failure

• Accepting failure as part of experimentation• Practice recognizing how much risk is involved in each experiment

• The cost of an individual failure

Blameless Culture

• Recognizing that complex systems have complex problems• The system may be too complex for one human to fully understand• Research in other systems fields

• Aerospace and aviation, nuclear power generation, etc• “Human error” is often cited but not often the actual problem

• The humans didn’t know your system didn’t have redundant error handling• The humans didn’t know there wasn’t alerting on a subsystem they weren’t told about

Lesson: Business Value

• Fits in with Lean• Work on the things that will add value to users, even if they aren’t the most fun

• “Eating your vegetables”• Minimize NIH in favor of reuse

Managing Risk

• Small batches to manage the near-term costs• Validate with customers in short timeframes• Introducing near-term volatility to mitigate long-term risk

We spent a year building this thing but no one liked it!

Lesson: Skills x Contractors x Employees

• DevOps is a way of life• Getting to Continuous Delivery takes TIME• Managing the skill matrix of the people working on the project is important• Harder to do when folks are leaving after 6 months to find something more

interesting

TrendsWhat’s up with DevOps in 2017+

Containers

• Of course. • Because containers.• And microservices.• And whatever comes next as the smallest compartment of compute

Shifting “To the Left”

• Pushing more and more activities, discussion, acknowledgement of complexity to earlier stages of the process

• Security, compliance, testing, performance

http://www.rebalanceclinic.co.nz/wp-content/uploads/2013/05/keep-left.png

Tools For All Teams

• Complement collaboration, communication, transparency• Integrate dynamic infrastructure, testing, reporting

We Are Chef

• https://chef.io• Find us! https://events.chef.io/• learn.chef.io

Recommended