accu16 "let's not repeat the mistakes of soa: 'micro' services, macro...
TRANSCRIPT
The 'Business' Behind Microservices:(Let'S Not Repeat the Mistakes of SOA)
Organisational, architectural and Operational Challenges
DanielBryant@danielbryantuk
www.opencredo.com
BusinessandPeople==“Fluffiness”?
21/04/2016 @danielbryantuk |@oakinger
“Micro-fluffiness?”
21/04/2016 @danielbryantuk |@oakinger
KeyMessages
Thetransitiontoimplementing‘microservices’cannotbecompletedsuccessfullywithtechnologyalone
- Thinkorganisation,architecture,operations-
Werequireaholisticviewpointforchange,butweoftenresist.Challengeyourself,yourteamandyourcompany
21/04/2016 @danielbryantuk |@oakinger
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
So,Whataremicroservices?“Loosely coupled service oriented architecture
with bounded contexts”Adrian Cockcroft
“Applications that fit in your head”James Lewis
21/04/2016 @danielbryantuk
So,Whataremicroservices?• Architecturalstyle - buildservicesaroundbizcapability• Singleappcomposedofmultipleservices• Servicesareindividualprocesses,individuallydeployable• Lightweight externalcommunication(e.g.RESToverHTTP)• Potentiallypolyglot LanguageandDatastores• Minimumcentralised management
21/04/2016 @danielbryantuk
Monolithvsmicroservices
21/04/2016 @danielbryantuk
martinfowler.com/articles/microservices.html
So,thisappearsfamiliar(Corba,SOA,etc)…
Oh,Yes...Butthistimeit'sDifferent...
Hopefully...
21/04/2016 @danielbryantuk
ThePerfectStorm?• Collaborativeprocesses (requirementforspeed)– Agile,leanandDevops
• Programmableinfrastructure– Config management,Cloudandcontainers
• Opensource– Download,consumeandcontribute
21/04/2016 @danielbryantuk
OverthelastfewyearsofworkingwithclientsatOpenCredoWehavecometovalue:
products overprojectssmallinter-disciplineteamsoverlargehomogeneousteamsmultiplecohesiveservicesoverhighlycoupledmonoliths
goal-driventechnicalleadership overcommandandcontrolautomatedcontinuousdeploymentovermanualbigbangs
individualsandinteractions overprocessesandtools
Organisation,Architecture,(Dev)Operations
21/04/2016 @danielbryantuk |@oakinger
Organisation: Conway was telling the truth...21/04/2016 @danielbryantuk |@oakinger
Conway’sLaw
21/04/2016 @danielbryantuk |@oakinger
Cross-functionalTeams• Spotify (bit.ly/1C46ZKo)– Culture
• Amazon(bit.ly/1F3Dgkm)– Communication
• Gilt(gi.lt/1rgyWvO)– Strategicalignment
21/04/2016 @danielbryantuk |@oakinger
PortfolioPlanning• Budgetforcapacity(#NoProjects)
• Predictablesoftwaredevelopment?– Chaseverifiablevalueinstead(KPIs)
• Businesscasessecurefunding…– Switchto“value-driven”projects– “WhatproblemscanwesolvebyX?”
21/04/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
21/04/2016 @danielbryantuk |@oakinger
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…
Organisational Valuessmallinter-disciplineteams overlargehomogeneousteams
products overprojects
userimpactovercustomerrequirements
creatingverifiableincrementalvalue overaddingfeatures
incrementaltransformationoverbig-bang“re-org”
21/04/2016 @danielbryantuk |@oakinger
Architecture: think Micro, Think Macro, Think LEADERSHIP
21/04/2016 @danielbryantuk |@oakinger
Architectural/DesignSkills“Ifyoucan'tbuilda[well-structured]monolith,
whatmakesyouthinkmicroservices aretheanswer?”
SimonBrown(bit.ly/1n7D0vp)
21/04/2016 @danielbryantuk |@oakinger
21/04/2016 @danielbryantuk |@oakinger
Architectural/DesignSkills
21/04/2016 @danielbryantuk |@oakinger
stackexchange.comwww.etsy.com
gilt.com (AreAwesome!)
21/04/2016 @danielbryantuk |@oakinger
www.slideshare.net/trenaman/javaone-2015-scaling-micro-services-at-gilt
Architecture,MinustheIvoryTowers• Technicalleadership(bit.ly/1EUwpLl)
• Communication(bit.ly/1Ia3u8o)
• Empathy
• ‘Justenough’upfrontdesign
21/04/2016 @danielbryantuk |@oakinger
MigratingArchitecture• Findseams
bit.ly/1SwHryU
• Measuretoxicityofcode
• Standardisewhatmatters(glue/infra)
• Patterns(bit.ly/1GRch2v)– Bigbang– Changeviacopy/extraction– Strangle
21/04/2016 @danielbryantuk |@oakinger
Designfor“Replacability”
21/04/2016 @danielbryantuk |@oakinger
JamesLewisbit.ly/1Qy4g2d
GregYoungbit.ly/1l0ir61
Caution:ShinyTechnologyAhead!• Plentyof‘microservice’technology
• Emergingplatformsandframeworks– Principlesandpracticeshoulddrivetooling
• Howtochoose?
21/04/2016 @danielbryantuk |@oakinger
KeySkill:Evaluation
“Iwillpostponeusingthisshinynewframeworkuntilmypeershavevalidatedtheproposedbenefits
withrigorousscientificexperiments”
- Saidbynoprogrammer…ever
21/04/2016 @danielbryantuk |@oakinger
MattRaible’s ComparisonMatrix
21/04/2016 @danielbryantuk |@oakinger
ChooseBoringTechnology
21/04/2016 @danielbryantuk |@oakinger
www.opencredo.com/2016/01/08/the-seven-deadly-sins-of-microservices-redux/
ArchitecturalValues
multiplecohesiveservices overahighlycoupledmonolith
trustandempathyovercommandandcontrol
autonomousgoal-drivenleadership overchaosandanarchy
implementingsignalsandperformanceindicatorsovermeasuringvanitymetrics
21/04/2016 @danielbryantuk |@oakinger
Operations: Automate everything (except the people)21/04/2016 @danielbryantuk |@oakinger
Microservices…MacroOperations• Microservice Prerequisites(bit.ly/1wIjY58)– Rapidprovisioning– Basicmonitoring– Rapidapplicationdeployment
• Inanutshell…– DevOps– CI/CD
21/04/2016 @danielbryantuk |@oakinger
21/04/2016 @danielbryantuk |@oakinger
www.opencredo.com/2015/10/31/javaone-building-a-microservice-development-ecosystem-video
IntheBeginning…
21/04/2016 @danielbryantuk |@oakinger
RemindOthersoftheBenefits
21/04/2016 @danielbryantuk |@oakinger
…andintheMiddle(andthe‘End’)
21/04/2016 @danielbryantuk |@oakinger
…andintheMiddle(andthe‘End’)
21/04/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’thinking21/04/2016 @danielbryantuk |@oakinger
HelpfulProcesses• BDDuserjourneysacrosssystem(viaAPIs)– …and individualservices– Don’tforget‘ilities’(ZAP,Jmeter)
• BrendanGregg’sUSEmethodology– checkutilization,saturation,anderrors.
• Symptom-basedMonitoring(Ticketmaster)21/04/2016 @danielbryantuk |@oakinger
OperationalValuesdesigningforfailure overimplementingextensiveredundancy
independentautomatedcontinuousdeployment overcoordinatedmanualbigbangreleases
programmableinfrastructureovermanually-configuredsnowflakes
Individualsandinteractions overprocessesandbureaucracy
principlesandpractices overtooling
21/04/2016 @danielbryantuk |@oakinger
5. Change management without Management double-speak21/04/2016 @danielbryantuk |@oakinger
ChangeManagementisEssential• Fairprocess(three‘E’s)– Engagement– Explanation– Expectation
• Leadingchange– Transformationisaprocess– Visualise theissuesandgoals– Communicate,plan,evaluate,learn
21/04/2016 @danielbryantuk |@oakinger
(Visualising)Flow
21/04/2016 @danielbryantuk |@oakinger
bit.ly/1OePqid
bit.ly/1VZOsIM
HaveaLittleEmpathy…
21/04/2016 @danielbryantuk |@oakinger
SomeBedtimeReading…
21/04/2016 @danielbryantuk |@oakinger
Insummary…
21/04/2016 @danielbryantuk |@oakinger
Organisation,Architecture,Operationsproducts overprojects
smallinter-disciplineteamsoverlargehomogeneousteams
multiplecohesiveservicesoverhighlycoupledmonolithsgoal-driventechnicalleadership overcommandandcontrol
automatedcontinuousdeploymentovermanualbigbangsindividualsandinteractions overprocessesandtools
21/04/2016 @danielbryantuk |@oakinger
ABigThanksTo…
21/04/2016 @danielbryantuk |@oakinger
THANKS... QUESTIONS?
WearehiringinUKandDE!
‘MicroservicesWeekly’(muservicesweekly.com)
www.opencredo.com/blog
21/04/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
21/04/2016 @danielbryantuk |@oakinger