47
Microservices: The Organisational and People Impact Daniel Bryant Independent Technical Consultant / CTO Big Picture Tech / SpectoLabs @danielbryantuk

AllDayDevOps: "Microservices: The People and Organisational Impact"

Embed Size (px)

Citation preview

Page 1: AllDayDevOps: "Microservices: The People and Organisational Impact"

Microservices:TheOrganisational andPeopleImpact

DanielBryantIndependentTechnicalConsultant/CTOBigPictureTech/SpectoLabs@danielbryantuk

Page 2: AllDayDevOps: "Microservices: The People and Organisational Impact"

1. The”microservice”architectureisaparadigmshift

2. Manychallengesrelatetoorganisations orpeople

3. Strategy,feedbackandsharedresponsibilitiesarevital

ThreeTakeaways

Page 3: AllDayDevOps: "Microservices: The People and Organisational Impact"

SessionTitleYourNameYourTitleYourCompanyYour@TwitterHandle

Page 4: AllDayDevOps: "Microservices: The People and Organisational Impact"

SessionTitleYourNameYourTitleYourCompanyYour@TwitterHandle

Page 5: AllDayDevOps: "Microservices: The People and Organisational Impact"

@danielbryantuk

• Technical Consultant, CTO at SpectoLabs• architecture, CI/CD, Programmable infrastructure

• Java, Go, JS, microservices, cloud, containers

• Continuous delivery of value through effective technology and teams

24/10/2017 @danielbryantuk

bit.ly/2jWDSF7

Page 6: AllDayDevOps: "Microservices: The People and Organisational Impact"

Preamble: microservices adoption

24/10/2017 @danielbryantuk

Microservices are here

innovateordie.com.au/2010/05/10/the-secret-to-accelerating-diffusion-of-innovation-the-16-rule-explained/

Page 7: AllDayDevOps: "Microservices: The People and Organisational Impact"

Today...

Create and share Strategy/tactics

Optimise for Feedback

Define Responsibilities

24/10/2017 @danielbryantuk

Page 8: AllDayDevOps: "Microservices: The People and Organisational Impact"

1. Strategy - situational awareness, vision & evaluation

24/10/2017 @danielbryantuk

Page 9: AllDayDevOps: "Microservices: The People and Organisational Impact"

Strategy: are Microservices A good fit?• “our 'mode TWO' apps are Microservices”

– Middle-management latch on to Buzzword

– Lipstick on the pig

• Not understanding architecture principles– Not building around business Functionality

– Creating Mini-monoliths (no twelve factors)

• No Well-defined DevOps / SRE / Ops– Deployment/operational free-for-all

24/10/2017 @danielbryantuk

Page 10: AllDayDevOps: "Microservices: The People and Organisational Impact"

Antipattern: (micro) Silver bullets

• No well-defined goals/strategy

• but...

– microservices is the solution?

• Determine business goals, create

hypothesis, (choose tech?), and validate

24/10/2017 @danielbryantuk

Page 11: AllDayDevOps: "Microservices: The People and Organisational Impact"

What are our goals?

• Delivery of value to end users (customers)

• Business agility

• Safer, more rapid changes to software systems

– But Consider CI/CD, Devops, and value stream before microservices

24/10/2017 @danielbryantuk

Page 12: AllDayDevOps: "Microservices: The People and Organisational Impact"

situational awareness

24/10/2017 @danielbryantuk

philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html

speakerdeck.com/acolyer/making-sense-of-it-all

Page 13: AllDayDevOps: "Microservices: The People and Organisational Impact"

Define goals and strategy

• Create s.m.a.r.t. goals

– With all stakeholders

• Pick your (strategic) poison

• Share the outcomes...

24/10/2017 @danielbryantuk

Page 14: AllDayDevOps: "Microservices: The People and Organisational Impact"

Communicate the vision

24/10/2017 @danielbryantuk

Page 15: AllDayDevOps: "Microservices: The People and Organisational Impact"

Tactics: Technical Leadership is vital

• Promote shared understanding

– Communication (bit.ly/1Ia3u8o)

• Risk management

• ‘Just enough’ up-front design– Microservice boundaries and 'glue'

