SlideShare una empresa de Scribd logo
1 de 114
Descargar para leer sin conexión
Preparing For a Future
Microservices Journey
Using Wardley Maps
Susanne Kaiser
Independent Tech Consultant
@suksr
DDD &
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
MarketSize(USDBillion)
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
APIAPI
Integration
API
Hardware
O/S
Virtualization
Container
Runtime
@suksr
APIAPI
Security
API
APIAPIService Discovery
1. Register
3. Connect
2. Discover
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
APIAPIService Discovery
Load-Balancer
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
APIAPIService Discovery
API
Timeout-Handling
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
API
APIAPIService Discovery
API
Timeout-Handling
Retries
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
API
APIAPIService Discovery
API
Timeout-Handling
Retries
Idempotency
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
API
APIAPIService Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
APIAPIService Discovery
API
Timeout-Handling
Retries
Bulk-
Heads
Circuit Breaker
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
APIAPIService Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Circuit Breaker
Message Broker
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
APIAPIService Discovery
Load-Balancer
API
Timeout-Handling
Retries
Bulk-
heads Circuit Breaker
Message Broker
API-Gateway
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Idempotency
API
APIAPIService 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
APIAPIService Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Message Broker
API-Gateway
Circuit Breaker
Config-Mngmt.
Monitoring
Log Aggreation
Metrics
Distributed
Tracing
Health ChecksHardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
APIAPIService 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 TestBuild
CI/CD Pipeline
Deploy
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
Recovery
API
APIAPIService 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 TestBuild
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/SVirtualization Container Runtime
Checkout TestBuild
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/SVirtualization Container Runtime
Checkout TestBuild
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
ValueChain
InvisibleVisible
Evolution
Visualisation of a
value chain’s
evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Position
Movement
Wardley Maps BY SIMON WARDLEY
Uncharted Industrialised
@suksr
Wardley Maps – VALUE CHAIN
Who are your users?
ValueChain
InvisibleVisible
@suksr
Wardley Maps – VALUE CHAIN
Who are your users?
What are your users’ needs?
ValueChain
InvisibleVisible
@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?
ValueChain
InvisibleVisible
Position
@suksr
Wardley Maps – LANDSCAPE
ValueChain
InvisibleVisible
Evolution
Components along
evolution axes
Genesis Custom-Built Product (+rental) Commodity (+utility)
Position
Movement
@suksr
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Everything evolves
Past Current Future
Supply CompetitionDemand Competition
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Everything evolves
Past Current Future
Continuous adaption
Wardley Maps – PATTERNS
Movement
Evolution
@suksr
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Past Current Future
Characteristics changeUncharted
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
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
ValueChain
InvisibleVisible
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
ValueChain
InvisibleVisible
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
ValueChain
InvisibleVisible
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
ValueChain
InvisibleVisible
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
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps Problem Domain
Strategic Design
DDD Patterns &
Practices
Tactical Design
@suksr
StrategicDesignTacticalDesign
ValueChain
InvisibleVisible
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
ProblemSpace
StrategicDesignTacticalDesign
Analyse&Discover
ValueChain
InvisibleVisible
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
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Analyse&DiscoverDecompose&
Map
High-Level
Design Decisions
ValueChain
InvisibleVisible
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
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Analyse&DiscoverArchitect&
Implement
High-Level
Design Decisions
Low-Level
Design Decisions
Decompose&
Map
Analyse&Discover
ValueChain
InvisibleVisible
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
ProblemSpace
StrategicDesign
ValueChain
InvisibleVisible
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
Analyse&Discover
ProblemSpace
StrategicDesign
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
ValueChain
InvisibleVisible
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
Analyse&Discover
ProblemSpace
StrategicDesign
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
ValueChain
InvisibleVisible
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
Analyse&Discover
ProblemSpace
StrategicDesign
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Decompose&
Map
Analyse&Discover
ValueChain
InvisibleVisible
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
ProblemSpaceSolutionSpace
StrategicDesign
ValueChain
InvisibleVisible
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
Decompose&
Map
Analyse&Discover
ProblemSpace
StrategicDesign
SolutionSpace
ValueChain
InvisibleVisible
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
Analyse&Discover
ProblemSpace
StrategicDesign
ValueChain
InvisibleVisible
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 GenericCore
@suksr
Analyse&Discover
ProblemSpace
StrategicDesign
ValueChain
InvisibleVisible
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 GenericCore
Event Evaluation AccountSchedule MessageSession
Domain Models
@suksr
Decompose&
Map
Analyse&Discover
ProblemSpaceSolutionSpace
StrategicDesign
ValueChain
InvisibleVisible
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 GenericCore
Event Evaluation AccountSchedule Message
Speaker
Session
CfP
STRATEGIC DESIGN (SOLUTION SPACE)
Domain Models
@suksr
Decompose&
Map
Analyse&Discover
ProblemSpace
StrategicDesign
SolutionSpace
ValueChain
InvisibleVisible
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 GenericCore
Event Evaluation AccountSchedule Message
Speaker Profile
Submitted
Session
CfP
Settings
Recipient
Open CfP Evaluated
Session
Scheduled
Session
STRATEGIC DESIGN (SOLUTION SPACE)
Domain Models
@suksr
Decompose&
Map
Analyse&Discover
ProblemSpace
StrategicDesign
SolutionSpace
ValueChain
InvisibleVisible
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 GenericCore
STRATEGIC DESIGN (SOLUTION SPACE)
Bounded Contexts
Linguistic/semantic
boundary
Model integrity boundary
Event Evaluation AccountSchedule MessageSubmitted
Session
CfP
Settings
Recipient
Open CfP Evaluated
Session
Scheduled
Session
Speaker Profile Session
Evaluation
Submission
Handling
Event
Mngmnt.
Schedule
Mngmnt.
Messaging
Account
Handling
@suksr
Decompose&
Map
Analyse&Discover
ProblemSpace
StrategicDesign
SolutionSpace
ValueChain
InvisibleVisible
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 GenericCore
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
Decompose&
Map
Analyse&Discover
ProblemSpace
StrategicDesign
SolutionSpace
ValueChain
InvisibleVisible
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 GenericCore
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
Decompose&
Map
Analyse&Discover
ProblemSpace
StrategicDesign
SolutionSpace
ValueChain
InvisibleVisible
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 GenericCore
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
Decompose&
Map
Analyse&Discover
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Architect&
Implement
ValueChain
InvisibleVisible
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 GenericCore
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
Decompose&
Map
Analyse&Discover
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Architect&
Implement
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}/activatePOST /events DELETE /events/{id}
Inner
Outer
Outside
(Port)
(Adapter)
(Adapter)
(Port)
ValueChain
InvisibleVisible
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 GenericCore
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 -
Decompose&
Map
Analyse&Discover
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Architect&
Implement
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Wardley Maps
Supporting GenericCore
INFRASTRUCTURE MAPPING
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Position
Data Storage
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Data StorageSearch Engine
Wardley Maps
INFRASTRUCTURE MAPPING
Position
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Data StorageSearch Engine
Compute Platform
Wardley Maps
INFRASTRUCTURE MAPPING
Position
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Data StorageSearch Engine
Compute Platform
VM
Wardley Maps
INFRASTRUCTURE MAPPING
Position
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession Event Submission w/ Speakers
Data Storage
Search Engine
Compute Platform
VMMovement
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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
DDD & Wardley Maps
Supporting GenericCore
TACTICAL DESIGN
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
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
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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.
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
orchestration platform
ID aaS
Infrastructure
Managed by YOU
Managed by PlatformHardware
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 NodeWorker Node
Ingress
Deployment Deployment
Container Orchestration
BASIC COMPONENTS OF KUBERNETES
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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 IngressService
New Primitives
ID aaS
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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 IngressServiceSecretStateful
Set
Cron
Job
JobConfig
Map
Network
Policy
Replica
Set
Daemon
Set
Horizontal
Pod Autoscaler
Persistent
Volume
ClaimEgress
more ...
ID aaS
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
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
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
EvaluateManage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting GenericCore
@suksr
ProblemSpaceSolutionSpace
StrategicDesignTacticalD.
ScheduleSession 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
Infrastructure
FunctionEvent
Event-Driven Workflow
Hardware
Data Store
O/SVirtualization Container Runtime
Fully Managed By Third Party
Ephemeral Function
Pay-per-ExecutionAuto-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
EventOrganiser
Event Management
ApiGatewayAdapter
DynamoDBAdapter
EventModel
EventApplicationService
EventRepository
EventPublisherSNSTopicAdapter
DynamoDB
SNS
newEvent activateEvent
API Gateway
Manage
EventOrganiser
Event Management
ApiGatewayAdapter
DynamoDBAdapter
EventModel
EventApplicationService
EventRepository
EventPublisherSNSTopicAdapter
DynamoDB
SNS
newEvent activateEvent
API Gateway
Manage
Event
DynamoDBAdapter
SessionModel
SessionApplicationService
SessionRepository
DynamoDBSNSTopicAdapter
eventActivated
Organiser
Event Management Session Handling
ApiGatewayAdapter
DynamoDBAdapter
EventModel
EventApplicationService
EventRepository
EventPublisherSNSTopicAdapter
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
ValueChain
InvisibleVisible
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 GenericCore
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
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Serverless w/ FaaS
API Gateway
Lambda DynamoDB S3 SNS
Cognito
SE aaS
Infrastructure
Serverless Infrastructure Providers
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
@suksr
Know your users
& user needs
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting GenericCore
@suksr
Decompose
&Map
Analyse&Discov.
ProblemSpaceSolutionSp.
StrategicDesign
Know your users
& user needs
Understand the
problem first and
focus on core domain
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting GenericCore
@suksr
Decompose
&Map
Analyse&Discov.
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Architect&
Implement
- or -
- or - - or -
Know your users
& user needs
Understand the
problem first and
focus on core domain
DDD suits well for your
core domain
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting GenericCore
@suksr
Decompose
&Map
Analyse&Discov.
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Architect&
Implement
Infrastructure
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
ValueChain
InvisibleVisible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting GenericCore
@suksr
Decompose
&Map
Analyse&Discov.
ProblemSpaceSolutionSpace
StrategicDesignTacticalDesign
Architect&
Implement
Infrastructure
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
Some References
https://learnwardleymapping.com/
https://medium.com/wardleymaps
https://miro.com/blog/wardley-maps-whiteboard-canvas/
https://community.wardleymaps.com/

