SlideShare ist ein Scribd-Unternehmen logo
1 von 75
Downloaden Sie, um offline zu lesen
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kim Kao, Solutions Architect
Mar 13, 2019
Implementing Microservices by DDD
DDD – A collaboration way to go
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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 …”
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Business Wants
https://vaughnvernon.co/tag/event-storming/
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
But You Want
https://vaughnvernon.co/tag/event-storming/
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What are Microservices?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
= Microservices ?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
100/200/300/1000?
LOC
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Case study - Gilt
Problem behind Microservices
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Gilt
The limited-selling website for limited time purchases, the flash purchase start time is except for 9
:00 pm on Wednesday and Sunday, and the rest are sold at 12 noon in the US East, lasting 36-48
hours and then off the shelf. Popular brands usually go out quickly.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Monolith
Load
Balancer
Account Service
Cart Service
Shipping Service
StoreFront UI
Browser
Database
Data Access
Service
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Authentication & Authorization
• Token based solution fit in
• Cognito
• 3rd party Authentication Federation
• Amazon, Google, Apple, Facebook...
• Self developed/hosted centralize A&A
services
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices
For Persistence ?
Stateful Persistent always be the top issue !!!
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• 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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Launching N * RDS for Independency?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• 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?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
It’s about capability
• Are you ready to deal with M:N transaction compensation ?
• Are you ready to embrace the rapidly change by contract ?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Saga : Alternative for 2 Phase -commit
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Problem
How to maintain data consistency across services?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Implementing Saga on AWS
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Step Functions
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• Each Service provide cancel operation
• State change trigger cancel operation
• Simplify Complexity rules
• Just a JSON file
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Code snippet
https://github.com/humank/lambda-saga-pattern
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How to adopt Microservices?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Business operation without whole picture
The Blind Men and the Elephant
Is It correct to all in microservices or serverless ?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Precondition to do microservices
Rapid Provisioning
Basic monitoring
Rapid application deployment
Martin
Fowler
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Better way to decompose Monolith
Domain
Expert
Matters
&
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How to break Monolith?
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Methodology -1
Use Case Modeling
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Methodology -2
ICONIX Processing
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Object Modeling …
ER Modeling …
xxx Modeling …
A lack of Collaboration with non-tech stakeholders
Not “Ubiquitous Language”
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Way to collaborate
• Point out the events
• Who send the command
• Find the Noun(s)
• Have all team voices
Commands
Events
Aggregate
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Domain Driven Design
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Domain Driven Design (DDD)
• What is DDD?
• Not only a Technology / Methodology
• Set of principles and patterns for focusing the design effort
where it matters most
• It’s all about
• Understanding the domain where the software will be
applied
• Create highly expressive model of that domain
• Distil Ubiquitous language
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Modeling - Intent matters
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Domain (Strategy) Modeling – Basic Terms
• Domain
• Subject area where the software will be applied
• Example : VOD Domain, EC Domain, Banking
Domain
• Subdomain
• Logically separated part of the Domain
• Example : Ingestion, Streaming, Geo Location
• Domain Model
• Software model for solution of a domain
problem
• Bounded Context
• Explicit boundary where Domain Model lives
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Domain is about capability
Grab key events to
Abstraction to give
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Dive into relationships and why
Strategic DDD
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pattern in Practice
Tactical DDD
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Approach
• Collect the “Aggregates” which stand for similar
concept in the “Bounded Context”.
• Prioritize the “Domains”, which one is Core Domain,
rest for Sub Domain, even Utility Domain.
• Get Consensus, not Compromise
• Focus on Core Domain
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Coffee shop experience
DDD by EventStorming
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Go through Event Storming approach
Don’t tell tech only
Don’t sell tech partially
Aim for Core value
Figure out trigger
and result
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Seat
occupied
Menu offered
Ordered 2 cups
of Americano
Paid
Order
received
Coffee
made up
Customers
Left
Table
Cleaned
*Key Business Events in Coffeeshop
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Event Trigger
• Client
• Server
• Counter
• Barista
ACTORS
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Most Valuable / Risky Events
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
When you should dive in Microservices
Team
Partners
Business
Operation
Coding
Value
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Implementing DDD on AWS
AWS : YikaiKao@amazon.com
Commounty : DDD Taiwan@FB
Telegram : YikaiKao
WeChat : YikaiKao
Twitter : @YikaiKao
GitHub Repos

