accu16 "let's not repeat the mistakes of soa: 'micro' services, macro...

51
The 'Business' Behind Microservices: (Let'S Not Repeat the Mistakes of SOA) Organisational, architectural and Operational Challenges Daniel Bryant @danielbryantuk www.opencredo.com

Upload: daniel-bryant

Post on 09-Apr-2017

878 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

The 'Business' Behind Microservices:(Let'S Not Repeat the Mistakes of SOA)

Organisational, architectural and Operational Challenges

DanielBryant@danielbryantuk

www.opencredo.com

Page 2: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

BusinessandPeople==“Fluffiness”?

21/04/2016 @danielbryantuk |@oakinger

Page 3: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

“Micro-fluffiness?”

21/04/2016 @danielbryantuk |@oakinger

Page 4: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

KeyMessages

Thetransitiontoimplementing‘microservices’cannotbecompletedsuccessfullywithtechnologyalone

- Thinkorganisation,architecture,operations-

Werequireaholisticviewpointforchange,butweoftenresist.Challengeyourself,yourteamandyourcompany

21/04/2016 @danielbryantuk |@oakinger

Page 5: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

WhoAmI?

• London JavaCommunityAssociate

• AdoptOpenJDK andJSR

• InfoQEditor,DZone MVB,Voxxed

21/04/2016 @danielbryantuk

• ChiefScientistatOpenCredoü Digital/technicaltransformationsü Java,Golang,CI/CD,DevOpsü Microservices,cloud,containersü Maintainerofmuservicesweekly.com

Page 6: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

So,Whataremicroservices?“Loosely coupled service oriented architecture

with bounded contexts”Adrian Cockcroft

“Applications that fit in your head”James Lewis

21/04/2016 @danielbryantuk

Page 7: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

So,Whataremicroservices?• Architecturalstyle - buildservicesaroundbizcapability• Singleappcomposedofmultipleservices• Servicesareindividualprocesses,individuallydeployable• Lightweight externalcommunication(e.g.RESToverHTTP)• Potentiallypolyglot LanguageandDatastores• Minimumcentralised management

21/04/2016 @danielbryantuk

Page 8: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Monolithvsmicroservices

21/04/2016 @danielbryantuk

martinfowler.com/articles/microservices.html

Page 9: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

So,thisappearsfamiliar(Corba,SOA,etc)…

Oh,Yes...Butthistimeit'sDifferent...

Hopefully...

21/04/2016 @danielbryantuk

Page 10: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

ThePerfectStorm?• Collaborativeprocesses (requirementforspeed)– Agile,leanandDevops

• Programmableinfrastructure– Config management,Cloudandcontainers

• Opensource– Download,consumeandcontribute

21/04/2016 @danielbryantuk

Page 11: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

OverthelastfewyearsofworkingwithclientsatOpenCredoWehavecometovalue:

products overprojectssmallinter-disciplineteamsoverlargehomogeneousteamsmultiplecohesiveservicesoverhighlycoupledmonoliths

goal-driventechnicalleadership overcommandandcontrolautomatedcontinuousdeploymentovermanualbigbangs

individualsandinteractions overprocessesandtools

Organisation,Architecture,(Dev)Operations

21/04/2016 @danielbryantuk |@oakinger

Page 12: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Organisation: Conway was telling the truth...21/04/2016 @danielbryantuk |@oakinger

Page 13: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Conway’sLaw

21/04/2016 @danielbryantuk |@oakinger

Page 14: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

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

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

21/04/2016 @danielbryantuk |@oakinger

Page 15: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

PortfolioPlanning• Budgetforcapacity(#NoProjects)

• Predictablesoftwaredevelopment?– Chaseverifiablevalueinstead(KPIs)

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

21/04/2016 @danielbryantuk |@oakinger

Page 16: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

AWordofCaution• DividedCompanies

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

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

21/04/2016 @danielbryantuk |@oakinger

Page 17: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Bi-Modal/Tri-ModalIT

21/04/2016 @danielbryantuk |@oakinger

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

SimonWardley blogsextensivelyinthisspace…

Page 18: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Organisational Valuessmallinter-disciplineteams overlargehomogeneousteams

products overprojects

userimpactovercustomerrequirements

creatingverifiableincrementalvalue overaddingfeatures

incrementaltransformationoverbig-bang“re-org”

21/04/2016 @danielbryantuk |@oakinger

Page 19: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Architecture: think Micro, Think Macro, Think LEADERSHIP

21/04/2016 @danielbryantuk |@oakinger

Page 20: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

whatmakesyouthinkmicroservices aretheanswer?”

SimonBrown(bit.ly/1n7D0vp)

21/04/2016 @danielbryantuk |@oakinger

Page 21: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

21/04/2016 @danielbryantuk |@oakinger

Page 22: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Architectural/DesignSkills

21/04/2016 @danielbryantuk |@oakinger

stackexchange.comwww.etsy.com

Page 23: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

gilt.com (AreAwesome!)

21/04/2016 @danielbryantuk |@oakinger

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

Page 24: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

• Communication(bit.ly/1Ia3u8o)

• Empathy

• ‘Justenough’upfrontdesign

21/04/2016 @danielbryantuk |@oakinger

Page 25: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

MigratingArchitecture• Findseams

bit.ly/1SwHryU

• Measuretoxicityofcode

• Standardisewhatmatters(glue/infra)

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

21/04/2016 @danielbryantuk |@oakinger

Page 26: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Designfor“Replacability”

21/04/2016 @danielbryantuk |@oakinger

JamesLewisbit.ly/1Qy4g2d

GregYoungbit.ly/1l0ir61

Page 27: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Caution:ShinyTechnologyAhead!• Plentyof‘microservice’technology

• Emergingplatformsandframeworks– Principlesandpracticeshoulddrivetooling

• Howtochoose?

21/04/2016 @danielbryantuk |@oakinger

Page 28: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

KeySkill:Evaluation

“Iwillpostponeusingthisshinynewframeworkuntilmypeershavevalidatedtheproposedbenefits

withrigorousscientificexperiments”

- Saidbynoprogrammer…ever

21/04/2016 @danielbryantuk |@oakinger

Page 29: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

MattRaible’s ComparisonMatrix

21/04/2016 @danielbryantuk |@oakinger

Page 30: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

ChooseBoringTechnology

21/04/2016 @danielbryantuk |@oakinger

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

Page 31: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

ArchitecturalValues

multiplecohesiveservices overahighlycoupledmonolith

trustandempathyovercommandandcontrol

autonomousgoal-drivenleadership overchaosandanarchy

implementingsignalsandperformanceindicatorsovermeasuringvanitymetrics

21/04/2016 @danielbryantuk |@oakinger

Page 32: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Operations: Automate everything (except the people)21/04/2016 @danielbryantuk |@oakinger

Page 33: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

• Inanutshell…– DevOps– CI/CD

21/04/2016 @danielbryantuk |@oakinger

Page 34: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

21/04/2016 @danielbryantuk |@oakinger

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

Page 35: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

IntheBeginning…

21/04/2016 @danielbryantuk |@oakinger

Page 36: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

RemindOthersoftheBenefits

21/04/2016 @danielbryantuk |@oakinger

Page 37: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

…andintheMiddle(andthe‘End’)

21/04/2016 @danielbryantuk |@oakinger

Page 38: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

…andintheMiddle(andthe‘End’)

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

Page 39: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

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

• Engage‘system2’thinking21/04/2016 @danielbryantuk |@oakinger

Page 40: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

• BrendanGregg’sUSEmethodology– checkutilization,saturation,anderrors.

• Symptom-basedMonitoring(Ticketmaster)21/04/2016 @danielbryantuk |@oakinger

Page 41: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

OperationalValuesdesigningforfailure overimplementingextensiveredundancy

independentautomatedcontinuousdeployment overcoordinatedmanualbigbangreleases

programmableinfrastructureovermanually-configuredsnowflakes

Individualsandinteractions overprocessesandbureaucracy

principlesandpractices overtooling

21/04/2016 @danielbryantuk |@oakinger

Page 42: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

5. Change management without Management double-speak21/04/2016 @danielbryantuk |@oakinger

Page 43: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

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

21/04/2016 @danielbryantuk |@oakinger

Page 44: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

(Visualising)Flow

21/04/2016 @danielbryantuk |@oakinger

bit.ly/1OePqid

bit.ly/1VZOsIM

Page 45: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

HaveaLittleEmpathy…

21/04/2016 @danielbryantuk |@oakinger

Page 46: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

SomeBedtimeReading…

21/04/2016 @danielbryantuk |@oakinger

Page 47: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Insummary…

21/04/2016 @danielbryantuk |@oakinger

Page 48: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

Organisation,Architecture,Operationsproducts overprojects

smallinter-disciplineteamsoverlargehomogeneousteams

multiplecohesiveservicesoverhighlycoupledmonolithsgoal-driventechnicalleadership overcommandandcontrol

automatedcontinuousdeploymentovermanualbigbangsindividualsandinteractions overprocessesandtools

21/04/2016 @danielbryantuk |@oakinger

Page 49: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

ABigThanksTo…

21/04/2016 @danielbryantuk |@oakinger

Page 50: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

THANKS... QUESTIONS?

WearehiringinUKandDE!

[email protected]

‘MicroservicesWeekly’(muservicesweekly.com)

www.opencredo.com/blog

21/04/2016 @danielbryantuk |@oakinger

Page 51: ACCU16 "Let's Not Repeat the Mistakes of SOA: 'Micro' Services, Macro Organisational, Architectural and Operational Challenges"

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

21/04/2016 @danielbryantuk |@oakinger