Soumettre la recherche
Mettre en ligne
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
•
6 j'aime
•
430 vues
S
solidkim
Suivre
Never develop microservices for only microservices in tech.
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 66
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices
Kim Kao
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd
Kim Kao
2019 08-01-i ddd-studygroup-appendix
2019 08-01-i ddd-studygroup-appendix
Kim Kao
My past-3 yeas-developer-journey-at-linkedin-by-iantsai
My past-3 yeas-developer-journey-at-linkedin-by-iantsai
Kim Kao
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
Kim Kao
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
Kim Kao
IBM Cloud Services Portfolio
IBM Cloud Services Portfolio
Bernd Thomsen
Cloudy with SaaS Shine
Cloudy with SaaS Shine
Simon Baker
Recommandé
2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices
Kim Kao
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd
Kim Kao
2019 08-01-i ddd-studygroup-appendix
2019 08-01-i ddd-studygroup-appendix
Kim Kao
My past-3 yeas-developer-journey-at-linkedin-by-iantsai
My past-3 yeas-developer-journey-at-linkedin-by-iantsai
Kim Kao
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
2019-02-20-ddd taiwan-community-iddd-studygroup-1st
Kim Kao
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
Kim Kao
IBM Cloud Services Portfolio
IBM Cloud Services Portfolio
Bernd Thomsen
Cloudy with SaaS Shine
Cloudy with SaaS Shine
Simon Baker
IBM Cloud Services Portfolio
IBM Cloud Services Portfolio
Bernd Thomsen
Cloud Service Management. A New Beginning.
Cloud Service Management. A New Beginning.
Mark O'Loughlin
The Exinda WAN Optimization Appliance - Jason Whitaker, Transylvania University
The Exinda WAN Optimization Appliance - Jason Whitaker, Transylvania University
Association of Independent Kentucky Colleges and Universities
Cloudtechnologyassociatepart 1
Cloudtechnologyassociatepart 1
Anne Starr
IBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue Box
Daniele Bolletta
IBM cloud open by design
IBM cloud open by design
Vietnam Open Infrastructure User Group
Javascript Client & Server Architectures
Javascript Client & Server Architectures
Pedro Melo Pereira
2011.11.22 - Cloud Services Solution Provider - 8ème Forum du Club Cloud des ...
2011.11.22 - Cloud Services Solution Provider - 8ème Forum du Club Cloud des ...
Club Cloud des Partenaires
Bluemix overview v1.4
Bluemix overview v1.4
Jose Pena
Cch slides input from cms walk through
Cch slides input from cms walk through
Leszek Wisłowski
IBM Codename: Bluemix - Cloudfoundry, PaaS development and deployment trainin...
IBM Codename: Bluemix - Cloudfoundry, PaaS development and deployment trainin...
Romeo Kienzler
IBM Cloud Service Provider Platform
IBM Cloud Service Provider Platform
Hal Van Hercke
IBM Softlayer Bluemix Marketplace
IBM Softlayer Bluemix Marketplace
Simon Baker
20190727 HashiCorp Consul Workshop: 管管你們家 config 啦
20190727 HashiCorp Consul Workshop: 管管你們家 config 啦
Jiun-Yi Chen
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Christophe Lucas
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
Michael Elder
Cisco Prime Unified Management for Next-Generation Internet
Cisco Prime Unified Management for Next-Generation Internet
Cisco Canada
DFW BlueMix Meetup - demo and slides
DFW BlueMix Meetup - demo and slides
chuckdey
Cloud Computing
Cloud Computing
UOS
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
Tammy Bednar
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Christian Posta
Essential capabilities behind Microservices
Essential capabilities behind Microservices
Amazon Web Services
Contenu connexe
Tendances
IBM Cloud Services Portfolio
IBM Cloud Services Portfolio
Bernd Thomsen
Cloud Service Management. A New Beginning.
Cloud Service Management. A New Beginning.
Mark O'Loughlin
The Exinda WAN Optimization Appliance - Jason Whitaker, Transylvania University
The Exinda WAN Optimization Appliance - Jason Whitaker, Transylvania University
Association of Independent Kentucky Colleges and Universities
Cloudtechnologyassociatepart 1
Cloudtechnologyassociatepart 1
Anne Starr
IBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue Box
Daniele Bolletta
IBM cloud open by design
IBM cloud open by design
Vietnam Open Infrastructure User Group
Javascript Client & Server Architectures
Javascript Client & Server Architectures
Pedro Melo Pereira
2011.11.22 - Cloud Services Solution Provider - 8ème Forum du Club Cloud des ...
2011.11.22 - Cloud Services Solution Provider - 8ème Forum du Club Cloud des ...
Club Cloud des Partenaires
Bluemix overview v1.4
Bluemix overview v1.4
Jose Pena
Cch slides input from cms walk through
Cch slides input from cms walk through
Leszek Wisłowski
IBM Codename: Bluemix - Cloudfoundry, PaaS development and deployment trainin...
IBM Codename: Bluemix - Cloudfoundry, PaaS development and deployment trainin...
Romeo Kienzler
IBM Cloud Service Provider Platform
IBM Cloud Service Provider Platform
Hal Van Hercke
IBM Softlayer Bluemix Marketplace
IBM Softlayer Bluemix Marketplace
Simon Baker
20190727 HashiCorp Consul Workshop: 管管你們家 config 啦
20190727 HashiCorp Consul Workshop: 管管你們家 config 啦
Jiun-Yi Chen
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Christophe Lucas
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
Michael Elder
Cisco Prime Unified Management for Next-Generation Internet
Cisco Prime Unified Management for Next-Generation Internet
Cisco Canada
DFW BlueMix Meetup - demo and slides
DFW BlueMix Meetup - demo and slides
chuckdey
Tendances
(18)
IBM Cloud Services Portfolio
IBM Cloud Services Portfolio
Cloud Service Management. A New Beginning.
Cloud Service Management. A New Beginning.
The Exinda WAN Optimization Appliance - Jason Whitaker, Transylvania University
The Exinda WAN Optimization Appliance - Jason Whitaker, Transylvania University
Cloudtechnologyassociatepart 1
Cloudtechnologyassociatepart 1
IBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue Box
IBM cloud open by design
IBM cloud open by design
Javascript Client & Server Architectures
Javascript Client & Server Architectures
2011.11.22 - Cloud Services Solution Provider - 8ème Forum du Club Cloud des ...
2011.11.22 - Cloud Services Solution Provider - 8ème Forum du Club Cloud des ...
Bluemix overview v1.4
Bluemix overview v1.4
Cch slides input from cms walk through
Cch slides input from cms walk through
IBM Codename: Bluemix - Cloudfoundry, PaaS development and deployment trainin...
IBM Codename: Bluemix - Cloudfoundry, PaaS development and deployment trainin...
IBM Cloud Service Provider Platform
IBM Cloud Service Provider Platform
IBM Softlayer Bluemix Marketplace
IBM Softlayer Bluemix Marketplace
20190727 HashiCorp Consul Workshop: 管管你們家 config 啦
20190727 HashiCorp Consul Workshop: 管管你們家 config 啦
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Perth DevOps Meetup - Introducing the IBM Innovation Lab - 12112015
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
Cisco Prime Unified Management for Next-Generation Internet
Cisco Prime Unified Management for Next-Generation Internet
DFW BlueMix Meetup - demo and slides
DFW BlueMix Meetup - demo and slides
Similaire à 2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
Cloud Computing
Cloud Computing
UOS
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
Tammy Bednar
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Christian Posta
Essential capabilities behind Microservices
Essential capabilities behind Microservices
Amazon Web Services
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Christian Posta
Implementing Microservices by DDD
Implementing Microservices by DDD
Amazon Web Services
Serverless: costruire applicazioni native per il cloud
Serverless: costruire applicazioni native per il cloud
Amazon Web Services
NoOps in a Serverless World
NoOps in a Serverless World
Gary Arora
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
Kim Kao
Stages of Adoption leading to Complete Migration
Stages of Adoption leading to Complete Migration
Amazon Web Services
以容器技術為基礎的混合雲設計架構
以容器技術為基礎的混合雲設計架構
Amazon Web Services
Cloud computing
Cloud computing
Sunil Kumar
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Men and Mice
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
Matthew Perrins
Building and Successfully Selling ISV Solutions with AWS Partner-Summit-Singa...
Building and Successfully Selling ISV Solutions with AWS Partner-Summit-Singa...
Amazon Web Services
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Amazon Web Services
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Amazon Web Services
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Amazon Web Services
Mainframe cloud computing presentation
Mainframe cloud computing presentation
xKinAnx
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native Applications
Denim Group
Similaire à 2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
(20)
Cloud Computing
Cloud Computing
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Essential capabilities behind Microservices
Essential capabilities behind Microservices
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Implementing Microservices by DDD
Implementing Microservices by DDD
Serverless: costruire applicazioni native per il cloud
Serverless: costruire applicazioni native per il cloud
NoOps in a Serverless World
NoOps in a Serverless World
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
Stages of Adoption leading to Complete Migration
Stages of Adoption leading to Complete Migration
以容器技術為基礎的混合雲設計架構
以容器技術為基礎的混合雲設計架構
Cloud computing
Cloud computing
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cisco Live 2019: New Best Practices for Hybrid and Multicloud Network Strategies
Cloud Native Patterns with Bluemix Developer Console
Cloud Native Patterns with Bluemix Developer Console
Building and Successfully Selling ISV Solutions with AWS Partner-Summit-Singa...
Building and Successfully Selling ISV Solutions with AWS Partner-Summit-Singa...
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
Mainframe cloud computing presentation
Mainframe cloud computing presentation
The As, Bs, and Four Cs of Testing Cloud-Native Applications
The As, Bs, and Four Cs of Testing Cloud-Native Applications
Dernier
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
joe51371421
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
Wave PLM
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
ICS
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Steffen Staab
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
Jhone kinadey
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Dynamic Netsoft
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
MyIntelliSource, Inc.
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
SolGuruz
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
panagenda
Clustering techniques data mining book ....
Clustering techniques data mining book ....
ShaimaaMohamedGalal
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
OnePlan Solutions
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
ThousandEyes
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
Evangelist Apps https://twitter.com/EvangelistSW/
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
aagamshah0812
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
ComplianceQuest1
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
bodapatigopi8531
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
Fatema Valibhai
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
kalichargn70th171
Dernier
(20)
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
DNT_Corporate presentation know about us
DNT_Corporate presentation know about us
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
Clustering techniques data mining book ....
Clustering techniques data mining book ....
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
1.
© 2019, Domain
Driven Design Taiwan Community Kim Kao ( ) April 25, 2019 Essential Capabilities behind Microservices
2.
© 2019, Domain
Driven Design Taiwan Community A typical day for a customer new to AWS... Manager - “We are going to run workload(s) on AWS. We have new sub-systems/module to develop with legacy services. Container is good, Lambda is awesome. It’s great to have whole cloud native advantage if you guys migrate all service into microservice, serverless...” Developer - “Not a problem. I’ll make it …”
3.
© 2019, Domain
Driven Design Taiwan Community Business Wants https://vaughnvernon.co/tag/event-storming/
4.
© 2019, Domain
Driven Design Taiwan Community But You Want https://vaughnvernon.co/tag/event-storming/
5.
© 2019, Domain
Driven Design Taiwan Community Challenge on migration to Microserivces • Legacy looks like Big ball of mud(BBOM) • Heavy dependency with external system • No idea on splitting BBOM • No idea to find out system boundary • Which service(s) worth to do • Human resources allocation • Team, out sourcing, ISVs solution
6.
© 2019, Domain
Driven Design Taiwan Community What are Microservices?
7.
© 2019, Domain
Driven Design Taiwan Community = Microservices ?
8.
© 2019, Domain
Driven Design Taiwan Community 100/200/300/1000? LOC
9.
© 2019, Domain
Driven Design Taiwan Community © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. What Are Microservices? “A software architecture style in which complex applications are composed of small, independent processes communicating with each other using language- agnostic APIs. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building.” - Wikipedia https://en.wikipedia.org/wiki/Microservices
10.
© 2019, Domain
Driven Design Taiwan Community Way to divide services from Monolith • By noun(s) • By Your Experience(s) • By Team’s decision • Up to Leader/Manager/CxO ... • No right or power to influence
11.
© 2019, Domain
Driven Design Taiwan Community Problem behind Microservices
12.
© 2019, Domain
Driven Design Taiwan Community Monolith Load Balancer Account Service Cart Service Shipping Service StoreFront UI Browser Database Data Access Service
13.
© 2019, Domain
Driven Design Taiwan Community Account Database Inventory Database Shipping Database Migrate to Microservices Load Balancer StoreFront UI Browser Account Service Cart Service Shipping Service Load Balancer Load Balancer Load Balancer
14.
© 2019, Domain
Driven Design Taiwan Community Challenge is Coming • Authentication & Authorization • Session mechanism is broken • Centralized & Robust alternative one is required • Service Discovery • Write the traffic routing code(s) in logic? • Re-try, Failover, Caching, ... • Persistence • Isolated Persistence for each Service
15.
© 2019, Domain
Driven Design Taiwan Community A Classic solution on AWS Load Balancer StoreFront UI Browser Account Database Account Service Cart Service Inventory Database Shipping Service API Gateway Load Balancer Load Balancer Load Balancer Shipping Database
16.
© 2019, Domain
Driven Design Taiwan Community Authentication & Authorization • Token based solution fit in • Cognito • 3rd party Authentication Federation • Amazon, Google, Apple, Facebook... • Self developed/hosted centralize A&A services
17.
© 2019, Domain
Driven Design Taiwan Community Service Discovery • Client Side-Service Discovery • Application Load Balancer-based Service Discovery • DNS-Based Service Discovery • Service Discovery using ECS Event Stream • Configuration Management • New * App Service Mesh (preview) • Cloud Map
18.
© 2019, Domain
Driven Design Taiwan Community Microservices For Persistence ? Stateful Persistent always be the top issue !!!
19.
© 2019, Domain
Driven Design Taiwan Community • Accept all API calls to one RDS Cluster • RDS Instance Sizing predict by services scaling ability • DBA(s) : How to manage Connection Pool ? • Read replica can’t help on Write intention • RDS I/O be the bottleneck when highly Scale up • All Services impacted while any failure occurred • Option : Upgrade Read Replica to Master Launching 1 RDS cluster
20.
© 2019, Domain
Driven Design Taiwan Community Launching N * RDS for Independency?
21.
© 2019, Domain
Driven Design Taiwan Community • DynamoDB • Perfect deal with high transaction (write) • Serve each table for only one transaction/service intention • De-Normalize schema is required • Prevent revision issue • Hard to do complexity Join Query • Cost High • Low Performance • Coding for iteration & aggregation • Apply all RDS tables into DynamoDB? Using NoSQL Solution?
22.
© 2019, Domain
Driven Design Taiwan Community It’s about capability • Are you ready to deal with M:N transaction compensation ? • Are you ready to embrace the rapidly change by contract ?
23.
© 2019, Domain
Driven Design Taiwan Community Transaction Dependencies between Microservices • Upstream-Downstream co-relationship • One Transaction invoke local API and Remote API Book Rental Service Book Flight Service Trip Service Book Hotel Service Exception / Error ? Exception / Error ? Exception / Error ? !" # !$ # !# # + + Transaction Compensate
24.
© 2019, Domain
Driven Design Taiwan Community Saga : Alternative for 2 Phase -commit
25.
© 2019, Domain
Driven Design Taiwan Community Context • You have applied the Database per Service pattern. Each service has its own database. • Some business transactions, however, span multiple service so you need a mechanism to ensure data consistency across services.
26.
© 2019, Domain
Driven Design Taiwan Community Problem How to maintain data consistency across services?
27.
© 2019, Domain
Driven Design Taiwan Community Forces • 2 Phase-Commit(PC) is a well-known solution for years • The 2PC coordinator also represents a Single Point of Failure, which is unacceptable for critical systems
28.
© 2019, Domain
Driven Design Taiwan Community Solutions • Each local transaction updates self and publishes a message/event to trigger the next local transaction in the saga. • If a local transaction fails because it violates a business rule then the saga executes a series of compensating transactions that undo the changes that were made by the preceding local transactions. https://microservices.io/patterns/data/saga.html
29.
© 2019, Domain
Driven Design Taiwan Community Two ways of Saga Pattern • Choreography - each local transaction publishes domain events that trigger local transactions in other services • Orchestration - an orchestrator (object) tells the participants what local transactions to execute https://microservices.io/patterns/data/saga.html
30.
© 2019, Domain
Driven Design Taiwan Community Choreography-based Saga https://microservices.io/patterns/data/saga.html 2 1 3.b 3.a 4.a 4.b • Logic in code • Compensate chain • Multiple states present in transaction
31.
© 2019, Domain
Driven Design Taiwan Community Orchestration -based Saga https://microservices.io/patterns/data/saga.html • Coordinator stand alone • Each service provide a pair function for Success or Fail • Abstract compensate logic out of Codes1 1.1 2 3 45
32.
© 2019, Domain
Driven Design Taiwan Community Resulting Context • This pattern has the following benefits: • It enables an application to maintain data consistency across multiple services without using distributed transactions • This solution has the following drawbacks: • The programming model is more complex. For example, a developer must design compensating transactions that explicitly undo changes made earlier in a saga. • There are also the following issues to address: • In order to be reliable, a service must atomically update its database and publish a message/event. It cannot use the traditional mechanism of a distributed transaction that spans the database and the message broker. Instead, it must use one of the patterns listed below.
33.
© 2019, Domain
Driven Design Taiwan Community Implementing Saga
34.
© 2019, Domain
Driven Design Taiwan Community • Each Service provide cancel operation • State change trigger cancel operation • Simplify Complexity rules • Just a JSON file
35.
© 2019, Domain
Driven Design Taiwan Community Code snippet https://github.com/humank/lambda-saga-pattern
36.
© 2019, Domain
Driven Design Taiwan Community Demo
37.
© 2019, Domain
Driven Design Taiwan Community
38.
© 2019, Domain
Driven Design Taiwan Community How to adopt Microservices?
39.
© 2019, Domain
Driven Design Taiwan Community
40.
© 2019, Domain
Driven Design Taiwan Community
41.
© 2019, Domain
Driven Design Taiwan Community
42.
© 2019, Domain
Driven Design Taiwan Community
43.
© 2019, Domain
Driven Design Taiwan Community
44.
© 2019, Domain
Driven Design Taiwan Community Business operation without whole picture The Blind Men and the Elephant Is It correct to all in microservices or serverless ?
45.
© 2019, Domain
Driven Design Taiwan Community Precondition to do microservices Rapid Provisioning Basic monitoring Rapid application deployment Martin Fowler
46.
© 2019, Domain
Driven Design Taiwan Community Better way to decompose Monolith Domain Expert Matters
47.
&
48.
© 2019, Domain
Driven Design Taiwan Community How to break Monolith?
49.
© 2019, Domain
Driven Design Taiwan Community Way to collaborate • Point out the events • Who send the command • Find the Noun(s) • Have all team voices Commands Events Aggregate
50.
© 2019, Domain
Driven Design Taiwan Community Coffee shop experience DDD by EventStorming
51.
© 2019, Domain
Driven Design Taiwan Community
52.
© 2019, Domain
Driven Design Taiwan Community
53.
© 2019, Domain
Driven Design Taiwan Community
54.
© 2019, Domain
Driven Design Taiwan Community
55.
© 2019, Domain
Driven Design Taiwan Community
56.
© 2019, Domain
Driven Design Taiwan Community
57.
© 2019, Domain
Driven Design Taiwan Community
58.
© 2019, Domain
Driven Design Taiwan Community Go through Event Storming approach Don’t tell tech only Don’t sell tech partially Aim for Core value Figure out trigger and result
59.
© 2019, Domain
Driven Design Taiwan Community Seat occupied Menu offered Ordered 2 cups of Americano Paid Order received Coffee made up Customers Left Table Cleaned *Key Business Events in Coffeeshop
60.
© 2019, Domain
Driven Design Taiwan Community Event Trigger • Client • Server • Counter • Barista ACTORS
61.
© 2019, Domain
Driven Design Taiwan Community Most Valuable / Risky Events
62.
© 2019, Domain
Driven Design Taiwan Community © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Order Make Up Payment Event Bus (pub/sub) Put event Event Event CloudWatch Event . . . Any other messaging technology Coffee shop Domain implementation Core Domain Sub Domain (Messaging) Support Domain Core Domain
63.
© 2019, Domain
Driven Design Taiwan Community When you should dive in Microservices Team Partners Business Operation Coding Value
64.
© 2019, Domain
Driven Design Taiwan Community How DDD can help you • Business strategy on resource allocation • Best resources should be put in most key/core domain • Buy or out-sourcing common domain and sub domain • Service re-architecture • Form up the system context boundary • Knowing the upstream-downstream relationship between domains • Meaningful to do microservice (separate computing/persist, and API communication ) • Service Migration • Good to re-architecture
65.
© 2019, Domain
Driven Design Taiwan Community Take Away Know Why/What/How • Do you really need Microservices? • Leverage Business Events to aggregate context and form up Service Boundary • There is no C4 to solve distributed persistence issue • State Machine to do Transaction Compensate (Step Functions way to go) • DDD is good to collaborate Business and Technology guys by speaking Ubiquitous Language • Crunch Problem, then design solution
66.
© 2019, Domain
Driven Design Taiwan Community Implementing DDD on AWS Commounty : DDD Taiwan@FB Telegram : YikaiKao WeChat : YikaiKao Twitter : @YikaiKao GitHub Repos
Télécharger maintenant