puppetconf 2016: testing and delivering puppet – michael stahnke, puppet

90
@stahnma Testing and Delivering Puppet Michael Stahnke | Director of Engineering | @stahnma

Upload: puppet

Post on 16-Apr-2017

69 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Testing and Delivering PuppetMichael Stahnke | Director of Engineering | @stahnma

Page 2: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Drawn Title Slide

Page 3: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

Michael StahnkePuppet, Inc

Director of Engineering

@stahnma

Page 4: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Building and Testing PuppetWhat are we doing and Why are we doing it?

@stahnma

Page 5: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

We have a CI system

@stahnma

Page 6: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 7: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 8: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 9: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 10: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Definition of history

@stahnma

Page 11: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 12: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

How is Pe formed?

@stahnma

Page 13: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 14: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 15: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

We were excited about 500 builds a week

shipping 3 times a week new platforms

@stahnma

Page 16: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Composition

@stahnma

Page 17: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Growing jenkins

Page 18: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 19: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

30-40% failure rate

@stahnma

Page 20: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Digging into failures

@stahnma

Page 21: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

v

Page 22: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Failures are still valid

@stahnma

Page 23: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Errors are not

@stahnma

Page 24: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 25: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 26: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 27: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 28: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Build our own tools

@stahnma

Page 29: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

List of tools we’ve built

Page 30: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 31: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Dont’ forget JJB

@stahnma

Page 32: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 33: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Study through observation and experiment

What are we doing?

@stahnma

Page 34: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The scientific method

@stahnma

Page 35: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The hypothesis

@stahnma

Page 36: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The experiment

@stahnma

Page 37: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 38: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The GoalDeveloper must be able to make a small change and

measure it without intervention

Page 39: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

A commit

@stahnma

Page 40: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

What’s the required path?

@stahnma

Page 41: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 42: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Review a change

Page 43: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 44: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 45: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The build Process

@stahnma

Page 46: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Fetch Sources

@stahnma

Page 47: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Patch thing if applicable

@stahnma

Page 48: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Build all components

@stahnma

Page 49: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Place components into an All in One Package

@stahnma

Page 50: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 51: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet
Page 52: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 53: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 54: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 55: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 56: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 57: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Page 58: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet
Page 59: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The Component Process

@stahnma

Page 60: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The Composite Process

Page 61: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 62: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The Control

@stahnma

Page 63: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

The variables

@stahnma

Page 64: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Small variable illustration

@stahnma

Page 65: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 66: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Challenges of on premise deliveryCost of being wrong

user’s ability to update multiple stream upgrade matrix

Page 67: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Error rate vs Failure

@stahnma

Page 68: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Today’s constraints

@stahnma

Page 69: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

2% error rate story

@stahnma

Page 70: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Capacity problems

@stahnma

Page 71: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Entry point onto the system

Page 72: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 73: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma@stahnma

Page 74: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

What’s next

@stahnma

Page 75: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Mesos

@stahnma

Page 76: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

ABS

Page 77: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Run me maybe

@stahnma

Page 78: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Dont’ forget JJB

@stahnma

Page 79: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Job DSL

@stahnma

Page 80: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

People organization

@stahnma

Page 81: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Goals for our Team

@stahnma

Page 82: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Sidebar

@stahnma

Page 83: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Tools and Sources Slide

@stahnma

Page 84: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

New platform

Page 85: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Start building

@stahnma

Page 86: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Facter/ T&P

@stahnma

Page 87: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

Workflow for shipment

@stahnma

Page 88: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

https://gist.github.com/stahnma/5d07b2a61387ab81e1f66e8ea4a32ab4

Page 89: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

Final Thoughts

● Puppet is difficult to build and test, but that’s what makes it fun

● We’ve learned a ton along the way, we’re still going

● New mistakes and lessons are indications of forward progress

● We build our own tools when we see fit, but prefer not to

● The system is our factory floor

● The system performs science

● The people make the system

Page 90: PuppetConf 2016: Testing and Delivering Puppet – Michael Stahnke, Puppet

@stahnma

`