+ All Categories
Home > Software > Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Date post: 21-Jan-2018
Category:
Upload: skelton-thatcher-consulting-ltd
View: 1,507 times
Download: 0 times
Share this document with a friend
73
Practical Operability Techniques for Teams Matthew Skelton & Rob Thatcher Skelton Thatcher Consulting skeltonthatcher.com / @SkeltonThatcher Unicom Seminars – webinar – 28 September 2017
Transcript
Page 1: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Practical Operability Techniques for Teams

Matthew Skelton & Rob ThatcherSkelton Thatcher Consulting

skeltonthatcher.com / @SkeltonThatcher

Unicom Seminars – webinar – 28 September 2017

Page 2: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Today

40 mins: operability techniques10-15 mins: questions

Page 3: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

TodayWhat is operability?

Modern loggingRun Book dialogue sheets

Endpoint healthchecksCorrelation IDs

User Personas for dashboards

Page 4: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Training1-day tutorial with exercises

Book via Unicom: http://www.unicom.co.uk/workshops.html

Page 5: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

You

Software DeveloperTester / QA

DevOps EngineerTeam Leader

?

Page 6: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Operability:use modern logging, Run Book

dialogue sheets, endpoint healthchecks, correlation IDs,

and user personas as team collaboration techniques

Page 7: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 8: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

About us

Co-founders at Skelton Thatcher Consulting

Matthew Skelton Rob Thatcher

Page 9: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Team-first digital transformation30+ organisations

UK, US, EU, India, China

Page 10: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

We build modern capabilities

by mentoring your teams

Page 11: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Team Guide to Software OperabilityMatthew Skelton & Rob Thatcher

skeltonthatcher.com/publications

Download a free sample chapter

Page 12: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Practical Operability Techniques for Teams

Page 13: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

What is operability?

Page 14: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Operability

making software work well in Production

Page 15: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 16: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Logging with Event IDs

Page 17: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 18: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

logging with Event IDs

reduce time to detect problemsincrease team engagement

increase configurabilityenhance collaboration

#operability

Page 19: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

search by event

Event ID

{Delivered,InTransit,Arrived}

Page 20: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

transaction trace

Correlation ID

612999958…

Page 21: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

How many distinct event types (state transitions)

in your application?

Page 22: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 23: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

represent distinct states

Page 24: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

enum

Human-readable sets: unique values, sparse,

immutable

C#, Java, Python, node(Ruby, PHP, …)

Page 25: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Technical

Domain

public enum EventID

{

// Badly-initialised logging data

NotSet = 0,

// An unrecognised event has occurred

UnexpectedError = 10000,

ApplicationStarted = 20000,

ApplicationShutdownNoticeReceived = 20001,

MessageQueued = 40000,

MessagePeeked = 40001,

BasketItemAdded = 60001,

BasketItemRemoved = 60002,

CreditCardDetailsSubmitted = 70001,

// ...

}

Page 26: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

BasketItemAdded = 60001

BasketItemRemoved = 60002

Page 27: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

log using Event IDs with a modern

‘structured logging’ library

Page 28: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Example: video processing

On-demand processing of TV advertisementsAd-agency TV broadcasterHigh throughputGlitch-free video & audio

Page 29: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Storage I/O

Worker Job

Queue

Upload

Page 30: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 31: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 32: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Example: video processing

Discover processing bottlenecksTrigger alerts via LogEntries / HostedGraphiteReport on KPIsTarget areas for improvement

Page 33: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Run Book dialogue sheets

Page 34: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 35: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Run Book dialogue sheets

Checklists: typical operational considerations

Team-friendly exploration

Page 36: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

System characteristics

Hours of operation

During what hours does the service or system actually need to operate? Can portions or features of the system be unavailable at times if needed?

Hours of operation - core features

(e.g. 03:00-01:00 GMT+0)

Hours of operation - secondary features

(e.g. 07:00-23:00 GMT+0)

Data and processing flows

