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

Post on 09-Apr-2017

878 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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!

daniel.bryant@opencredo.com

‘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

top related