an agile introduction to devops

42
@gil_zilberfel An agile introduction to DevOps

Upload: gil-zilberfeld

Post on 15-Apr-2017

373 views

Category:

Software


1 download

TRANSCRIPT

Page 1: An agile introduction to DevOps

@gil_zilberfeld

An agile introduction to DevOps

Page 2: An agile introduction to DevOps

@gil_zilberfeld

Hello!

I AM GIL ZILBERFELD

www.gilzilberfeld.comwww.everydayunittesting.com

www.fastee.im

@gil_zilberfeld

Page 3: An agile introduction to DevOps

@gil_zilberfeld

Page 4: An agile introduction to DevOps

@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.

Page 5: An agile introduction to DevOps

@gil_zilberfeld

Page 6: An agile introduction to DevOps

@gil_zilberfeld

Page 7: An agile introduction to DevOps

@gil_zilberfeld

Page 8: An agile introduction to DevOps

@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.

Page 9: An agile introduction to DevOps

@gil_zilberfeld

Page 10: An agile introduction to DevOps

@gil_zilberfeld

Page 11: An agile introduction to DevOps

@gil_zilberfeld

Page 12: An agile introduction to DevOps

@gil_zilberfeld

Page 13: An agile introduction to DevOps

@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)

Page 14: An agile introduction to DevOps

@gil_zilberfeld

Page 15: An agile introduction to DevOps

@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?

Page 16: An agile introduction to DevOps

@gil_zilberfeld

Page 17: An agile introduction to DevOps

@gil_zilberfeld

Working software

Developed

Tested

Does what we want

Does what the user wants

Incrementally adds value

Page 18: An agile introduction to DevOps

@gil_zilberfeld

Page 19: An agile introduction to DevOps

@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?

Page 20: An agile introduction to DevOps

@gil_zilberfeld

Page 21: An agile introduction to DevOps

@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?

Page 22: An agile introduction to DevOps

@gil_zilberfeld

Page 23: An agile introduction to DevOps

@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?

Page 24: An agile introduction to DevOps

@gil_zilberfeld

Page 25: An agile introduction to DevOps

@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

Page 26: An agile introduction to DevOps

@gil_zilberfeld

The App

Design a pipeline from development to pre-

production with the following goals:

Quickest feedback

Reliability

Page 27: An agile introduction to DevOps

@gil_zilberfeld

Page 28: An agile introduction to DevOps

@gil_zilberfeld

Page 29: An agile introduction to DevOps

@gil_zilberfeld

Page 30: An agile introduction to DevOps

@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?

Page 31: An agile introduction to DevOps

@gil_zilberfeld

Page 32: An agile introduction to DevOps

@gil_zilberfeld

PRINCIPLESMinimize risk

Minimize waste

You can also split your content

PRACTICESProduction monitoringChaos monkeys

Reports on KPIs

How do we do monitor it?

Page 33: An agile introduction to DevOps

@gil_zilberfeld

Page 34: An agile introduction to DevOps

@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?

Page 35: An agile introduction to DevOps

@gil_zilberfeld

Page 36: An agile introduction to DevOps

@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

Page 37: An agile introduction to DevOps

@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

Page 38: An agile introduction to DevOps

@gil_zilberfeld

Page 39: An agile introduction to DevOps

@gil_zilberfeld

Page 40: An agile introduction to DevOps

@gil_zilberfeld

Page 41: An agile introduction to DevOps

@gil_zilberfeld

Page 42: An agile introduction to DevOps

@gil_zilberfeld

Thanks!

ANY QUESTIONS?

You can find me at:@gil_zilberfeld

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

http://www.fastee.im