Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Preparing for a future Microservices journey using DDD & Wardley Maps

614 views

Published on

The journey to Microservices can be very challenging. Identifying proper boundaries, integrating services, and handling infrastructure and operational complexities that Microservices come with can be very overwhelming.

How not to loose sight and to cope with those challenges and still delivering user and business value? One approach could be to focus on that part of your business that gives most competitive advantage - your core domain - and outsource undifferentiating commodities to utility suppliers.

Domain Driven Design combined with Wardley Maps can help us to understand the problem domain and to focus on the core domain.

In this talk Susanne will show how Domain Driven Design and Wardley Maps can be used together to visualise how a value chain can evolve during a Microservices journey and keeping focus on your core domain.

Published in: Technology

Preparing for a future Microservices journey using DDD & Wardley Maps

  1. 1. Preparing For a Future Microservices Journey Using Wardley Maps Susanne Kaiser Independent Tech Consultant @suksr DDD &
  2. 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%
  3. 3. Source: https://www.infoq.com/articles/architecture-trends-2019/
  4. 4. Source: https://www.infoq.com/articles/architecture-trends-2019/
  5. 5. Source: https://en.wikipedia.org/wiki/Hype_cycle#/media/File:Gartner_Hype_Cycle.svg Microservices ? Gartner Hype Cycle
  6. 6. @suksr
  7. 7. @suksr High cohesion within a service Loose coupling between services
  8. 8. @suksr High cohesion within a service Loose coupling between services
  9. 9. @suksr Data Store
  10. 10. Data Store @suksr Config./Setup Maintenance Integration
  11. 11. Hardware O/S Virtualization Container Runtime @suksr
  12. 12. API Hardware O/S Virtualization Container Runtime @suksr
  13. 13. API Hardware O/S Virtualization Container Runtime @suksr APIAPI Integration
  14. 14. API Hardware O/S Virtualization Container Runtime @suksr APIAPI Security
  15. 15. API APIAPIService Discovery 1. Register 3. Connect 2. Discover Hardware O/S Virtualization Container Runtime @suksr
  16. 16. API APIAPIService Discovery Load-Balancer Hardware O/S Virtualization Container Runtime @suksr
  17. 17. API APIAPIService Discovery API Timeout-Handling Hardware O/S Virtualization Container Runtime @suksr Load-Balancer
  18. 18. API APIAPIService Discovery API Timeout-Handling Retries Hardware O/S Virtualization Container Runtime @suksr Load-Balancer
  19. 19. API APIAPIService Discovery API Timeout-Handling Retries Idempotency Hardware O/S Virtualization Container Runtime @suksr Load-Balancer
  20. 20. API APIAPIService Discovery API Timeout-Handling Retries Bulk- heads Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  21. 21. API APIAPIService Discovery API Timeout-Handling Retries Bulk- Heads Circuit Breaker Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  22. 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. 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. 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. 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. 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. 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
  28. 28. µService @suksr
  29. 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. 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. 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. 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. 33. Wardley Maps – VALUE CHAIN Who are your users? ValueChain InvisibleVisible @suksr
  34. 34. Wardley Maps – VALUE CHAIN Who are your users? What are your users’ needs? ValueChain InvisibleVisible @suksr
  35. 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. 36. Wardley Maps – LANDSCAPE ValueChain InvisibleVisible Evolution Components along evolution axes Genesis Custom-Built Product (+rental) Commodity (+utility) Position Movement @suksr
  37. 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. 38. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Everything evolves Past Current Future Continuous adaption Wardley Maps – PATTERNS Movement Evolution @suksr
  39. 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. 40. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  41. 41. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  42. 42. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  43. 43. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  44. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  80. 80. command query Request-Driven @suksr API API Service Interactions
  81. 81. command query Request-Driven Message Broker publish subscribe Event-Driven @suksr API API Service Interactions
  82. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 92. Containerized Microservice Pod Service Volume Deployment Master Node Worker NodeWorker Node Ingress Deployment Deployment Container Orchestration BASIC COMPONENTS OF KUBERNETES
  93. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  103. 103. ApiGatewayAdapter DynamoDBAdapter EventModel EventApplicationService EventRepository DynamoDB newEvent API Gateway Manage EventOrganiser Event Management
  104. 104. ApiGatewayAdapter DynamoDBAdapter EventModel EventApplicationService EventRepository EventPublisherSNSTopicAdapter DynamoDB SNS newEvent activateEvent API Gateway Manage EventOrganiser Event Management
  105. 105. 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
  106. 106. 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
  107. 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
  108. 108. Serverless Infrastructure Providers
  109. 109. ValueChain InvisibleVisible Genesis Custom-Built Product (+rental) Commodity (+utility) Evolution Summary @suksr Know your users & user needs
  110. 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. 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. 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. 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
  114. 114. Some References https://learnwardleymapping.com/ https://medium.com/wardleymaps https://miro.com/blog/wardley-maps-whiteboard-canvas/ https://community.wardleymaps.com/

×