Weitere ähnliche Inhalte

Was ist angesagt?

Cloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCL
Cloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCLCloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCL
Cloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCLAthikom Kanchanavibhu, PMP
 
Tap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid SuccessTap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid SuccessDenny Muktar
 
Creating Microservices Application with IBM Cloud Private (ICP) - introductio...
Creating Microservices Application with IBM Cloud Private (ICP) - introductio...Creating Microservices Application with IBM Cloud Private (ICP) - introductio...
Creating Microservices Application with IBM Cloud Private (ICP) - introductio...PT Datacomm Diangraha
 
Microservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch IIMicroservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch IIPT Datacomm Diangraha
 
IBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue BoxIBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue BoxDaniele Bolletta
 
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkEnterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkRightScale
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceRobert Nicholson
 
CNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, TokyoCNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, TokyoCheryl Hung
 
Planning A Cloud Implementation
Planning A Cloud ImplementationPlanning A Cloud Implementation
Planning A Cloud ImplementationRex Wang
 
Cloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesCloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesRightScale
 
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...Amazon Web Services
 
Torusware Corporate Presentation
Torusware Corporate PresentationTorusware Corporate Presentation
Torusware Corporate PresentationTorusware
 
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)Denny Muktar
 
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019confluent
 
OpenStack, SDN, and the Future of Software Defined Infrastructure
OpenStack, SDN, and the Future of Software Defined InfrastructureOpenStack, SDN, and the Future of Software Defined Infrastructure
OpenStack, SDN, and the Future of Software Defined InfrastructureLew Tucker
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Michael Elder
 
How They Did It and What You Can Learn From It: A Customer Case Study for Re...
How They Did It and What You Can Learn From It:  A Customer Case Study for Re...How They Did It and What You Can Learn From It:  A Customer Case Study for Re...
How They Did It and What You Can Learn From It: A Customer Case Study for Re...Amazon Web Services
 

Was ist angesagt? (18)

Cloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCL
Cloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCLCloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCL
Cloud Migration Principle Sharing | Athikom Kanchanavibhu | SHERA PCL
 
Tap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid SuccessTap into a Private Cloud as a Service to Accelerate Hybrid Success
Tap into a Private Cloud as a Service to Accelerate Hybrid Success
 
Creating Microservices Application with IBM Cloud Private (ICP) - introductio...
Creating Microservices Application with IBM Cloud Private (ICP) - introductio...Creating Microservices Application with IBM Cloud Private (ICP) - introductio...
Creating Microservices Application with IBM Cloud Private (ICP) - introductio...
 
Microservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch IIMicroservices Development - ICP Workshop Batch II
Microservices Development - ICP Workshop Batch II
 
IBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue BoxIBM Cloud Solution - Blue Box
IBM Cloud Solution - Blue Box
 
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkEnterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech Conference
 
CNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, TokyoCNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
CNCF in Japan: Keynote, Open Source Summit Japan, Tokyo
 
Planning A Cloud Implementation
Planning A Cloud ImplementationPlanning A Cloud Implementation
Planning A Cloud Implementation
 
Cloud Migration and Portability Best Practices
Cloud Migration and Portability Best PracticesCloud Migration and Portability Best Practices
Cloud Migration and Portability Best Practices
 
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
[Migrating Fox’s Media Supply Chain to the Cloud]: Migrating Fox’s Media Supp...
 
Torusware Corporate Presentation
Torusware Corporate PresentationTorusware Corporate Presentation
Torusware Corporate Presentation
 
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
IBM Private Cloud Platform - Setting Foundation for Hybrid (JUKE, 2015)
 
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
Building Serverless Apps with Kafka (Dale Lane, IBM) Kafka Summit London 2019
 
