Upload
patrick-kua
View
389
Download
0
Embed Size (px)
Citation preview
Who is @patkua
tiny.cc/retrostiny.cc/twtl
#architect#developer#leader#coach
#lifelong-learner
#author#facilitator
#speaker
Evolutionary Architecture
Rebecca Parsons (ThoughtWorks CTO)
Neal Ford (Meme Wrangler)
Patrick Kua (Technical Principal)
Photos by Martin Fowler: http://martinfowler.com/albums/ThoughtWorkers/
TechnicalProgramming languages
Libraries
Frameworks
Tools
Operating environments
Technical constraints
DEFINITIONAn evolutionary architecture supports
guided, incremental change as a first principle along multiple dimensions.
Layered architecture
PRESENTATION COMPONENT COMPONENT COMPONENT
BUSINESS COMPONENT COMPONENT COMPONENT
PERSISTENCE COMPONENT COMPONENT COMPONENT
DATABASE
DIMENSIONS: 1
Layered architecture
PRESENTATION COMPONENT COMPONENT COMPONENT
BUSINESS COMPONENT COMPONENT COMPONENT
PERSISTENCE COMPONENT COMPONENT COMPONENT
DATABASE
DIMENSIONS: 1
request
Layered architecture
PRESENTATION COMPONENT COMPONENT COMPONENT
BUSINESS COMPONENT COMPONENT COMPONENT
PERSISTENCE COMPONENT COMPONENT COMPONENT
DATABASE
DIMENSIONS: 1
request
SERVICE COMPONENT COMPONENT COMPONENT
Layered architecture
PRESENTATION COMPONENT COMPONENT COMPONENT
BUSINESS COMPONENT COMPONENT COMPONENT
PERSISTENCE COMPONENT COMPONENT COMPONENT
DATABASE
DOMAIN DIMENSIONS: 0
Microservices
APICUSTOMER
MODULE
MODULE
MODULE
USER/ROLE
MODULE
MODULE
MODULE
ACCOUNT
MODULE
MODULE
MODULE
PRODUCT
MODULE
MODULE
MODULE
INVENTORY
MODULE
MODULE
MODULE
FULFILLMENT
MODULE
MODULE
MODULE
CLIENT REQUESTS CLIENT REQUESTS CLIENT REQUESTS
DIMENSIONS: N
DEFINITIONAn evolutionary architecture supports
guided, incremental change as a first principle along multiple dimensions.
Does not dictate schedule
Supports fast feedback
Appropriate coupling
Iterative
Technical DomainMatches business capabilities
Enables experimentation
Decentralised governance
Fitness function
Fitness functionNFRs CFRs
Quality Attributes
Low response timeLarge # of users
IMPORTANT UNIMPORTANT
Strong audit trail
AvailabilityHeavy legal compliance
Internationalisation & Localisation Monitoring
Mobile responsive
Fitness functionNFRs CFRs
Quality Attributes
Low response timeLarge # of users
IMPORTANT UNIMPORTANTStrong audit trail
Availability Heavy legal compliance
Internationalisation & Localisation
MonitoringMobile responsive
There are known unknowns
There are known knowns
But there are also unknown unknowns
- Donald Rumsfeld
Conway’s Law
organisations which design systems ... are constrained to produce designs
which are copies of the communication structures of these organisations
en.wikipedia.org/wiki/Conway%27s_law
- Melvin Conway, 1968
Inverse conway manoeuvre
cross-functional teams… …organised around business capabilities
Because Conway’s Law!
Bring the pain forward
deployment pipelines
database migrations/ refactoring automation
continuous integration
React v0.14
CustomerInfo 4.3.1
Customer 1.3.5
Hibernate
view
controller
model
ORM
PostgreSQL 9.4
Architecture is abstract until operationalised
view
controller
model
ORM
DB
React v0.14
CustomerInfo 4.3.1
Customer 1.3.5
Hibernate 4.3.11
view
controller
model
ORM
PostgreSQL 9.4
Hibernate 5.1.0
nealford.com/memeagora/2015/03/30/architecture_is_abstract_until_operationalized.html
Development practices that help
Continuous Delivery Cross Functional Teams
Architectural briefings
Feature Toggles Branch by abstraction
Tracer bullet deploymentsReview fitness functions
Early identification of fitness functions
Spikes
Build Buyand/or
Libraries Frameworks COTS or Software Products
Custom code
Functionality
Ability to change
Strategic
Commodity
Need for rapid change HighLow
Low
HighVa
lue
gene
ratin
g
Support
Experimental Best fit
DEFINITIONAn evolutionary architecture supports
guided, incremental change as a first principle along multiple dimensions.
TO CONSIDERArchitectural choices Decision making process + thinking Organisational and cultural elements