Preparing For a Future Microservices Journey Using Wardley Maps - - PowerPoint PPT Presentation
Preparing For a Future Microservices Journey Using Wardley Maps - - PowerPoint PPT Presentation
Preparing For a Future Microservices Journey Using Wardley Maps DDD & Susanne Kaiser Independent Tech Consultant @suksr Microservices Architecture Market Key Trends USD ~33 Billion Loose Coupling Market Size (USD Billion) CAGR ~17%
Source: https://www.marketresearchfuture.com/reports/microservices-architecture-market-3149
Microservices Architecture Market
Key Trends
Loose Coupling Deployment Domain Driven Design
2016 2017 2018 2019 2020 2021 2022 2023
USD ~33 Billion Market Size (USD Billion) CAGR ~17%
Source: https://www.infoq.com/articles/architecture-trends-2019/
Source: https://www.infoq.com/articles/architecture-trends-2019/
Source: https://en.wikipedia.org/wiki/Hype_cycle#/media/File:Gartner_Hype_Cycle.svg
Microservices ?
Gartner Hype Cycle
@suksr
@suksr High cohesion within a service Loose coupling between services
@suksr High cohesion within a service Loose coupling between services
@suksr
Data Store
Data Store
@suksr
Config./Setup Maintenance Integration
Hardware O/S Virtualization Container Runtime
@suksr
API Hardware O/S Virtualization Container Runtime
@suksr
API Hardware O/S Virtualization Container Runtime
@suksr
API API Integration
API Hardware O/S Virtualization Container Runtime
@suksr
API API Security
API API API Service Discovery
- 1. Register
- 3. Connect
- 2. Discover
Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery API Timeout-Handling Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer
API API API Service Discovery API Timeout-Handling Retries Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer
API API API Service Discovery API Timeout-Handling Retries Idempotency Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer
API API API Service Discovery API Timeout-Handling Retries Bulk- heads Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer Idempotency
API API API Service Discovery API Timeout-Handling Retries Bulk- Heads Circuit Breaker Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer Idempotency
API API API Service Discovery API Timeout-Handling Retries Bulk- heads Circuit Breaker Message Broker Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer Idempotency
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Circuit Breaker Message Broker API-Gateway Hardware O/S Virtualization Container Runtime
@suksr
Idempotency
API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway Circuit Breaker Config-Mngmt. Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer Idempotency
API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer Idempotency
API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM
Checkout Test Build
CI/CD Pipeline
Deploy
Hardware O/S Virtualization Container Runtime
@suksr
Load-Balancer Idempotency
Recovery API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM
Checkout Test Build
CI/CD Pipeline
Deploy
Hardware O/S Virtualization Container Runtime Backup
@suksr
Load-Balancer Scaling Idempotency
µService
@suksr
Hardware Data Store API API-Gateway Service Discovery Load-Balancer Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/S Virtualization Container Runtime
Checkout Test Build
CI/CD Pipeline
Deploy
µService Backup Recovery
@suksr
Scaling Maintenance Integration Security
Domain Driven Design (DDD) – Terminology
Strategic Design Tactical Design Bounded Context Ubiquitous Language Core Subdomain Supporting Subdomain Generic Subdomain Problem Space Solution Space Context Maps Anti-Corruption Layer Shared Kernel Open Host Service Separate Ways Partnership Customer-Supplier Conformist Domain Model Entity Value Object Aggregate Repository Factory Application Service Domain Service Domain Event
@suksr
Hardware Data Store
API
API-Gateway
Service Discovery Load-Balancer
Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/S Virtualization Container Runtime Checkout Test Build
CI/CD Pipeline
Deploy µService Backup Recovery Scaling Maintenance Integration Security
Strategic Design Tactical Design Problem Space Solution Space Bounded Context Ubiquitous Language Core Subdomain Supporting Subdomain Generic Subdomain Context Maps Anti-Corruption Layer Shared Kernel Open Host Service Separate Ways Partnership Customer-Supplier Conformist Domain Model Entity Value Object Aggregate Repository Factory Application Service Domain Service Domain Event @suksr
Value Chain
I n v i s i b l e V i s i b l e
Evolution
Visualisation of a value chain’s evolution
Genesis Custom-Built Product (+rental) Commodity (+utility) P
- s
i t i
- n
Movement
Wardley Maps BY SIMON WARDLEY
Uncharted Industrialised @suksr
Wardley Maps – VALUE CHAIN
Who are your users?
Value Chain
I n v i s i b l e V i s i b l e
@suksr
Wardley Maps – VALUE CHAIN
Who are your users? What are your users’ needs?
Value Chain
I n v i s i b l e V i s i b l e
@suksr
Wardley Maps – VALUE CHAIN
Who are your users? What are your users’ needs? What are the components/activities to fulfill your users’ needs incl. dependencies?
Value Chain
I n v i s i b l e V i s i b l e P
- s
i t i
- n
@suksr
Wardley Maps – LANDSCAPE
Value Chain
I n v i s i b l e V i s i b l e
Evolution
Components along evolution axes
Genesis Custom-Built Product (+rental) Commodity (+utility) P
- s
i t i
- n
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Everything evolves
Past Current Future
Supply Competition Demand Competition
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Everything evolves
Past Current Future
Continuous adaption
Wardley Maps – PATTERNS
Movement
Evolution @suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Past Current Future
Characteristics change
Uncharted Undefined market Uncertain Unpredictable Rare Poorly understood Forming market Learning on use Increasing understanding Slowly increasing consumption Rapid increases in learning Growing market Learning on operation Increasing education Rapidly increasing consumption Rapid increase in use Mature market Known / accepted Stable Widespread and stabilising Commonly understood (in term of use) Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Wardley Maps – PRINCIPLES
Use appropriate methods per evolution stage
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Use appropriate methods per evolution stage
Wardley Maps – PRINCIPLES
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Use appropriate methods per evolution stage
Wardley Maps – PRINCIPLES
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Know your users & focus on user needs
Wardley Maps – PRINCIPLES
Build in-house / Agile Use/buy off-the-shelf product / Lean Outsource to utility suppliers / Six Sigma @suksr
Domain Driven Design
Ubiquitous Language Domain Knowledge
Understanding the problem domain first before solving it
Problem Domain Domain Experts Development Teams Collaboration @suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps
Problem Domain
Strategic Design
DDD Patterns & Practices
Tactical Design
@suksr
S t r a t e g i c D e s i g n T a c t i c a l D e s i g n
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps
Problem Domain
Strategic Design
DDD Patterns & Practices
Tactical Design
Analysing the business domain Discovering Subdomains Problem Space @suksr
P r
- b
l e m S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A n a l y s e & D i s c
- v
e r
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps
Problem Domain
Strategic Design
DDD Patterns & Practices
Tactical Design
Analysing the business domain Discovering Subdomains Problem Space Decomposing into modular components (Bounded Contexts (BC)) Mapping interaction patterns between BC (Context Maps) Solution Space @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A n a l y s e & D i s c
- v
e r D e c
- m
p
- s
e & M a p High-Level Design Decisions
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps
Problem Domain
Strategic Design
DDD Patterns & Practices
Tactical Design
Architecting a solution fitting the problem domain as closely as possible Provides building blocks to implement domain model Analysing the business domain Discovering Subdomains Problem Space Decomposing into modular components (Bounded Contexts (BC) Mapping interaction patterns between BC (Context Maps) Solution Space @suksr Solution Space
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A n a l y s e & D i s c
- v
e r A r c h i t e c t & I m p l e m e n t High-Level Design Decisions Low-Level Design Decisions D e c
- m
p
- s
e & M a p
A n a l y s e & D i s c
- v
e r
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem domain & discovering the core subdomain
DDD & Wardley Maps
Core Subdomain Problem Domain
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting Subdomain Generic Subdomain @suksr
P r
- b
l e m S p a c e S t r a t e g i c D e s i g n
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem domain & discovering the core subdomain
DDD & Wardley Maps
Core Subdomain Problem Domain Competitive advantage Complex Changes often Build in-house
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting Subdomain Generic Subdomain @suksr
A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem domain & discovering the core subdomain
DDD & Wardley Maps
Core Subdomain Problem Domain Competitive advantage Complex Changes often Build in-house No competitive advantage Quite simple Does not change often Prefer to buy/use off-the-shelf
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting Subdomain Generic Subdomain @suksr
A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem domain & discovering the core subdomain
DDD & Wardley Maps
Core Subdomain Problem Domain Competitive advantage Complex Changes often Build in-house No competitive advantage Quite simple Does not change often Prefer to buy/use off-the-shelf No competitive advantage Generally complex Does not change often Buy/use off-the-shelf / outsource
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting Subdomain Generic Subdomain @suksr
A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Model Driven Design
DDD & Wardley Maps
STRATEGIC DESIGN (SOLUTION SPACE)
Development Teams Domain Experts Ubiquitous Language Analysis Model Code Model Domain Model Core Subdomain Supporting Subdomain Generic Subdomain Problem Domain abstracted by @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Bounded Contexts
DDD & Wardley Maps
STRATEGIC DESIGN (SOLUTION SPACE)
Core Subdomain Supporting Subdomain Generic Subdomain Problem Domain Linguistic/semantic boundary Ownership boundary Model integrity boundary Physical boundary Different architectural patterns per context possible @suksr
Microservice candidates
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n S
- l
u t i
- n
S p a c e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Know your users & focus on user needs
Submit Session
DDD & Wardley Maps
STRATEGIC DESIGN (PROBLEM SPACE) Speaker
@suksr
A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
STRATEGIC DESIGN (PROBLEM SPACE)
Discovering subdomains
Supporting Generic Core @suksr
A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
STRATEGIC DESIGN (SOLUTION SPACE)
Supporting Generic Core
Event Evaluation Account Schedule Message Session
Domain Models
@suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
Event Evaluation Account Schedule Message Speaker Session CfP
STRATEGIC DESIGN (SOLUTION SPACE)
Domain Models
@suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n S
- l
u t i
- n
S p a c e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
Event Evaluation Account Schedule Message Speaker Profile Submitted Session CfP Settings Recipient Open CfP Evaluated Session Scheduled Session
STRATEGIC DESIGN (SOLUTION SPACE)
Domain Models
@suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n S
- l
u t i
- n
S p a c e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
STRATEGIC DESIGN (SOLUTION SPACE)
Bounded Contexts
Linguistic/semantic boundary Model integrity boundary
Event Evaluation Account Schedule Message Submitted Session CfP Settings Recipient Open CfP Evaluated Session Scheduled Session Speaker Profile Session Evaluation Submission Handling Event Mngmnt. Schedule Mngmnt. Messaging Account Handling
@suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n S
- l
u t i
- n
S p a c e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
STRATEGIC DESIGN (SOLUTION SPACE)
Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt.
Bounded Contexts
Ownership boundary Linguistic/semantic boundary Model integrity boundary @suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n S
- l
u t i
- n
S p a c e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
STRATEGIC DESIGN (SOLUTION SPACE)
Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt.
Bounded Contexts
Ownership boundary Linguistic/semantic boundary Model integrity boundary Physical boundary
SCM Data store CI/CD Artefact
@suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S t r a t e g i c D e s i g n S
- l
u t i
- n
S p a c e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
TACTICAL DESIGN
Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt.
Architectural Patterns
Architectural patterns can differ per Bounded Context, e.g.
Layered Architecture Hexagonal Architecture CQRS
@suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A r c h i t e c t & I m p l e m e n t
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
TACTICAL DESIGN
Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt.
Business Logic Implementation Patterns
Business logic implementation patterns can differ per Bounded Context, e.g.
Domain Model Active Record Transaction Script
@suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A r c h i t e c t & I m p l e m e n t
Example
BC: EVENT MANAGEMENT
Event create: Event activate reschedule rename EventId id: string Name create: Name name: string EventStatus CREATED ACTIVATED DEACTIVATED deactivate Description create: Description desc: string Period create: Period start: Date end: Date
Value Object Entity Aggregate Root Aggregate @suksr EventController MongoDBEventRepository
EventModel
EventApplicationService EventRepository
POST /events/{id}/activate POST /events DELETE /events/{id}
Inner Outer Outside
(Port) (Adapter) (Adapter) (Port)
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
TACTICAL DESIGN
Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt.
DDD suits best for the core subdomain
Movement
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
- or -
- or -
@suksr
- or -
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
e r P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A r c h i t e c t & I m p l e m e n t
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Wardley Maps
Supporting Generic Core
INFRASTRUCTURE MAPPING
@suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Understand the involved components and their dependencies (position)
P
- s
i t i
- n
Data Storage I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Understand the involved components and their dependencies (position)
Data Storage Search Engine
Wardley Maps
INFRASTRUCTURE MAPPING
P
- s
i t i
- n
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Understand the involved components and their dependencies (position)
Data Storage Search Engine Compute Platform
Wardley Maps
INFRASTRUCTURE MAPPING
P
- s
i t i
- n
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Understand the involved components and their dependencies (position)
Data Storage Search Engine Compute Platform VM
Wardley Maps
INFRASTRUCTURE MAPPING
P
- s
i t i
- n
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Data Storage Search Engine Compute Platform VM Movement
Plot components along evolution axes (movement) and use appropriate method per evolution stage
Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Data Storage Search Engine Compute Platform VM Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Infrastructure & operational complexities
Wardley Maps
INFRASTRUCTURE MAPPING
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Data related components & activities
Compute Platform Data Storage Search Engine VM
Wardley Maps
INFRASTRUCTURE MAPPING
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
DDD & Wardley Maps
Supporting Generic Core
TACTICAL DESIGN
@suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Compute Platform Data Storage VM
Service related components & activities
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D . Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Compute Platform Data Storage VM
Service interaction related components & activities
Wardley Maps
INFRASTRUCTURE MAPPING
I n f r a s t r u c t u r e
command query
Request-Driven
@suksr
API API
Service Interactions
command query
Request-Driven
Message Broker publish subscribe
Event-Driven
@suksr
API API
Service Interactions
command query Message Broker publish subscribe command query
Request-Driven Hybrid
Message Broker publish subscribe
Event-Driven
@suksr
API API API
Service Interactions
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Compute Platform Data Storage VM
Request-driven related components & activities
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Compute Platform VM
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
Event-driven & hybrid related components & activities
Message Broker Search Engine Data Storage I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Compute Platform VM
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. Message Broker Search Engine Data Storage
Discuss & plan
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Compute Platform VM
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. Message Broker Search Engine Data Storage
Discuss & plan Open Source Software
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS
Example
Message Broker Search Engine Data Storage Compute Platform VM
Open Source Software
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS Message Broker Search Engine Data Storage Compute Platform VM
Discuss & plan Offload to cloud hosted services
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS Compute Platform VM DB aaS SE aaS MB aaS
Offload to cloud hosted services
ID aaS I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS Compute Platform VM DB aaS SE aaS MB aaS
Discuss & plan Offload to container
- rchestration platform
ID aaS I n f r a s t r u c t u r e
Managed by YOU Managed by Platform Hardware O/S Virtualization Container Runtime O/S Orchestration µService Container Runtime µService Service Discovery Load Balancer Config-Mngmt. Monitoring Log Aggreation Health Checks Recovery Scaling
@suksr
Container Orchestration
API Gateway
Containerized Microservice Pod Service Volume
Deployment Master Node Worker Node Worker Node Ingress Deployment Deployment
Container Orchestration
BASIC COMPONENTS OF KUBERNETES
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS
Container Orchestration w/ Kubernetes
Compute Platform ID aaS
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS
Container Orchestration w/ Kubernetes
Compute Platform Pod Deploym. Volume Ingress Service
New Primitives
ID aaS
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS
Container Orchestration w/ Kubernetes
Compute Platform Pod Deploym. Volume Ingress Service Secret Stateful Set Cron Job Job Config Map Network Policy Replica Set Daemon Set Horizontal Pod Autoscaler Persistent Volume Claim Egress more ... ID aaS I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS Compute Platform Container Orchestration
Discuss & plan Offload application networking concerns to a service mesh
ID aaS I n f r a s t r u c t u r e
Circuit Breaker Timeout Retries Kubernetes / Service Mesh Sidecar Proxy
Application Networking Concerns
@suksr
Metrics Security Sidecar Proxy Distributed Tracing Log Aggregation
Separation Of Concerns
SERVICE MESH
Proxy Proxy Microservice Microservice Policy & Telemetry (Mixer) Discovery & Config to Proxies (Pilot) Config (Galley) TLS Certs to Proxies (Citadel)
Data Plane Control Plane
HTTP, gRPC, TCP mTLS
Service Mesh
COMPONENTS OF ISTIO
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. VM DB aaS MB aaS Worker Nodes Master Node SE aaS Container Orchestration ID aaS Destination Rule Gateway Service Entry Policy ServiceRole /
- Binding ClusterRbac
Config Virtual Service
Service Mesh
I n f r a s t r u c t u r e
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic Core @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D .
Schedule Session Event Submission w/ Speakers
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H. VM DB aaS MB aaS Worker Nodes Master Node SE aaS Container Orchestration ID aaS Service Mesh
Discuss & plan Move to Serverless
I n f r a s t r u c t u r e
Function Event
Event-Driven Workflow
Hardware Data Store O/S Virtualization Container Runtime
Fully Managed By Third Party Ephemeral Function Pay-per-Execution Auto-Scaling
@suksr
triggers
Serverless w/ FaaS
CHARACTERISTICS
Lambda API Gateway SNS SQS DynamoDB Step Functions
Core AWS Serverless Building Blocks
S3 Kinesis CloudWatch Cognito @suksr IAM and more
Serverless
AWS BUILDING BLOCKS
ApiGatewayAdapter DynamoDBAdapter EventModel EventApplicationService EventRepository DynamoDB newEvent API Gateway Manage Event
Organiser
Event Management
ApiGatewayAdapter DynamoDBAdapter EventModel EventApplicationService EventRepository EventPublisher SNSTopicAdapter DynamoDB SNS newEvent activateEvent API Gateway Manage Event
Organiser
Event Management
ApiGatewayAdapter DynamoDBAdapter EventModel EventApplicationService EventRepository EventPublisher SNSTopicAdapter DynamoDB SNS newEvent activateEvent API Gateway Manage Event DynamoDBAdapter SessionModel SessionApplicationService SessionRepository DynamoDB SNSTopicAdapter eventActivated
Organiser
Event Management Session Handling
ApiGatewayAdapter DynamoDBAdapter EventModel EventApplicationService EventRepository EventPublisher SNSTopicAdapter DynamoDB SNS newEvent activateEvent API Gateway Manage Event ApiGatewayAdapter DynamoDBAdapter SessionModel SessionApplicationService SessionRepository DynamoDB submitSession API Gateway Submit Session SNSTopicAdapter eventActivated S3Adapter S3 pictureUploaded
Organiser Speaker
Event Management Session Handling
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate Submissions Manage Event
Organiser
Build & Publish Schedule Communicate w/ Speakers Signup/Signin
Speaker
Submit Session
DDD & Wardley Maps
Supporting Generic Core
TACTICAL DESIGN
Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt.
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n
Serverless w/ FaaS
API Gateway Lambda DynamoDB S3 SNS Cognito SE aaS I n f r a s t r u c t u r e
Serverless Infrastructure Providers
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
@suksr
Know your users & user needs
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic Core @suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
. P r
- b
l e m S p a c e S
- l
u t i
- n
S p . S t r a t e g i c D e s i g n
Know your users & user needs Understand the problem first and focus on core domain
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic Core @suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
. P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A r c h i t e c t & I m p l e m e n t
- or -
- or -
- or -
Know your users & user needs Understand the problem first and focus on core domain DDD suits well for your core domain
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic Core @suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
. P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A r c h i t e c t & I m p l e m e n t I n f r a s t r u c t u r e
Know your users & user needs Understand the problem first and focus on core domain DDD suits well for your core domain Identify and outsource commodities
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic Core @suksr
D e c
- m
p
- s
e & M a p A n a l y s e & D i s c
- v
. P r
- b
l e m S p a c e S
- l
u t i
- n
S p a c e S t r a t e g i c D e s i g n T a c t i c a l D e s i g n A r c h i t e c t & I m p l e m e n t I n f r a s t r u c t u r e
Know your users & user needs Understand the problem first and focus on core domain DDD suits well for your core domain Identify and outsource commodities Efficiency enables innovation