OOP2016 "The Business Behind Microservices: Organisational, Architectural and Operational...

Post on 22-Jan-2018

2.313 views 0 download

Transcript of OOP2016 "The Business Behind Microservices: Organisational, Architectural and Operational...

The Business Behind Microservices:Organisational, architectural and Operational Challenges

DanielBryant&ErichEichinger

@danielbryantuk |@oakinger

www.opencredo.com

BusinessandPeople==“Fluffiness”?

06/02/2016 @danielbryantuk |@oakinger

“Micro-fluffiness?”

06/02/2016 @danielbryantuk |@oakinger

KeyMessages

Thetransitiontoimplementing‘microservices’cannotbecompletedsuccessfullywithtechnologyalone

- Thinkorganisation,architecture,operations-

Werequireaholisticviewpointforchange,butweoftenresist.Challengeyourself,yourteamandyourcompany

06/02/2016 @danielbryantuk |@oakinger

WhoAreWe?

06/02/2016 @danielbryantuk |@oakinger

DanielBryant(@danielbryantuk)ChiefScientistatOpenCredo

§ Digital/technicaltransformations§ Java,Golang, CI/CD,DevOps§ Maintainerofmuservicesweekly.com

ErichEichinger (@oakinger)LeadConsultantatOpenCredo

§ Digital/technicaltransformations§ Java,Microsoft,SoftwareCraftsmanship,DevOps§ Microservices,cloud,containers

1. Lets start with a Story... OpENCREDO Went Skiing06/02/2016 @danielbryantuk |@oakinger

1. Lets start with a Story... OpENCREDO Went Skiing06/02/2016 @danielbryantuk |@oakinger

OverthelastfewyearsofworkingwithclientsatOpenCredoWehavecometovalue:

products overprojectssmallinter-disciplineteamsoverlargehomogeneouscabalsmultiplecohesiveservicesoverhighlycoupledmonoliths

goal-driventechnicalleadership overcommandandcontrolautomatedcontinuousdeploymentovermanualbigbangs

individualsandinteractions overprocessesandtools

Organisation,Architecture,(Dev)Operations

06/02/2016 @danielbryantuk |@oakinger

2. Organisation: Conway was telling the truth...06/02/2016 @danielbryantuk |@oakinger

Conway’sLaw

06/02/2016 @danielbryantuk |@oakinger

Cross-functionalTeams• Spotify (bit.ly/1C46ZKo)– Culture

• Amazon(bit.ly/1F3Dgkm)– Communication

• Gilt(gi.lt/1rgyWvO)– Strategicalignment

06/02/2016 @danielbryantuk |@oakinger