Más contenido relacionado

La actualidad más candente

Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaAraf Karsh Hamid
 
DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities Intellipaat
 
Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...
Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...
Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...Databricks
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...Amazon Web Services
 
Cloud foundry: The Platform for Forging Cloud Native Applications
Cloud foundry: The Platform for Forging Cloud Native ApplicationsCloud foundry: The Platform for Forging Cloud Native Applications
Cloud foundry: The Platform for Forging Cloud Native ApplicationsChip Childers
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven DesignDavid Berliner
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture PatternsAmazon Web Services
 
What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?confluent
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...Yevgeniy Brikman
 
When apache pulsar meets apache flink
When apache pulsar meets apache flinkWhen apache pulsar meets apache flink
When apache pulsar meets apache flinkStreamNative
 
Agile Mindset For Executives
Agile Mindset For ExecutivesAgile Mindset For Executives
Agile Mindset For ExecutivesMichael Tarnowski
 

La actualidad más candente (20)

Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities DevOps Engineer Day-to-Day Activities
DevOps Engineer Day-to-Day Activities
 
Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...
Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...
Developing ML-enabled Data Pipelines on Databricks using IDE & CI/CD at Runta...
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
 
Cloud foundry: The Platform for Forging Cloud Native Applications
Cloud foundry: The Platform for Forging Cloud Native ApplicationsCloud foundry: The Platform for Forging Cloud Native Applications
Cloud foundry: The Platform for Forging Cloud Native Applications
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
 
