THE WHYS AND HOWS - Carnegie Mellon UniversityConsumer driven contracts ... Keynote: The Whys and...
Transcript of THE WHYS AND HOWS - Carnegie Mellon UniversityConsumer driven contracts ... Keynote: The Whys and...
E v o l u t i o n a r y A r c h i t e c t u r e
THE WHYS AND HOWSRebecca Parsons
Chief Technology OfficerThoughtWorks
@rebeccaparsons
WHY SHOULD I CARE?Why should we care?
2
We’re good at requirements change.
3
What about ecosystem change?
4
How is long term planning possible under constant
change?
5
How do we maintain this dynamic equilibrium?
6
7
How do we know we’re maintaining our “ilities” over
time?
8
WHAT IS EVOLUTIONARY ARCHITECTURE?What is evolutionary architecture?
9
An evolutionary architecture supports guided incremental
change across multiple dimensions.
10
An evolutionary architecture supports guided incremental
change across multiple dimensions.
11
An evolutionary computing fitness function characterizes how close a solution is to the
desired result
12
An architectural fitness function characterizes how
close a system is to the desired architectural
characteristics.
14
TYPES OF FITNESS FUNCTIONS
▫ Atomic vs holistic▫ Static vs dynamic▫ Triggered vs continuous▫ Manual vs automated▫ Temporal▫ Domain-specific?
15
EXAMPLE FITNESS FUNCTIONS
▫ Cyclic dependencies▫ Consumer driven contracts▫ Caching with staleness▫ Monitoring ▫ Synthetic transactions▫ Chaos Monkey
16
An evolutionary architecture supports guided incremental
change across multiple dimensions.
17
Two aspects of incremental change - application and
operations
18
Application functionality
19
Incremental from an operations perspective
20
An evolutionary architecture supports guided incremental
change across multiple dimensions.
21
22
accessibility reliability repeatabilityaccountability extensibility reproducibility
accuracy failure transparency resilienceadaptability fault-tolerance responsiveness
administrability fidelity reusabilityaffordability flexibility robustness
agility inspectability safetyauditability installability scalabilityautonomy integrity seamlessnessavailability interchangeability self-sustainability
compatibility interoperability serviceabilitycomposability learnability supportabilityconfigurability maintainability securabilitycorrectness manageability simplicitycredibility mobility stability
customizability modifiability standards compliancedebugability modularity survivabilitydegradability operability sustainability
determinability orthogonality tailorabilitydemonstrability portability testabilitydependability precision timelinessdeployability predictability traceability
discoverability process capabilities transparencydistributability producibility ubiquity
durability provability understandabilityeffectiveness recoverability upgradability
efficiency relevance usability
-ilities
PRINCIPLES
23
PRINCIPLES OF EVOLUTIONARY ARCHITECTURE
▫ Last responsible moment▫ Architect and develop for evolvability▫ Postels Law▫ Architect for testability▫ Conway’s Law
24
Last responsible moment
25
Architect and develop for evolvability
26
Postel’s Law
27
Architect for testability
28
Conway’s Law
29
TECHNIQUES
30
TECHNIQUES OF EVOLUTIONARY ARCHITECTURE
▫ Database refactoring
▫ Choreography
▫ Contract testing
31
EVOLVABILITY OF DIFFERENT SOFTWARE ARCHITECTURESEvolvability of different software architectures 32
Big ball of mud
33
Structured monolith
34
Layered monolith
35
Micro-kernel
36
Microservices
37
MECHANICS
38
MECHANICS
▫ Define your architectural fitness function
39
MECHANICS
▫ Define your architectural fitness function▫ Select a dimension you’re most worried about
40
MECHANICS
▫ Define your architectural fitness function▫ Select a dimension you’re most worried about▫ Start improving on that dimension
41
MECHANICS
▫ Define your architectural fitness function▫ Select a dimension you’re most worried about▫ Start improving on that dimension▫ Focus on what matters most
42
MECHANICS
▫ Define your architectural fitness function▫ Select a dimension you’re most worried about▫ Start improving on that dimension▫ Focus on what matters most▫ Monitor trends, adapt and repeat
43
THANK YOU@rebeccaparsons
44