OpenStack, SDN, and the Future of Software Defined Infrastructure
OpenStack, SDN, and the Future of Software Defined InfrastructureOpenStack, SDN, and the Future of Software Defined Infrastructure
OpenStack, SDN, and the Future of Software Defined Infrastructure
 
Cloud migration
Cloud migrationCloud migration
Cloud migration
 
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
Continuous Delivery on IBM Bluemix: Manage Cloud Native Services with Cloud N...
 
How They Did It and What You Can Learn From It: A Customer Case Study for Re...
How They Did It and What You Can Learn From It:  A Customer Case Study for Re...How They Did It and What You Can Learn From It:  A Customer Case Study for Re...
How They Did It and What You Can Learn From It: A Customer Case Study for Re...
 

Ähnlich wie 2019 03-13-implementing microservices by ddd

Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...Amazon Web Services
 
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservicesKim Kao
 
Microservices & Data Design: Database Week SF
Microservices & Data Design: Database Week SFMicroservices & Data Design: Database Week SF
Microservices & Data Design: Database Week SFAmazon Web Services
 
Microservices and Data Design
Microservices and Data DesignMicroservices and Data Design
Microservices and Data DesignAWS Germany
 
Microservices & Data Design: Database Week San Francisco
Microservices & Data Design: Database Week San FranciscoMicroservices & Data Design: Database Week San Francisco
Microservices & Data Design: Database Week San FranciscoAmazon Web Services
 
Introduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day JerusalemIntroduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day JerusalemAmazon Web Services
 
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018Amazon Web Services
 
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Amazon Web Services
 
Essential capabilities behind Microservices
Essential capabilities behind MicroservicesEssential capabilities behind Microservices
Essential capabilities behind MicroservicesAmazon Web Services
 
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018Amazon Web Services
 
Microservices: Data & Design - Miguel Cervantes
Microservices: Data & Design - Miguel CervantesMicroservices: Data & Design - Miguel Cervantes
Microservices: Data & Design - Miguel CervantesAmazon Web Services
 
以容器技術為基礎的混合雲設計架構
以容器技術為基礎的混合雲設計架構以容器技術為基礎的混合雲設計架構
以容器技術為基礎的混合雲設計架構Amazon Web Services
 
Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28Boaz Ziniman
 
Introduction to Serverless computing and AWS Lambda | AWS Floor28
Introduction to Serverless computing and AWS Lambda | AWS Floor28Introduction to Serverless computing and AWS Lambda | AWS Floor28
Introduction to Serverless computing and AWS Lambda | AWS Floor28Amazon Web Services
 
How can your business benefit from going serverless?
How can your business benefit from going serverless?How can your business benefit from going serverless?
How can your business benefit from going serverless?Adrian Hornsby
 
How can your business benefit from going Serverless
How can your business benefit from going ServerlessHow can your business benefit from going Serverless
How can your business benefit from going ServerlessAmazon Web Services
 

Ähnlich wie 2019 03-13-implementing microservices by ddd (20)

Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
Proven Methodologies for Accelerating Your Cloud Journey (ENT308-S) - AWS re:...
 
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
2019 06-12-aws taipei summit-dev day-essential capabilities behind microservices
 
Microservices & Data Design: Database Week SF
Microservices & Data Design: Database Week SFMicroservices & Data Design: Database Week SF
Microservices & Data Design: Database Week SF
 
Microservices and Data Design
Microservices and Data DesignMicroservices and Data Design
Microservices and Data Design
 
Microservices & Data Design: Database Week San Francisco
Microservices & Data Design: Database Week San FranciscoMicroservices & Data Design: Database Week San Francisco
Microservices & Data Design: Database Week San Francisco
 
Breaking Down the 'Monowhat'
Breaking Down the 'Monowhat'Breaking Down the 'Monowhat'
Breaking Down the 'Monowhat'
 
Introduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day JerusalemIntroduction to Serverless on AWS - Builders Day Jerusalem
Introduction to Serverless on AWS - Builders Day Jerusalem
 
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
From Monolith to Modern Apps: Best Practices (SRV322-R2) - AWS re:Invent 2018
 
