MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer...

56
MicroServices, IoT, and Agile… Seriously! Fred George Fred George Consulting [email protected] @fgeorge52

Transcript of MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer...

Page 1: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

MicroServices, IoT, and Agile…Seriously!Fred GeorgeFred George [email protected]

@fgeorge52

Page 2: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Fred George

Copyright © 2016 by Fred George. All rights reserved. 3

• Technologist

• Computer networks – 70’s

• Token Ring LAN – 80’s

• GUI’s – late 80’s

• OO – late 80’s

• Agile – late 90’s

• MicroServices – mid-2000’s

• Programmer• Since 1968 (Basic)

• 65,000 hours experience

• 70+ languages

• Computer Science Degree 1973

• Manager• 17 years IBM

• Business degree, MIT Sloan School 1986

• Product Owner, IBM

• VP, ThoughtWorks

• Co-founder, Outpace (Silicon Valley)

• Senior Advisor to 3 tech companies

Page 3: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Requirements Uncertainty

Copyright © 2017 by Fred George. All rights reserved. 6

CertaintyUncertainty

Y2k Agile

Page 4: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Fuzzy vs. Traditional Problems

Copyright © 2017 by Fred George. All rights reserved. 7

Simple

Complicated

ChaoticCause a Effect

Cause aaa Effect

Effect? Cause?

Cause ? Effect

Disorder

Complex

Cynefin (kun-ev-in)

Dave Snowden – HBR & YouTube

Page 5: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Chaotic

Copyright © 2017 by Fred George. All rights reserved. 8

Simple

ComplicatedComplex

Cynefin (kun-ev-in)

Dave Snowden – HBR & YouTube

Fuzzy vs. Traditional Problems

Page 6: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Requirements Uncertainty

Copyright © 2017 by Fred George. All rights reserved. 9

CertaintyUncertainty

,but viable

Page 7: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Age of Agents• Assistive technologies abound

• Google Home, Siri, Alexa, Cortana, …

• Real innovation not voice, but interaction of backing services

Copyright © 2017 by Fred George. All rights reserved. 10

Page 8: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Home IoT Demonstration

Copyright © 2017 by Fred George. All rights reserved. 11

Page 9: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Copyright © 2017 by Fred George. All rights reserved. 12

Page 10: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

•What’s the business case?

•Why bother?

• High volume potential

• Bellwether for ease of use

• Fun!

Is Home IoT Interesting?

Copyright © 2017 by Fred George. All rights reserved. 13

Page 11: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Home IoT Hub Contenders

Copyright © 2017 by Fred George. All rights reserved. 14

Page 12: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Amazon Echo

Copyright © 2017 by Fred George. All rights reserved. 15

Page 13: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Google Home

Copyright © 2017 by Fred George. All rights reserved. 16

Page 14: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Xbox One

Copyright © 2017 by Fred George. All rights reserved. 17

Page 15: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Apple TV

Copyright © 2017 by Fred George. All rights reserved. 18

Page 16: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Phillips Hue Bridge

Copyright © 2017 by Fred George. All rights reserved. 19

Page 17: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Samsung Refrigerator

Copyright © 2017 by Fred George. All rights reserved. 20

Page 18: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Home IoT Morass

Copyright © 2017 by Fred George. All rights reserved. 21

Page 19: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

MicroServices to the Rescue!

•Uncertainty, so Let’s Play!

•Isolate volatility; optimize replaceablity

•Changing devices

•Evolving protocols

•Layer functionality on functionality

Copyright © 2017 by Fred George. All rights reserved. 22

Page 20: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

• Less common than Synchronous

• Consistent with Reactive and Agent-based

• Very, very…

• Small

• Loosely coupled

• Rapidly deployable

• RESTful with registration not required

• Compatible with experimentation

Asynchronous MicroServices

Copyright © 2017 by Fred George. All rights reserved. 23

Page 21: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Rapids, Rivers, and Ponds

Copyright © 2017 by Fred George. All rights reserved. 24

Page 22: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Need Pattern for Asynchronous

Copyright © 2017 by Fred George. All rights reserved. 25

Bus

ServiceService

Service

Need

Need

Need

Sol’n’sSol’n

•Variants easy

•Graceful degradation

Choose Sol’n

Page 23: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Incremental Applications

Copyright © 2017 by Fred George. All rights reserved. 26

Event Bus

Rental offers

Car rent

Legacy server

Brand offers

Location offers

Segmentation

Membership

CarRent.com Login

Sally

A B

Page 24: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

• RabbitMQ for event bus (in pub-sub)

• Simpler than Kafka

• Good enough

• JSON

• XML < JSON < compact_binary

• Docker containers; Swarm hosts

• ToDo: Commodity Linux boxes

Technology Choices

Copyright © 2017 by Fred George. All rights reserved. 27

Page 25: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Architectural Principles

• Uncertainty => Just-in-Time Design

• Behavior-Oriented Services

• Services as small as possible with kick

• Publish conclusions

• If you do something interesting, publish!

• Reliability through:

• Idempotency – do it again!

• Redundancy – buses, messages, services, hosts

Copyright © 2017 by Fred George. All rights reserved. 28

Page 26: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Framework from MicroServices Workshop

Copyright © 2017 by Fred George. All rights reserved. 29

Page 27: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Framework from MicroServices Workshop

Copyright © 2017 by Fred George. All rights reserved. 30

Page 28: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Framework from MicroServices Workshop

