architecture evolution - i t.a.k.e. (un) conf...hexagonal architecture • easy adopfon as is...
TRANSCRIPT
ARCHITECTURE EVOLUTION FROMAMORPHOUSMONOLITHAPPLICATIONTOAMODULAR,CLOUDREADYPLATFORMCoraliaPopa–April2020
Agenda
• Themonolith• Layeredarchitecture• ApplicaFonssegregaFon• Servicebasedmodulararchitecture• Switchtodualdeployment:onpremiseandcloud• Finalthoughts
The monolith in numbers
• 5yearsago• 15yearsoldapplicaFonatthatFme• 2yearsreleasecycle• 100+noncollocatedengineers• 3sourcesofcomplexity:integraFonwithanalyFcalinstruments,regulatorycompliance,specificdataprocessingalgorithms
• 2typesofdeployment:workstaFon,network• 3Ferarchitecture:database,businesslogicandpresentaFon• 3pathsleadingtomonolith:codemanagement,deployment,runFme• 50+verFcalslicecomponents
The monolith as a diagram
The monolith as in a list of problems
EXTREMELYLOWSPEEDOFFEATUREDELIVERY
BIGRISKOFREGRESSIONDURING
MAINTENANCE
REDUCEDOPPORTUNITYTOCHANGE
TECHNOLOGIES
PERFORMANCENEVERALLOWEDSCALINGTO
THENEEDEDPARAMETERS
INDUSTRYTRENDSINCOMPATIBILITY
The turning point
Decision point
Incrementalevolu@onthroughrefactoringorBigBangrewrite?
• ImprovedcomponenFzaFonthroughrefactoring• Breakthe“code”monolithbylayeredarchitectureforbusinesslogic
• Gradualreplacementwithrewrite
Layered architecture
Layered architecture - Believes and hopes • bo]omlayerscanbestabilized• be]erunderstandingofchangeimpact• simplercontrolofdependencies• be]ertestabilityofthebusinesslogic• enablethepresentaFontoevolveatdifferentchangepace
• Coreso^wareprinciplespower• Reuse-releaseEquivalence• Common-Reuse• Stable-Dependencies• AcyclicDependencies
First signs of recovery
• Couldreleasetwicewiththesameversionofthebo]omlayers• Therateofchangesonthebo]omlayersondescendenttrend• DevelopmentofnewapplicaFoncouldbestartedontopofthenewlayers
• But…• DemoralizedengineerteamsgiventhemassiveeffortwithnotmuchsaFsfacFon• Hardtodemonstratetothemanagementtheoutcomeofinvestment
Next step in evoluHon - Break down the “runHme monolith”
Decision point
DRYversusLOOSECOUPLINGdilemma• DramaFcandunpopulardecisiontocopyalargeamountofcodejusttostepintherightdirecFon
Benefits • AlmostimpossibletoaddcouplingbetweenapplicaFonapps
• DistribuFonoftheloadindifferentprocesseshelpedinsomeextendwithperformance
• Releasecadencereducedtoaquarteralready,theoriginalobjecFvewasreached
But• Startedtohaveissueskeepingtheinstancesofthelayersinsyncbetweenapps
Next step in evoluHon - Break the deployment monolith
Autonomous service paNern
• coversadomainfuncFonality• loosely-coupledcomponentsfollowinghexagonalarchitecture
• easyadopFonasispopulararchitecture• widesetoftesFngopFons• nostate• clearrulesforgovernance• runninginitsownprocess
Decision point
• CustomCodeorThirdpartyso^ware?Shouldwewelcomethirdpartyso^ware?
• Thirdpartydependenciescanbecontrolledaswell
• Standardsareimportant• Thecorebusinessdomainiswhatwearegoodat
• Everythingelseissomeoneelse’sexperFsearea
• Thereisalibraryoratoolforeverything• Speedupdevelopment
Decision point
• ArewereadytobeaSaaScompany?Shouldwetakea“cloudfirst”approachfornewdevelopment?
• itwasatoughbusinessdecisionmadewithconfidencethattheso^wareteamwillbeabletodeliver• paradigmshi^oftheorganizaFon,asitappliestoalargerscopethanjustthisproductdevelopment
Next step in evoluHon – Cloud & On premise
- “dual”applicaFons- 2PlaformimplementaFons:Cloudand“Onpremise”
Current challenges • Security• ComplexityoftoolslikeKubernetes
• Growskillsinsidedevelopmentteams• Regulatorycomplianceseemsatopicinearlyagesincloud
• ConnecFvitywiththeanalyFcalinstrumentsinthelab
Thisisthepathfortoday,andnewlearningwillcome…
Summary
2016• Rearchitecturedecision
2017• LayerscreaFon
2018• ApplicaFonsegregaFon
• Rewritestart
2019• Plaform&applicaFons
• Quarterlyrelease
2020• Cloud• Scalability
Personal retrospecHve
Theexperiencereallyhelpedmetogrowasso^warearchitect.
Decisionscouldsaveoraddmonthsofworkondevelopment
teams.
SaFsfacFonishugewhenyouseethatwhatyoudesignedisactually
working.
QuesHons?