Event storming
Event storming Event storming
Event storming
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
The Devops Handbook
The Devops HandbookThe Devops Handbook
The Devops Handbook
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture Patterns
 
Event Storming and Saga
Event Storming and SagaEvent Storming and Saga
Event Storming and Saga
 
What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?What is Apache Kafka and What is an Event Streaming Platform?
What is Apache Kafka and What is an Event Streaming Platform?
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
When apache pulsar meets apache flink
When apache pulsar meets apache flinkWhen apache pulsar meets apache flink
When apache pulsar meets apache flink
 
Agile Mindset For Executives
Agile Mindset For ExecutivesAgile Mindset For Executives
Agile Mindset For Executives
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 

Similar a Preparing for a future Microservices journey using DDD & Wardley Maps

Preparing for a future Microservices journey - Susanne Kaiser
Preparing for a future Microservices journey - Susanne Kaiser Preparing for a future Microservices journey - Susanne Kaiser
Preparing for a future Microservices journey - Susanne Kaiser camunda services GmbH
 
Preparing for a future microservices journey (with Wardley Maps)
Preparing for a future microservices journey (with Wardley Maps)Preparing for a future microservices journey (with Wardley Maps)
Preparing for a future microservices journey (with Wardley Maps)Susanne Kaiser
 