24/10/2017 @danielbryantuk

Page 16: AllDayDevOps: "Microservices: The People and Organisational Impact"

Tactics: Technical Leadership is vital

• Conway's law is well accepted

– Align teams with service (vice versa)

• Not so clear where 'Architects' sit

– Overarching, consulting, or Per team?

• Highly recommended to pair Product managers with tech leads per team

24/10/2017 @danielbryantuk

Page 17: AllDayDevOps: "Microservices: The People and Organisational Impact"

Antipattern: technical insanity

• We created a technical mess with a monolith...

• But No change required with our approach to

architecture when implementing microservices???

• We need strong technical leadership

24/10/2017 @danielbryantuk

Page 18: AllDayDevOps: "Microservices: The People and Organisational Impact"

paypal.github.io/InnerSourceCommons/

www.oreilly.com/programming/free/getting-started-with-innersource.csp

Teams and technology: Innersource

24/10/2017 @danielbryantuk

Page 19: AllDayDevOps: "Microservices: The People and Organisational Impact"

Evaluating Tooling - The’Spine Model• Effective conversations make for effective

collaboration within a team– Kevin Trethewey & danie Roux, Agile 2015

• It's a TOOL Problem– As a species, we have always been Tool users

and makers.

– We use _____ to get our work done

• People get stuck in a dilemma where equally plausible options are available – “Going up the Spine” breaks deadlock

http://spinemodel.info/explanation/introduction/

Page 20: AllDayDevOps: "Microservices: The People and Organisational Impact"

Choices: Beware of Confirmation bias

24/10/2017 @danielbryantukhttps://thehftguy.wordpress.com/2016/11/01/docker-in-production-an-history-of-failure/ http://patrobinson.github.io/2016/11/05/docker-in-production/

Page 21: AllDayDevOps: "Microservices: The People and Organisational Impact"

Evaluation - It'S easy to be tricked

24/10/2017 @danielbryantuk

Page 22: AllDayDevOps: "Microservices: The People and Organisational Impact"

Evaluation - beware of bias and heuristics

24/10/2017 @danielbryantuk

Page 23: AllDayDevOps: "Microservices: The People and Organisational Impact"

Antipattern: netflix* (technical) envy

• Blindly copying Tech from

*netflix/google/amazon/twitter

• Learn about the principles,

practices and culture as well

24/10/2017 @danielbryantuk

Page 24: AllDayDevOps: "Microservices: The People and Organisational Impact"

2. Feedback - visibility and constant learning24/10/2017 @danielbryantuk

Page 25: AllDayDevOps: "Microservices: The People and Organisational Impact"

Feedback is vital

• Business

• Architecture

• operations

24/10/2017 @danielbryantuk

Page 26: AllDayDevOps: "Microservices: The People and Organisational Impact"

Visibility for the business

24/10/2017 @danielbryantuk

Page 27: AllDayDevOps: "Microservices: The People and Organisational Impact"

Microservices should be business-driven

• Bake-in metrics and signals

within services and platform

• Allows Validation of hypotheses

• Share regularly throughout org

24/10/2017 @danielbryantuk

www.youtube.com/watch?v=SPGCdziXlHU

Page 28: AllDayDevOps: "Microservices: The People and Organisational Impact"

Architectural feedback

24/10/2017 @danielbryantuk

Page 29: AllDayDevOps: "Microservices: The People and Organisational Impact"

ANTIPATTERN: TROJAN monoservices

• Its all too easy for the monolith to creep back in (somewhere)...

• h/t Matthew skelton

– Speaking at 14:5o today!

• Continually retrospect on technical work using supporting metrics

24/10/2017 @danielbryantuk

www.slideshare.net/SkeltonThatcher/teams-and-monoliths-matthew-skelton-londoncd-2016

Page 30: AllDayDevOps: "Microservices: The People and Organisational Impact"

Operational visibility

• Logging

– The 10 Commandments of Logging

– The Log: What every software

engineer should know

• Monitoring and alerting

– Rob Ewaschuk's Philosophy on

Alerting”

– Brendan Gregg's USE method

24/10/2017 @danielbryantuk

Page 31: AllDayDevOps: "Microservices: The People and Organisational Impact"