Breaking Down the Monowhat
Breaking Down the MonowhatBreaking Down the Monowhat
Breaking Down the Monowhat
 
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
 
Essential capabilities behind Microservices
Essential capabilities behind MicroservicesEssential capabilities behind Microservices
Essential capabilities behind Microservices
 
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
When, how and if to adopt Microservices, AWS Startup Day Cape Town 2018
 
Microservices: Data & Design - Miguel Cervantes
Microservices: Data & Design - Miguel CervantesMicroservices: Data & Design - Miguel Cervantes
Microservices: Data & Design - Miguel Cervantes
 
Microservices & Data Design
Microservices & Data DesignMicroservices & Data Design
Microservices & Data Design
 
以容器技術為基礎的混合雲設計架構
以容器技術為基礎的混合雲設計架構以容器技術為基礎的混合雲設計架構
以容器技術為基礎的混合雲設計架構
 
Containers for Startups
Containers for StartupsContainers for Startups
Containers for Startups
 
Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28Introduction to Serverless computing and AWS Lambda - Floor28
Introduction to Serverless computing and AWS Lambda - Floor28
 
Introduction to Serverless computing and AWS Lambda | AWS Floor28
Introduction to Serverless computing and AWS Lambda | AWS Floor28Introduction to Serverless computing and AWS Lambda | AWS Floor28
Introduction to Serverless computing and AWS Lambda | AWS Floor28
 
How can your business benefit from going serverless?
How can your business benefit from going serverless?How can your business benefit from going serverless?
How can your business benefit from going serverless?
 
How can your business benefit from going Serverless
How can your business benefit from going ServerlessHow can your business benefit from going Serverless
How can your business benefit from going Serverless
 

Mehr von Kim Kao

Enlarge influence by Participating in communities
Enlarge influence by Participating in communitiesEnlarge influence by Participating in communities
Enlarge influence by Participating in communitiesKim Kao
 
跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇Kim Kao
 
Ddd by-clark chou
Ddd by-clark chouDdd by-clark chou
Ddd by-clark chouKim Kao
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservicesKim Kao
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureKim Kao
 
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersDDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersKim Kao
 
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverlessKim Kao
 
Legacy java ee meet lambda
Legacy java ee  meet lambdaLegacy java ee  meet lambda
Legacy java ee meet lambdaKim Kao
 

Mehr von Kim Kao (8)

Enlarge influence by Participating in communities
Enlarge influence by Participating in communitiesEnlarge influence by Participating in communities
Enlarge influence by Participating in communities
 
跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇跟著Actor Model來一場與DDD的豔遇
跟著Actor Model來一場與DDD的豔遇
 
Ddd by-clark chou
Ddd by-clark chouDdd by-clark chou
Ddd by-clark chou
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture
 
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd mattersDDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
DDD Taiwan Community 2019 01-26-1st-meetup-why ddd matters
 
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
2018 10-19-jc conf-embrace-legacy-java-ee-by-aws-serverless
 
Legacy java ee meet lambda
Legacy java ee  meet lambdaLegacy java ee  meet lambda
Legacy java ee meet lambda
 

Kürzlich hochgeladen

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 

Kürzlich hochgeladen (20)

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 