PortfolioPlanning• Budgetforcapacity(#NoProjects)

• Predictablesoftwaredevelopment?– Chaseverifiablevalueinstead(KPIs)

• Businesscasessecurefunding…– Switchto“value-driven”projects– “WhatproblemscanwesolvebyX?”

06/02/2016 @danielbryantuk |@oakinger

AWordofCaution• DividedCompanies

– Traditional‘enterprise’organisation– Commandandcontrol, specialised,divisionoflabour– Predictableinstableenvironments– Sixsigma,ESBs,andclassicalSOA

• ConnectedCompanies– Startupsandforward-thinkers– Autonomous, fractal,service-focused– Adaptiveinuncertainenvironments– Agile/lean,REST,andmicroservices

06/02/2016 @danielbryantuk |@oakinger

Bi-Modal/Tri-ModalIT

06/02/2016 @danielbryantuk |@oakinger

blog.gardeviance.org/2015/06/why-agile-lean-and-six-sigma-must-die.html

SimonWardley blogsextensivelyinthisspace…

Organisational Valuessmallinter-disciplineteams overlargehomogeneouscabals

products overprojects

userimpactovercustomerrequirements

creatingverifiableincrementalvalue overaddingfeatures

incrementaltransformationoverbig-bang“re-org”

06/02/2016 @danielbryantuk |@oakinger

3. Architecture: think Micro, Think Macro, Think LEADERSHIP

06/02/2016 @danielbryantuk |@oakinger

Architectural/DesignSkills“Ifyoucan'tbuilda[well-structured]monolith,

whatmakesyouthinkmicroservices aretheanswer?”

SimonBrown(bit.ly/1n7D0vp)

06/02/2016 @danielbryantuk |@oakinger

06/02/2016 @danielbryantuk |@oakinger

Architectural/DesignSkills

06/02/2016 @danielbryantuk |@oakinger

stackexchange.comwww.etsy.com

gilt.com (AreAwesome)

06/02/2016 @danielbryantuk |@oakinger

www.slideshare.net/trenaman/javaone-2015-scaling-micro-services-at-gilt

TrustandEmpathyareVital

06/02/2016 @danielbryantuk |@oakinger

bit.ly/1IWwIGV bit.ly/1IYPMKa

Architecture,MinustheIvoryTowers• Technicalleadership(bit.ly/1EUwpLl)

• Communication(bit.ly/1Ia3u8o)

• Empathy

• ‘Justenough’upfrontdesign

06/02/2016 @danielbryantuk |@oakinger

MigratingArchitecture• Findseams

bit.ly/1SwHryU

• Measuretoxicityofcode

• Standardisewhatmatters(glue/infra)

• Patterns(bit.ly/1GRch2v)– Bigbang– Changeviacopy/extraction– Strangle

06/02/2016 @danielbryantuk |@oakinger

Designfor“Replacability”

06/02/2016 @danielbryantuk |@oakinger

JamesLewisbit.ly/1Qy4g2d

GregYoungbit.ly/1l0ir61

Caution:ShinyTechnologyAhead!• Plentyof‘microservice’technology

• Emergingplatformsandframeworks– Principlesandpracticeshoulddrivetooling

• Howtochoose?

06/02/2016 @danielbryantuk |@oakinger

KeySkill:Evaluation

“Iwillpostponeusingthisshinynewframeworkuntilmypeershavevalidatedtheproposedbenefits

withrigorousscientificexperiments”

- Saidbynoprogrammer…ever

06/02/2016 @danielbryantuk |@oakinger

MattRaible’s ComparisonMatrix

06/02/2016 @danielbryantuk |@oakinger

ChooseBoringTechnology

06/02/2016 @danielbryantuk |@oakinger

www.opencredo.com/2016/01/08/the-seven-deadly-sins-of-microservices-redux/

ArchitecturalValues

multiplecohesiveservices overahighlycoupledmonolith

trustandempathyovercommandandcontrol

autonomousgoal-drivenleadership overchaosandanarchy

implementingsignalsandperformanceindicatorsovermeasuringvanitymetrics

06/02/2016 @danielbryantuk |@oakinger

4. Operations: Automate everything (except the people)06/02/2016 @danielbryantuk |@oakinger

Microservices…MacroOperations• Microservice Prerequisites(bit.ly/1wIjY58)– Rapidprovisioning– Basicmonitoring– Rapidapplicationdeployment

• Inanutshell…– DevOps– CI/CD

06/02/2016 @danielbryantuk |@oakinger

06/02/2016 @danielbryantuk |@oakinger

www.opencredo.com/2015/10/31/javaone-building-a-microservice-development-ecosystem-video

IntheBeginning…

06/02/2016 @danielbryantuk |@oakinger

RemindOthersoftheBenefits

06/02/2016 @danielbryantuk |@oakinger

…andintheMiddle(andthe‘End’)

06/02/2016 @danielbryantuk |@oakinger

…andintheMiddle(andthe‘End’)

06/02/2016 @danielbryantuk |@oakingerwww.infoq.com/news/2015/06/too-big-to-fail

FailingtoPrepare,isPreparingto…• Practice– Chaos,Gamedays,DiRT sessions

• Accountability– R.A.S.C.I.

• Engage‘system2’thinking06/02/2016 @danielbryantuk |@oakinger

HelpfulProcesses• BDDuserjourneysacrosssystem(viaAPIs)– …and individualservices– Don’tforget‘ilities’(ZAP,Jmeter)

• BrendanGregg’sUSEmethodology– checkutilization,saturation,anderrors.

• Symptom-basedMonitoring(Ticketmaster)06/02/2016 @danielbryantuk |@oakinger

OperationalValuesdesigningforfailure overimplementingextensiveredundancy

independentautomatedcontinuousdeployment overcoordinatedmanualbigbangreleases

programmableinfrastructureovermanually-configuredsnowflakes

Individualsandinteractions overprocessesandbureaucracy

principlesandpractices overtooling

06/02/2016 @danielbryantuk |@oakinger

5. Change management without Management double-speak06/02/2016 @danielbryantuk |@oakinger

ChangeManagementisEssential• Fairprocess(three‘E’s)– Engagement– Explanation– Expectation

• Leadingchange– Transformationisaprocess– Visualise theissuesandgoals– Communicate,plan,evaluate,learn

06/02/2016 @danielbryantuk |@oakinger

(Visualising)Flow

06/02/2016 @danielbryantuk |@oakinger

bit.ly/1OePqid

bit.ly/1VZOsIM

HaveaLittleEmpathy…

06/02/2016 @danielbryantuk |@oakinger

SomeBedtimeReading…

06/02/2016 @danielbryantuk |@oakinger

Insummary…

06/02/2016 @danielbryantuk |@oakinger

Organisation,Architecture,Operationsproducts overprojects

smallinter-disciplineteamsoverlargehomogeneouscabals

multiplecohesiveservicesoverhighlycoupledmonolithsgoal-driventechnicalleadership overcommandandcontrol

automatedcontinuousdeploymentovermanualbigbangsindividualsandinteractions overprocessesandtools

06/02/2016 @danielbryantuk |@oakinger

ABigThanksTo…

06/02/2016 @danielbryantuk |@oakinger

THANKS... QUESTIONS?

WearehiringinUKandDE!

daniel.bryant@opencredo.com|ee@opencredo.com

‘MicroservicesWeekly’(muservicesweekly.com)

www.opencredo.com/blog

06/02/2016 @danielbryantuk |@oakinger

AdditionalReferences• http://www.infoq.com/presentations/7-sins-microservices

• https://www.opencredo.com/2016/01/08/the-seven-deadly-sins-of-microservices-redux/

• https://www.opencredo.com/2015/11/11/testing-with-microservices/

• https://www.opencredo.com/2015/09/20/working-locally-with-microservices/

• https://www.opencredo.com/2015/06/22/microservices/

• https://dzone.com/guides/cloud-development

• https://www.youtube.com/watch?v=wyZNxB172VI

06/02/2016 @danielbryantuk |@oakinger