Upload
phamnga
View
217
Download
2
Embed Size (px)
Citation preview
Alex SologubSoftware EngineerALTOROS
Over-EngineeringCauses, Symptoms and Treatment
@altoros@mindyourhead_ 1
@altoros@mindyourhead_ 2
Alex SologubSoftware Engineer
@altoros@mindyourhead_
Cloud Foundry
For the last several years I’ve been designing, implementing and consulting on complex applications with microservices architecture.My primary expertise lies in Web Development, Infrastructure Automation and Machine Learning.
Also, I’m strongly addicted to strategic boardgames.
Node.js TensorFlow
@altoros@mindyourhead_ 4
Ignoring Data
UX AnalyticsWhat pages did users open?How long they were there?
How exactly do they use your software?
PerformanceWhat parts of the system are
under heavy load?Does this load change over
time?
Use CasesWhat use cases don’t depend
on each other?Can they be extracted into
separate product?
Source CodeWhat parts of the system
change together?Why does this happen?
@altoros@mindyourhead_ 6
Ignoring Data
Document Web App
Gateway
PDF Processor
Streaming API
2 secondson page
@altoros@mindyourhead_ 7
Too Early
Slows You DownMore apps to supportMore apps to deploy
More apps to test
Costs MoreDevelopment overheadInfrastructure overhead
Hurts BusinessWasted resources result in foregone profit
Upfront DesignMakes assumptions what
are likely to change in the future
Dominated by TechArchitecture pulls in technologies not required by domain
More ComplexArchitecture itselfbecomes more complexthan the domain
@altoros@mindyourhead_ 9
Outdated Processes
04 01
0203
DesignWhat are the responsibilities of microservice?
DevelopmentWhat technologies do we require?How quickly developer can iterate?
TestingWhat microservices to test?
How to test them?
DeploymentHow frequently?
What exactly to deploy?
@altoros@mindyourhead_ 10
Cost Benefit Analysis
BenefitsQuick iterationsIndependent developmentCosts
DevelopmentMaintenanceComplexity
@altoros@mindyourhead_ 11
References
Robert MartinArchitecture: The Lost YearsThe Reasonable Expectations of Your CTO
Greg YoungStop Over-Engineering
The Long Sad Story of Microservices
@altoros@mindyourhead_ 12
Questions
altoros.com/CFLivewww.altoros.com blog.altoros.com
@altoros@mindyourhead_