Copyright © 2017 by Fred George. All rights reserved. 31

Page 29: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Framework from MicroServices Workshop

Copyright © 2017 by Fred George. All rights reserved. 32

Page 30: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Framework from MicroServices Workshop

Copyright © 2017 by Fred George. All rights reserved. 33

Page 31: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Framework from MicroServices Workshop

Copyright © 2017 by Fred George. All rights reserved. 34

Page 32: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Framework from MicroServices Workshop

Copyright © 2017 by Fred George. All rights reserved. 35

Page 33: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Architecture: Hardware

Copyright © 2017 by Fred George. All rights reserved. 36

IoT Hardware

Device API

Scene API

Page 34: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Add Event Bus

Copyright © 2017 by Fred George. All rights reserved. 37

Event Bus

IoT Hardware

Page 35: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Tier 1: Hardware Access

Copyright © 2017 by Fred George. All rights reserved. 38

Event Bus

IoT Hardware

Tie

r 1

Page 36: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Tier 2: Scenes

Copyright © 2017 by Fred George. All rights reserved. 39

Event Bus

IoT Hardware

Tie

r 1

Tie

r 2

Page 37: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Tier 3: Reactive Services

Copyright © 2017 by Fred George. All rights reserved. 40

Event Bus

IoT Hardware

Tie

r 1

Tie

r 2

Tie

r 3

e.g., ToD + Motion => Set Scene

Page 38: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

MetaServices: Monitor

Copyright © 2017 by Fred George. All rights reserved. 41

Event Bus

IoT Hardware

Tie

r 1

Tie

r 2

Tie

r 3

Mo

nit

or

Page 39: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

MetaServices: Detection

Copyright © 2017 by Fred George. All rights reserved. 42

Event Bus

IoT Hardware

Tie

r 1

Tie

r 2

Tie

r 3

Mo

nit

or

Erro

rD

etct

ion

Page 40: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

MetaServices: Correction

Copyright © 2017 by Fred George. All rights reserved. 43

Event Bus

IoT Hardware

Tie

r 1

Tie

r 2

Tie

r 3

Mo

nit

or

Erro

rC

orr

ect

ion

Erro

rD

ete

ctio

n

Page 41: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Maintaining State

Copyright © 2017 by Fred George. All rights reserved. 44

Insistent Service

Page 42: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Choreography Sticky Colors

Copyright © 2017 by Fred George. All rights reserved. 45

BusHue HW

Page 43: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Choreography Sticky Colors

Copyright © 2017 by Fred George. All rights reserved. 46

BusHue HW hue_state

Page 44: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Choreography Sticky Colors

Copyright © 2017 by Fred George. All rights reserved. 47

BusHue HW hue_state

*

Page 45: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Choreography Sticky Colors

Copyright © 2017 by Fred George. All rights reserved. 48

BusHue HW hue_state

*

hue_be_state

Page 46: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Choreography Sticky Colors

Copyright © 2017 by Fred George. All rights reserved. 49

Switch Bus Light sceneHue HW hue_state hue_be_state

*

……

Page 47: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Choreography Sticky Colors

Copyright © 2017 by Fred George. All rights reserved. 50

Switch Bus Light scene DashboardHue HW hue_state hue_be_state

*

……

……

Page 48: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Observations

•Lots of messages

•No RESTful interfaces between services

•No constraints on multiple instances/versions

•Unit tests not required

•Fast-failing system rather than acceptance tests

Copyright © 2017 by Fred George. All rights reserved. 51

Page 49: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

•Feedback

•Communication

•Simplicity

•Courage

•Respect

XP Values at Work

Copyright © 2017 by Fred George. All rights reserved. 52

Page 50: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Agile Practices and Roles

• Stand ups

• Story narratives

• Retrospectives

• Estimates

• Iterations

• Mandatory

pairing

Copyright © 2017 by Fred George. All rights reserved. 53

• Unit tests

• Acceptance tests

• Refactoring

• Patterns

• Continuous integration

• BA

• Developer

• Architect

• SCRUM master

• QA

• Manager

• Customer

Page 51: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

• Stand ups

• Story narratives

• Retrospectives

• Estimates

• Iterations

• Mandatory

pairing

Agile Practices and Roles

Copyright © 2017 by Fred George. All rights reserved. 54

• Unit tests

• Acceptance tests

• Refactoring

• Patterns

• Continuous integration

• BA

• Developer

• Architect

• SCRUM master

• QA

• Manager

• Customer

Page 52: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

,but viable

Requirements Uncertainty

Copyright © 2017 by Fred George. All rights reserved. 55

CertaintyUncertainty • Idea-focused features• Full-stack developers• Fast failure systems• MicroServices• Event-based architecture• Continuous deployment

• Stories• Specialists• TDD• Acceptance tests• Migration scripts

Page 53: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Future: More Devices

Copyright © 2017 by Fred George. All rights reserved. 57

Page 54: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Future: Excel for Home IoT:

Copyright © 2017 by Fred George. All rights reserved. 59

Page 55: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

Future: Docker on Raspberry Pi

Copyright © 2017 by Fred George. All rights reserved. 63

Page 56: MicroServices, IoT, and Agile… - GOTO Conference...•MicroServices –mid-2000’s •Programmer •Since 1968 (Basic) •65,000 hours experience •70+ languages •Computer Science

MicroServices, IoT, and

Fred George

[email protected]

@fgeorge52

Copyright © 2017 by Fred George. All rights reserved. 64