Designing a Serverless Application with Domain Driven Design
 Designing a Serverless Application with Domain Driven Design  Designing a Serverless Application with Domain Driven Design
Designing a Serverless Application with Domain Driven Design Susanne Kaiser
 
Voxxed Days Microservices Paris 2018 - Keynote
Voxxed Days Microservices Paris 2018 - KeynoteVoxxed Days Microservices Paris 2018 - Keynote
Voxxed Days Microservices Paris 2018 - KeynoteSusanne Kaiser
 
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...Kai Wähner
 
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...Kai Wähner
 
Adaptive Socio-Technical Systems w/ Architecture for Flow
Adaptive Socio-Technical Systems w/ Architecture for FlowAdaptive Socio-Technical Systems w/ Architecture for Flow
Adaptive Socio-Technical Systems w/ Architecture for FlowSusanne Kaiser
 
KIKK Festival 2022.pdf
KIKK Festival 2022.pdfKIKK Festival 2022.pdf
KIKK Festival 2022.pdfSophieThi1
 
Wearables and IoT in 2018
Wearables and IoT in 2018Wearables and IoT in 2018
Wearables and IoT in 2018Dolce Design
 
Ctechpresentation
CtechpresentationCtechpresentation
CtechpresentationK Munshi
 
Planning for a Digital Future
Planning for a Digital FuturePlanning for a Digital Future
Planning for a Digital FutureNETSCOUT
 
The truth about "You build it, you run it!"
The truth about "You build it, you run it!"The truth about "You build it, you run it!"
The truth about "You build it, you run it!"Uwe Friedrichsen
 
From atoms to bits (and back again)
From atoms to bits (and back again)From atoms to bits (and back again)
From atoms to bits (and back again)Sylvain Carle
 
apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...
apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...
apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...apidays
 
Essentials of XR (ARVR) Product Development
Essentials of XR (ARVR) Product DevelopmentEssentials of XR (ARVR) Product Development
Essentials of XR (ARVR) Product DevelopmentKuldeep Singh
 
AR and VR for Good
AR and VR for GoodAR and VR for Good
AR and VR for GoodZi Siang See
 
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....Kai Wähner
 
Evolution of cadcamcae techonology and value to the industry v1.compressed
Evolution of cadcamcae techonology and value to the industry v1.compressedEvolution of cadcamcae techonology and value to the industry v1.compressed
Evolution of cadcamcae techonology and value to the industry v1.compressedStephen Au
 
Digital Transformation in the Painting & Coating Industries_Part 2
Digital Transformation in the Painting & Coating Industries_Part 2Digital Transformation in the Painting & Coating Industries_Part 2
Digital Transformation in the Painting & Coating Industries_Part 2TOLGA DIRAZ
 

Similar a Preparing for a future Microservices journey using DDD & Wardley Maps (20)

Preparing for a future Microservices journey - Susanne Kaiser
Preparing for a future Microservices journey - Susanne Kaiser Preparing for a future Microservices journey - Susanne Kaiser
Preparing for a future Microservices journey - Susanne Kaiser
 
Preparing for a future microservices journey (with Wardley Maps)
Preparing for a future microservices journey (with Wardley Maps)Preparing for a future microservices journey (with Wardley Maps)
Preparing for a future microservices journey (with Wardley Maps)
 
Designing a Serverless Application with Domain Driven Design
 Designing a Serverless Application with Domain Driven Design  Designing a Serverless Application with Domain Driven Design
Designing a Serverless Application with Domain Driven Design
 