How and where does data flow through the system? What controls or triggers data flows?(e.g. mobile requests / scheduled batch jobs / inbound IoT sensor data )

Page 37: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

http://runbooktemplate.info/

Page 38: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

runbooktemplate.infoRun Book dialogue sheets

Page 39: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Endpoint healthchecks

Page 40: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 41: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

endpoint healthchecks

Every runnable app/service/daemonexposes /status/health

An HTTP GET to the endpoint returns:200 – "I am healthy"

500 – "I am sick"

Page 42: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

endpoint healthchecks

For databases and other non-HTTPcomponents, run a lightweight HTTP

service in front of the component200 / 500 responses

Page 43: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

https://github.com/Lugribossk/simple-dashboard

Page 44: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Correlation IDs

Page 45: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 46: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

‘Unique-ish’ identifier for each request

Passed through downstream layers

Page 47: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Unique-ish ID

Page 48: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Synchronous HTTP:

X-HEADER e.g. X-trace-idX-trace-id: 348e1cf8

If header is present, pass it on

(Yes, RFC6648, but this is internal only)

Page 49: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Asynchonous (queues, etc.):

Message Attributes, name:value paire.g. "trace-id":"348e1cf8"

AWS SQS: SendMessage() / ReceiveMessage()

Log the Correlation ID if present

Page 50: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Example: electronic trading

High speed, low latencyTrading options & derivativesConnected to stock exchangesSub-millisecond timings> £1 million per day traded

Page 51: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 52: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 53: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 54: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Correlations IDs for trading

Evidence for timely operationHelp identify bottlenecksTarget areas for perf tuningIdentify race conditionsIncrease operability

Page 55: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Lightweight user personas

Page 56: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom
Page 57: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Lightweight user personas:

Ops EngineerTest Engineer

Build & Deployment EngineerService Owner

Page 58: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

http://www.keepitusable.com/blog/?tag=alan-cooper

Page 59: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

https://www.geckoboard.com/blog/visualisation-upgrades-progressing-towards-a-more-useful-and-beautiful-dashboard/

Page 60: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Lightweight user personas:

What data does the User Persona need visible on a dashboard in orderto make decisions rapidly & safely?

Page 61: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Summary

Page 62: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Operability

making software work well in Production

Page 63: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

logging with Event IDs

use enum-based Event IDs to explore runtime behaviour

and fault conditions

Page 64: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Run Book dialogue sheets

explore and establish operational requirements as

a team, around a physical table, together

Page 65: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

endpoint healthchecks

HTTP 200 / 500 responses to /status/health call with

JSON details – good for tools and humans

Page 66: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Correlation IDs

trace execution using correlation IDs:

synchronous (HTTP X-trace-id) async (SQS MessageAttribute)

Page 67: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

lightweight user personas

explore the needs of different roles for rapid

decisions via dashboards

Page 68: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Operabilityuse modern logging, Run Book

dialogue sheets, endpoint healthchecks, correlation IDs,

and user personas as team collaboration techniques

Page 69: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Team Guide to Software OperabilityMatthew Skelton & Rob Thatcher

skeltonthatcher.com/publications

Download a free sample chapter

Page 70: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Training1-day tutorial with exercises

Book via Unicom: http://www.unicom.co.uk/workshops.html

Page 71: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Questions?

via the webinar chat toolvia Twitter: @SkeltonThatcher

via email: [email protected] Seminars: [email protected]

Page 72: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

Resources• Training: Practical Operability for Developers and Testers – led

by Matthew Skelton and Rob Thatcher – 1-day workshop –http://www.unicom.co.uk/practical-operability-for-developers-and-testers.html

• Team Guide to Software Operability by Matthew Skelton and Rob Thatcher (Skelton Thatcher Publications, 2016) http://operabilitybook.com/

• Run Book template & Run Book dialogue sheets http://runbooktemplate.info/

Page 73: Practical operability techniques for teams - webinar - Skelton Thatcher & Unicom

thank you

@SkeltonThatcherskeltonthatcher.com


Recommended