When bad things happen, people are always involved

24/10/2017 @danielbryantuk|@oakinger

Page 32: AllDayDevOps: "Microservices: The People and Organisational Impact"

Mikey dickerson's Hierarchy of reliability

24/10/2017 @danielbryantukwww.infoq.com/news/2015/06/too-big-to-fail

Page 33: AllDayDevOps: "Microservices: The People and Organisational Impact"

A little bit of standardisation goes a long way

24/10/2017 @danielbryantuk

• Automation is the goal

– Essential at scale with microservices

• But we have to understand problems

– Response, Postmortems & Root cause

• Checklists provide structure

www.microservices.com/talks/microservices-standardization-susan-fowler/

Page 34: AllDayDevOps: "Microservices: The People and Organisational Impact"

Microservices enable agility

• When done well...

• Build, measure, learn– Build-in signals and metrics

– Create a culture of experimentation and failing fast

• If you don'T collect the data and Take action to adapt...– there is limited benefit with microservices

24/10/2017 @danielbryantuk

Page 35: AllDayDevOps: "Microservices: The People and Organisational Impact"

3. Responsibilities - the buck always stops somewhere24/10/2017 @danielbryantuk

Page 36: AllDayDevOps: "Microservices: The People and Organisational Impact"

We hear this a lot...

“We’ve decided to reform our teams around squads, chapters and guilds”

• Beware of cargo-culting

– Repeat three times “We are not spotify”

• Understand the practices, principles, values etc

24/10/2017 @danielbryantuk

Page 37: AllDayDevOps: "Microservices: The People and Organisational Impact"

People Pain point - How does Devops fit into this?

• Devops topologies

– http://web.devopstopologies.com/

– @matthewpskelton

24/10/2017 @danielbryantuk

Page 38: AllDayDevOps: "Microservices: The People and Organisational Impact"

Kudos to Gitlab for their postmortem

24/10/2017 @danielbryantuk

Page 39: AllDayDevOps: "Microservices: The People and Organisational Impact"

DevOps - Responsibilities

24/10/2017 @danielbryantuk

Page 40: AllDayDevOps: "Microservices: The People and Organisational Impact"

Devops - define responsibilities

• Focus on what matters

– Ci/CD

– Mechanical sympathy

– Logging

– Monitoring

– Nfrs / cfrs

– Change management

– Incident resolution

24/10/2017 @danielbryantuk

Page 41: AllDayDevOps: "Microservices: The People and Organisational Impact"

How much value does non-deployed code

provide to users?

0(*UniversalUnitofValue)

24/10/2017 @danielbryantuk

*

Page 42: AllDayDevOps: "Microservices: The People and Organisational Impact"

Antipattern: water-micro-fall

• Crafting perfect microserviceplatforms / chassis / docs

• Building continually on undeployed(and untested) assumptions

• Change mindset to Continuously deliver incremental changes to production ASAP

24/10/2017 @danielbryantuk

Page 43: AllDayDevOps: "Microservices: The People and Organisational Impact"

In conclusion: Microservices will create change...24/10/2017 @danielbryantuk

Page 44: AllDayDevOps: "Microservices: The People and Organisational Impact"

Wrapping uP

• Strategy / Tactics– Ensure smart goals and accompanying strategy are defined and communicated

– Technical leadership (architecture) skills are vital

– Choose Tooling to support your approach (not the other way around)

• Feedback– Optimise for Visibility and learning (throughout the organisational stack)

• Responsibilities– Learn from Conway, netflix and spotify et al, but do not cargo cult blindly

– Devops (done right) is a prerequisite for microservices

24/10/2017 @danielbryantuk

Page 45: AllDayDevOps: "Microservices: The People and Organisational Impact"

THANKS...

@danielbryantuk

[email protected]

(Credit to the entire opencredo & Specto teamS for inspiration/guidance)

24/10/2017 @danielbryantuk

Page 46: AllDayDevOps: "Microservices: The People and Organisational Impact"

Bedtime reading

24/10/2017 @danielbryantuk

Page 47: AllDayDevOps: "Microservices: The People and Organisational Impact"

bit.ly/addo-slackFind me on slack, right now!