Voxxed Days Microservices Paris 2018 - Keynote
Voxxed Days Microservices Paris 2018 - KeynoteVoxxed Days Microservices Paris 2018 - Keynote
Voxxed Days Microservices Paris 2018 - Keynote
 
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
Resilient Real-time Data Streaming across the Edge and Hybrid Cloud with Apac...
 
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
 
Monitoring the #DevOps way
Monitoring the #DevOps wayMonitoring the #DevOps way
Monitoring the #DevOps way
 
Adaptive Socio-Technical Systems w/ Architecture for Flow
Adaptive Socio-Technical Systems w/ Architecture for FlowAdaptive Socio-Technical Systems w/ Architecture for Flow
Adaptive Socio-Technical Systems w/ Architecture for Flow
 
KIKK Festival 2022.pdf
KIKK Festival 2022.pdfKIKK Festival 2022.pdf
KIKK Festival 2022.pdf
 
Wearables and IoT in 2018
Wearables and IoT in 2018Wearables and IoT in 2018
Wearables and IoT in 2018
 
Ctechpresentation
CtechpresentationCtechpresentation
Ctechpresentation
 
Planning for a Digital Future
Planning for a Digital FuturePlanning for a Digital Future
Planning for a Digital Future
 
The truth about "You build it, you run it!"
The truth about "You build it, you run it!"The truth about "You build it, you run it!"
The truth about "You build it, you run it!"
 
From atoms to bits (and back again)
From atoms to bits (and back again)From atoms to bits (and back again)
From atoms to bits (and back again)
 
apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...
apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...
apidays Paris 2022 - How GraphQL accelerates B2B Composable Commerce, Marco E...
 
Essentials of XR (ARVR) Product Development
Essentials of XR (ARVR) Product DevelopmentEssentials of XR (ARVR) Product Development
Essentials of XR (ARVR) Product Development
 
