Post on 22-Jan-2018
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