An agile introduction to DevOps

Preview:

Citation preview

@gil_zilberfeld

An agile introduction to DevOps

@gil_zilberfeld

Hello!

I AM GIL ZILBERFELD

www.gilzilberfeld.comwww.everydayunittesting.com

www.fastee.im

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

DevOpsA culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology professionals while automating the process of software delivery and infrastructure changes.

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

DevOpsA culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology professionals while automating the process of software delivery and infrastructure changes.

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

The new stuff

New complex problems (Cloud, Serverless)

Environments all the way down

Governance and risk (“You can’t do that!”)

We trust automation

Better tools (Docker, Puppet, Chef)

@gil_zilberfeld

@gil_zilberfeld

New questions

What is release management?

What is a version?

What is a feature?

What is an environment?

When is it ready for release?

How do we fix it when it fails?

@gil_zilberfeld

@gil_zilberfeld

Working software

Developed

Tested

Does what we want

Does what the user wants

Incrementally adds value

@gil_zilberfeld

@gil_zilberfeld

PRINCIPLESMinimize risk

Minimize waste

Early feedback

You can also split your content

PRACTICESSource controlBranching

Continuous integration

Unit and integration tests

How do we do develop it?

@gil_zilberfeld

@gil_zilberfeld

PRINCIPLESMinimize risk

Minimize waste

Early feedback

You can also split your content

PRACTICESSource controlBranching

Continuous integrationAutomatic packageAutomatic deploy

Unit and integration testsE2E tests“Non-functional” tests

How do we do test it?

@gil_zilberfeld

@gil_zilberfeld

PRINCIPLESMinimize risk

Minimize waste

Early feedback

You can also split your content

PRACTICESBranchingSeparate environments

Continuous integrationAutomated sanity testsAutomatic packageAutomatic deploy

Functional testsE2E tests“Non-functional” tests

How do we do test it?

@gil_zilberfeld

@gil_zilberfeld

The App

Manual test suite takes a week to run

Data preparation for testing takes 7 hours

Single development environment

No actual customers

Everyone steps on everyone else

@gil_zilberfeld

The App

Design a pipeline from development to pre-

production with the following goals:

Quickest feedback

Reliability

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

PRINCIPLESMinimize risk

Early feedback

You can also split your content

PRACTICESVersion management“Side by side” deployContinuous deployment

Canary releasesPost-deployment testingRollback and roll-forward

How do we do ship it?

@gil_zilberfeld

@gil_zilberfeld

PRINCIPLESMinimize risk

Minimize waste

You can also split your content

PRACTICESProduction monitoringChaos monkeys

Reports on KPIs

How do we do monitor it?

@gil_zilberfeld

@gil_zilberfeld

PRINCIPLESMinimize risk

Minimize waste

Early feedback

You can also split your content

PRACTICESFeature togglesVersioning

MVPs

Data extractionA/B testing

How do we do product validation?

@gil_zilberfeld

@gil_zilberfeld

The App

The App is live!

We think people interested in hi-tech gadgets

will bring us the big bucks

We want to run a bucket load of experiments

We also have mobile versions, not just web

@gil_zilberfeld

The App

Design the pipeline from dev to production with

the goals:

Quick feedback

Do not interrupt production

Describe risks mitigations, capabilities, and

issues

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

@gil_zilberfeld

Thanks!

ANY QUESTIONS?

You can find me at:@gil_zilberfeld

http://www.GilZilberfeld.comhttp://www.EverydayUnitTesting.com

http://www.fastee.im

Recommended