AR and VR for Good
AR and VR for GoodAR and VR for Good
AR and VR for Good
 
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
Apache Kafka in the Automotive Industry (Connected Vehicles, Manufacturing 4....
 
Evolution of cadcamcae techonology and value to the industry v1.compressed
Evolution of cadcamcae techonology and value to the industry v1.compressedEvolution of cadcamcae techonology and value to the industry v1.compressed
Evolution of cadcamcae techonology and value to the industry v1.compressed
 
Digital Transformation in the Painting & Coating Industries_Part 2
Digital Transformation in the Painting & Coating Industries_Part 2Digital Transformation in the Painting & Coating Industries_Part 2
Digital Transformation in the Painting & Coating Industries_Part 2
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Preparing for a future Microservices journey using DDD & Wardley Maps

  • 1. Preparing For a Future Microservices Journey Using Wardley Maps Susanne Kaiser Independent Tech Consultant @suksr DDD &
  • 2. 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 MarketSize(USDBillion) CAGR ~17%
  • 7. @suksr High cohesion within a service Loose coupling between services
  • 8. @suksr High cohesion within a service Loose coupling between services
  • 15. API APIAPIService Discovery 1. Register 3. Connect 2. Discover Hardware O/S Virtualization Container Runtime @suksr
  • 22. API APIAPIService Discovery API Timeout-Handling Retries Bulk- heads Circuit Breaker Message Broker Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  • 23. API APIAPIService Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Circuit Breaker Message Broker API-Gateway Hardware O/S Virtualization Container Runtime @suksr Idempotency
  • 24. API APIAPIService 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
  • 25. API APIAPIService Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health ChecksHardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  • 26. API APIAPIService 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 TestBuild CI/CD Pipeline Deploy Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  • 27. Recovery API APIAPIService 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 TestBuild CI/CD Pipeline Deploy Hardware O/S Virtualization Container Runtime Backup @suksr Load-Balancer Scaling Idempotency
  • 29. 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/SVirtualization Container Runtime Checkout TestBuild CI/CD Pipeline Deploy µService Backup Recovery @suksr Scaling Maintenance Integration Security
  • 30. 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
  • 31. 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/SVirtualization Container Runtime Checkout TestBuild 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
  • 32. ValueChain InvisibleVisible Evolution Visualisation of a value chain’s evolution Genesis Custom-Built Product (+rental) Commodity (+utility) Position Movement Wardley Maps BY SIMON WARDLEY Uncharted Industrialised @suksr
  • 33. Wardley Maps – VALUE CHAIN Who are your users? ValueChain InvisibleVisible @suksr
  • 34. Wardley Maps – VALUE CHAIN Who are your users? What are your users’ needs? ValueChain InvisibleVisible @suksr
  • 35. 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? ValueChain InvisibleVisible Position @suksr
  • 36. Wardley Maps – LANDSCAPE ValueChain InvisibleVisible Evolution Components along evolution axes Genesis Custom-Built Product (+rental) Commodity (+utility) Position Movement @suksr
  • 37. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Everything evolves Past Current Future Supply CompetitionDemand Competition Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 38. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Everything evolves Past Current Future Continuous adaption Wardley Maps – PATTERNS Movement Evolution @suksr
  • 39. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Past Current Future Characteristics changeUncharted 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
  • 40. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 41. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 42. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 43. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 44. ValueChain InvisibleVisible 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
  • 45. ValueChain InvisibleVisible 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
  • 46. ValueChain InvisibleVisible 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
  • 47. ValueChain InvisibleVisible 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
  • 48. Domain Driven Design Ubiquitous Language Domain Knowledge Understanding the problem domain first before solving it Problem Domain Domain Experts Development Teams Collaboration @suksr
  • 49. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution DDD & Wardley Maps Problem Domain Strategic Design DDD Patterns & Practices Tactical Design @suksr StrategicDesignTacticalDesign
  • 50. ValueChain InvisibleVisible 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 ProblemSpace StrategicDesignTacticalDesign Analyse&Discover
  • 51. ValueChain InvisibleVisible 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 ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Analyse&DiscoverDecompose& Map High-Level Design Decisions
  • 52. ValueChain InvisibleVisible 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 ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Analyse&DiscoverArchitect& Implement High-Level Design Decisions Low-Level Design Decisions Decompose& Map
  • 53. Analyse&Discover ValueChain InvisibleVisible 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 ProblemSpace StrategicDesign
  • 54. ValueChain InvisibleVisible 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 Analyse&Discover ProblemSpace StrategicDesign Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
  • 55. ValueChain InvisibleVisible 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 Analyse&Discover ProblemSpace StrategicDesign Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
  • 56. ValueChain InvisibleVisible 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 Analyse&Discover ProblemSpace StrategicDesign Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
  • 57. Decompose& Map Analyse&Discover ValueChain InvisibleVisible 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 ProblemSpaceSolutionSpace StrategicDesign
  • 58. ValueChain InvisibleVisible 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 Decompose& Map Analyse&Discover ProblemSpace StrategicDesign SolutionSpace
  • 59. ValueChain InvisibleVisible 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 Analyse&Discover ProblemSpace StrategicDesign
  • 60. ValueChain InvisibleVisible 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 GenericCore @suksr Analyse&Discover ProblemSpace StrategicDesign
  • 61. ValueChain InvisibleVisible 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 GenericCore Event Evaluation AccountSchedule MessageSession Domain Models @suksr Decompose& Map Analyse&Discover ProblemSpaceSolutionSpace StrategicDesign
  • 62. ValueChain InvisibleVisible 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 GenericCore Event Evaluation AccountSchedule Message Speaker Session CfP STRATEGIC DESIGN (SOLUTION SPACE) Domain Models @suksr Decompose& Map Analyse&Discover ProblemSpace StrategicDesign SolutionSpace
  • 63. ValueChain InvisibleVisible 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 GenericCore Event Evaluation AccountSchedule Message Speaker Profile Submitted Session CfP Settings Recipient Open CfP Evaluated Session Scheduled Session STRATEGIC DESIGN (SOLUTION SPACE) Domain Models @suksr Decompose& Map Analyse&Discover ProblemSpace StrategicDesign SolutionSpace
  • 64. ValueChain InvisibleVisible 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 GenericCore STRATEGIC DESIGN (SOLUTION SPACE) Bounded Contexts Linguistic/semantic boundary Model integrity boundary Event Evaluation AccountSchedule MessageSubmitted Session CfP Settings Recipient Open CfP Evaluated Session Scheduled Session Speaker Profile Session Evaluation Submission Handling Event Mngmnt. Schedule Mngmnt. Messaging Account Handling @suksr Decompose& Map Analyse&Discover ProblemSpace StrategicDesign SolutionSpace
  • 65. ValueChain InvisibleVisible 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 GenericCore 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 Decompose& Map Analyse&Discover ProblemSpace StrategicDesign SolutionSpace
  • 66. ValueChain InvisibleVisible 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 GenericCore 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 Decompose& Map Analyse&Discover ProblemSpace StrategicDesign SolutionSpace
  • 67. ValueChain InvisibleVisible 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 GenericCore 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 Decompose& Map Analyse&Discover ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Architect& Implement
  • 68. ValueChain InvisibleVisible 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 GenericCore 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 Decompose& Map Analyse&Discover ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Architect& Implement
  • 69. 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}/activatePOST /events DELETE /events/{id} Inner Outer Outside (Port) (Adapter) (Adapter) (Port)
  • 70. ValueChain InvisibleVisible 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 GenericCore 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 - Decompose& Map Analyse&Discover ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Architect& Implement
  • 71. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Wardley Maps Supporting GenericCore INFRASTRUCTURE MAPPING @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Position Data Storage Infrastructure
  • 72. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Data StorageSearch Engine Wardley Maps INFRASTRUCTURE MAPPING Position Infrastructure
  • 73. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Data StorageSearch Engine Compute Platform Wardley Maps INFRASTRUCTURE MAPPING Position Infrastructure
  • 74. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Data StorageSearch Engine Compute Platform VM Wardley Maps INFRASTRUCTURE MAPPING Position Infrastructure
  • 75. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession Event Submission w/ Speakers Data Storage Search Engine Compute Platform VMMovement 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 Infrastructure
  • 76. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 77. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 78. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit DDD & Wardley Maps Supporting GenericCore TACTICAL DESIGN @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 79. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 82. command query Message Broker publish subscribe command query Request-Driven Hybrid Message Broker publish subscribe Event-Driven @suksr API API API Service Interactions
  • 83. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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. Infrastructure
  • 84. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 85. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 86. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 87. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 88. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 89. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 90. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 orchestration platform ID aaS Infrastructure
  • 91. Managed by YOU Managed by PlatformHardware 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
  • 92. Containerized Microservice Pod Service Volume Deployment Master Node Worker NodeWorker Node Ingress Deployment Deployment Container Orchestration BASIC COMPONENTS OF KUBERNETES
  • 93. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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
  • 94. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 IngressService New Primitives ID aaS
  • 95. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 IngressServiceSecretStateful Set Cron Job JobConfig Map Network Policy Replica Set Daemon Set Horizontal Pod Autoscaler Persistent Volume ClaimEgress more ... ID aaS Infrastructure
  • 96. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 97. 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
  • 98. 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
  • 99. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 100. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution EvaluateManage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting GenericCore @suksr ProblemSpaceSolutionSpace StrategicDesignTacticalD. ScheduleSession 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 Infrastructure
  • 101. FunctionEvent Event-Driven Workflow Hardware Data Store O/SVirtualization Container Runtime Fully Managed By Third Party Ephemeral Function Pay-per-ExecutionAuto-Scaling @suksr triggers Serverless w/ FaaS CHARACTERISTICS
  • 102. 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
  • 107. ValueChain InvisibleVisible 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 GenericCore 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 ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Serverless w/ FaaS API Gateway Lambda DynamoDB S3 SNS Cognito SE aaS Infrastructure
  • 109. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Summary @suksr Know your users & user needs
  • 110. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Summary Supporting GenericCore @suksr Decompose &Map Analyse&Discov. ProblemSpaceSolutionSp. StrategicDesign Know your users & user needs Understand the problem first and focus on core domain
  • 111. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Summary Supporting GenericCore @suksr Decompose &Map Analyse&Discov. ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Architect& Implement - or - - or - - or - Know your users & user needs Understand the problem first and focus on core domain DDD suits well for your core domain
  • 112. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Summary Supporting GenericCore @suksr Decompose &Map Analyse&Discov. ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Architect& Implement Infrastructure 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
  • 113. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Summary Supporting GenericCore @suksr Decompose &Map Analyse&Discov. ProblemSpaceSolutionSpace StrategicDesignTacticalDesign Architect& Implement Infrastructure 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