2019 03-13-implementing microservices by ddd

  • 1. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Kim Kao, Solutions Architect Mar 13, 2019 Implementing Microservices by DDD DDD – A collaboration way to go
  • 2. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Business Wants https://vaughnvernon.co/tag/event-storming/
  • 4. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. But You Want https://vaughnvernon.co/tag/event-storming/
  • 5. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What are Microservices?
  • 7. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. = Microservices ?
  • 8. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 100/200/300/1000? LOC
  • 9. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. © 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. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Case study - Gilt Problem behind Microservices
  • 12. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Gilt The limited-selling website for limited time purchases, the flash purchase start time is except for 9 :00 pm on Wednesday and Sunday, and the rest are sold at 12 noon in the US East, lasting 36-48 hours and then off the shelf. Popular brands usually go out quickly.
  • 13. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Monolith Load Balancer Account Service Cart Service Shipping Service StoreFront UI Browser Database Data Access Service
  • 14. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 15. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 16. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 17. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Authentication & Authorization • Token based solution fit in • Cognito • 3rd party Authentication Federation • Amazon, Google, Apple, Facebook... • Self developed/hosted centralize A&A services
  • 18. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 19. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices For Persistence ? Stateful Persistent always be the top issue !!!
  • 20. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • 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
  • 21. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Launching N * RDS for Independency?
  • 22. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • 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?
  • 23. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. It’s about capability • Are you ready to deal with M:N transaction compensation ? • Are you ready to embrace the rapidly change by contract ?
  • 24. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 25. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Saga : Alternative for 2 Phase -commit
  • 26. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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.
  • 27. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Problem How to maintain data consistency across services?
  • 28. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 29. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 30. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 31. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 32. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 33. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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.
  • 34. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Implementing Saga on AWS
  • 35. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Step Functions
  • 36. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • Each Service provide cancel operation • State change trigger cancel operation • Simplify Complexity rules • Just a JSON file
  • 37. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Code snippet https://github.com/humank/lambda-saga-pattern
  • 38. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 39. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How to adopt Microservices?
  • 40. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Business operation without whole picture The Blind Men and the Elephant Is It correct to all in microservices or serverless ?
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Precondition to do microservices Rapid Provisioning Basic monitoring Rapid application deployment Martin Fowler
  • 42. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Better way to decompose Monolith Domain Expert Matters
  • 43. &
  • 44. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How to break Monolith?
  • 45. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Methodology -1 Use Case Modeling
  • 46. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Methodology -2 ICONIX Processing
  • 47. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Object Modeling … ER Modeling … xxx Modeling … A lack of Collaboration with non-tech stakeholders Not “Ubiquitous Language”
  • 48. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Way to collaborate • Point out the events • Who send the command • Find the Noun(s) • Have all team voices Commands Events Aggregate
  • 49. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Domain Driven Design
  • 50. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 51. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Domain Driven Design (DDD) • What is DDD? • Not only a Technology / Methodology • Set of principles and patterns for focusing the design effort where it matters most • It’s all about • Understanding the domain where the software will be applied • Create highly expressive model of that domain • Distil Ubiquitous language
  • 52. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 53. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Modeling - Intent matters
  • 54. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Domain (Strategy) Modeling – Basic Terms • Domain • Subject area where the software will be applied • Example : VOD Domain, EC Domain, Banking Domain • Subdomain • Logically separated part of the Domain • Example : Ingestion, Streaming, Geo Location • Domain Model • Software model for solution of a domain problem • Bounded Context • Explicit boundary where Domain Model lives
  • 55. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Domain is about capability Grab key events to Abstraction to give
  • 56. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dive into relationships and why Strategic DDD
  • 57. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pattern in Practice Tactical DDD
  • 58. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Approach • Collect the “Aggregates” which stand for similar concept in the “Bounded Context”. • Prioritize the “Domains”, which one is Core Domain, rest for Sub Domain, even Utility Domain. • Get Consensus, not Compromise • Focus on Core Domain
  • 59. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Coffee shop experience DDD by EventStorming
  • 60. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 61. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 62. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 63. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 64. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 65. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 66. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 67. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Go through Event Storming approach Don’t tell tech only Don’t sell tech partially Aim for Core value Figure out trigger and result
  • 68. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Seat occupied Menu offered Ordered 2 cups of Americano Paid Order received Coffee made up Customers Left Table Cleaned *Key Business Events in Coffeeshop
  • 69. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Event Trigger • Client • Server • Counter • Barista ACTORS
  • 70. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Most Valuable / Risky Events
  • 71. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. © 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
  • 72. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. When you should dive in Microservices Team Partners Business Operation Coding Value
  • 73. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 74. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 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
  • 75. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Implementing DDD on AWS AWS : YikaiKao@amazon.com Commounty : DDD Taiwan@FB Telegram : YikaiKao WeChat : YikaiKao Twitter : @YikaiKao GitHub Repos