SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
Design Patterns Facilitated by
Geode's WAN Distribution
Helena Bales, Diane Hardman, and Karen Miller
1
What we'll cover
1. an introduction to Geode WAN distribution
2. some common design patterns
3. Geode example demo of an active-active system
2
to WAN distribution
3
Issues we contend with:
1. fault tolerance
2. performance
Geode WAN replication gives us both.
4
Fault Tolerance
Keeping a redundant cluster as a hot spare 

dramatically reduces service interruptions.
To be effective, the hot spare should be
• physically removed from the original
• independent of the original
• immediately available when a failure 

occurs
5
Performance
If data is generated in Chile, but
needs to be used by an
application in India, it takes a lot
of time for that data to travel
around the world.
6
Geode's WAN distribution feature
At the region level:
• sets up asynchronous communication between clusters (sites)

(synchronous updates would be amazingly slow)
• implements an eventual consistency model, facilitating
replication of region operations, such that distinct clusters can
host the same region
7
Event Queues make it work
Gateway Sender Queues propagate region write operations from one
cluster to another without impacting the performance of CRUD operations
within each site.
cluster 

A
cluster 

B
gateway sender gateway receiver
DSID=1 DSID=2
8
unidirectional cluster 

A
cluster 

B
cluster 

A
cluster 

B
bidirectional (2 unidirectional queues)
9
Configuration
Given that we know the assigned DSIDs, create:
• locators
• servers
• gateway receivers
• gateway senders
• regions
The Geode WAN example does all of this.
10
Design Patterns
11
Blue Green Disaster Recovery
A standard pattern for increasing fault tolerance.
Works in an active-passive mode.
12
Blue-Green Disaster Recovery
A B
app 1 app 1
ACTIVE PASSIVE
13
Blue-Green Disaster Recovery
The disaster takes out cluster A
A B
app 1 app 1
14
Blue-Green Disaster Recovery
A B
app 1 app 1
ACTIVE
15
Blue Green Disaster Recovery
Since we're now down to 1 cluster, we need a new passive
site in order to regain the fault tolerance.
16
Blue-Green Disaster Recovery
A B
app 1 app 1
ACTIVE
PASSIVE
17
Active-Active
A B
app 1 app 1 app 1 app 1
18
Active-Active
GatewayConflictResolver:
• A cache-level plugin
• Resolves changes with
other Distributed System
IDs
• Checks that sites will
receive updates in the
same way
• Can be overridden with
custom implementations
• Must be the same for all
distributed systems
A B
app 1 app 1 app 1 app 1
GatewayConf
lictResolver
GatewayConf
lictResolver
19
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
20
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
put
Put a new
entry:
Id: 3
Name: Shirt
Price: $15
21
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $15
22
Active-Active - Real-world Example
app 1app 1
London
/products
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $15
23
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $15
Id: 3
Name: Shirt
Price: $15
24
Active-Active - Real-world Example
app 1 app 1
NY
/products
app 1app 1
London
/products
put
Id: 3
Name: Shirt
Price: $15
Id: 3
Name: Shirt
Price: $15
Put to update
an entry:
Id: 3
Name: Shirt
Price: $15 $10.50
25
Active-Active - Real-world Example
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $15
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $10.50
26
Active-Active - Real-world Example
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $15
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $10.50
27
Active-Active - Real-world Example
app 1 app 1
NY
/products
Id: 3
Name: Shirt
Price: $10.50
app 1app 1
London
/products
Id: 3
Name: Shirt
Price: $10.50
28
Active-Active - Example with multiple regions
app 1app 1
London
/products
/
customers
app 1 app 1
NY
/products
/
customers
29
Active-Active - Redundancy with multiple regions
app 1app 1
London
/NewYork
Products
/London
Products
app 1 app 1
NY
/NewYork
Products
/London
Products
30
• Multiple sites have and use copies of the same data
• Eventual consistency between sites
• Conflicting changes are resolved
• Reads are faster than writes
• Can be used with multiple regions
• Reduces risk of data loss due to redundancy at the site level
Active-Active: Summary
31
CQRS
• Command Query Responsibility Segregation
• Separates the responsibilities of Querying from Commands
• Queries cannot have side effects
• Commands may not return data
• Can make it easier to reason about the state of the system
32
CQRS
A B
app app querying
app
querying
app
33
CQRS - Real world Example
A B
Temp.
Sensor
Fill
Sensor
querying
app
querying
app
Factory site Analytics site
/coffee/coffee
34
CQRS - Example with two Regions
A B
Temp.
Sensor
Fill
Sensor
querying
app
querying
app
Factory site Analytics site
/coffee /coffee
/cafeAuLait /cafeAuLait
35
Hub and Spoke (or Star) Topology
Design patterns are
location-aware.
36
Adelaide
app
Australia-based apps communicate
with a physically-close site.
37
Adelaide
Only the Adelaide cluster writes to Australia-based region entries.
/Companies region:



("Acme", "10 Main St., Sydney, NSW, Australia")

("Best", "12 Oak, Portland, OR, USA")

("Cabet", "4 Rue Blanc, Paris, France")

("Daks", "7 Magpie, Adelaide, Adelaide, Australia")
38
Adelaide
Forward all operation requests for
Australia-based region entries to the
hub and then to the Adelaide cluster
for processing.
39
GatewayEventFilter
Follow the Sun Pattern (Global Book pattern)
NY London
Tokyo
Transactions occur in the active
timezone.
40
Follow the Sun Pattern (Global Book pattern)
NY London
Tokyo
41
Demonstration
42
Demonstration
https://github.com/apache/geode-examples/tree/develop/wan
NY
/
example-
region
app 1
London
/
example-
region
DSID=1 DSID=2
43
[TODO] Demo video slide
44
Questions?
45
EXTRA SLIDES
46
unidirectional configuration
1. Plan the cluster sites. Assign a unique distributed system ID (DSID) to
each site, and let the sites know all the DSIDs of sites they will
communicate with.
2. create locators(in each cluster), specifying the DSID and the locators in
the remote cluster
3. create servers (in each cluster), specifying the DSID
4. create the gateway receiver on the receiving side
5. create gateway sender(s) on the sending side
6. create regions, specifying which gateway senders through which to
propagate data
47
adding SSL/TLS to the configuration
• specify 

ssl-enabled-components=all

in the gemfire.properties file
• specify keystore, truststore, and username/password in the
gfsecurity.properties file
• specify both properties files on locator/server start up
See SSL Sample Implementation in the Geode manual for details.
48

Contenu connexe

Similaire à Design Patterns Facilitated by Geode's WAN Distribution

RedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge DevicesRedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge Devices
Redis Labs
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
andreas kuncoro
 
Disaster recovery on demand on the cloud
Disaster recovery on demand on the cloudDisaster recovery on demand on the cloud
Disaster recovery on demand on the cloud
Nati Shalom
 
Batty consumerization of geospatial
Batty consumerization of geospatialBatty consumerization of geospatial
Batty consumerization of geospatial
GeCo in the Rockies
 

Similaire à Design Patterns Facilitated by Geode's WAN Distribution (20)

Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & AlluxioUltra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
Ultra Fast Deep Learning in Hybrid Cloud Using Intel Analytics Zoo & Alluxio
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
 
Ansible for networks
Ansible for networksAnsible for networks
Ansible for networks
 
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructure
 
RedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge DevicesRedisConf18 - Application of Redis in IOT Edge Devices
RedisConf18 - Application of Redis in IOT Edge Devices
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
 
DEVNET-1166 Open SDN Controller APIs
DEVNET-1166	Open SDN Controller APIsDEVNET-1166	Open SDN Controller APIs
DEVNET-1166 Open SDN Controller APIs
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllLegacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
 
Networking Challenges for the Next Decade
Networking Challenges for the Next DecadeNetworking Challenges for the Next Decade
Networking Challenges for the Next Decade
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Disaster Recovery on Demand on the Cloud
Disaster Recovery on Demand on the CloudDisaster Recovery on Demand on the Cloud
Disaster Recovery on Demand on the Cloud
 
Disaster recovery on demand on the cloud
Disaster recovery on demand on the cloudDisaster recovery on demand on the cloud
Disaster recovery on demand on the cloud
 
Accelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of GenomicsAccelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of Genomics
 
Netflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search RoadshowNetflix Global Applications - NoSQL Search Roadshow
Netflix Global Applications - NoSQL Search Roadshow
 
Batty consumerization of geospatial
Batty consumerization of geospatialBatty consumerization of geospatial
Batty consumerization of geospatial
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
 
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
Scaling Security on 100s of Millions of Mobile Devices Using Apache Kafka® an...
 
Zoo keeper in the wild
Zoo keeper in the wildZoo keeper in the wild
Zoo keeper in the wild
 

Plus de VMware Tanzu

Plus de VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Dernier

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP 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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
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...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...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%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
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
%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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

Design Patterns Facilitated by Geode's WAN Distribution

  • 1. Design Patterns Facilitated by Geode's WAN Distribution Helena Bales, Diane Hardman, and Karen Miller 1
  • 2. What we'll cover 1. an introduction to Geode WAN distribution 2. some common design patterns 3. Geode example demo of an active-active system 2
  • 4. Issues we contend with: 1. fault tolerance 2. performance Geode WAN replication gives us both. 4
  • 5. Fault Tolerance Keeping a redundant cluster as a hot spare 
 dramatically reduces service interruptions. To be effective, the hot spare should be • physically removed from the original • independent of the original • immediately available when a failure 
 occurs 5
  • 6. Performance If data is generated in Chile, but needs to be used by an application in India, it takes a lot of time for that data to travel around the world. 6
  • 7. Geode's WAN distribution feature At the region level: • sets up asynchronous communication between clusters (sites)
 (synchronous updates would be amazingly slow) • implements an eventual consistency model, facilitating replication of region operations, such that distinct clusters can host the same region 7
  • 8. Event Queues make it work Gateway Sender Queues propagate region write operations from one cluster to another without impacting the performance of CRUD operations within each site. cluster 
 A cluster 
 B gateway sender gateway receiver DSID=1 DSID=2 8
  • 9. unidirectional cluster 
 A cluster 
 B cluster 
 A cluster 
 B bidirectional (2 unidirectional queues) 9
  • 10. Configuration Given that we know the assigned DSIDs, create: • locators • servers • gateway receivers • gateway senders • regions The Geode WAN example does all of this. 10
  • 12. Blue Green Disaster Recovery A standard pattern for increasing fault tolerance. Works in an active-passive mode. 12
  • 13. Blue-Green Disaster Recovery A B app 1 app 1 ACTIVE PASSIVE 13
  • 14. Blue-Green Disaster Recovery The disaster takes out cluster A A B app 1 app 1 14
  • 15. Blue-Green Disaster Recovery A B app 1 app 1 ACTIVE 15
  • 16. Blue Green Disaster Recovery Since we're now down to 1 cluster, we need a new passive site in order to regain the fault tolerance. 16
  • 17. Blue-Green Disaster Recovery A B app 1 app 1 ACTIVE PASSIVE 17
  • 18. Active-Active A B app 1 app 1 app 1 app 1 18
  • 19. Active-Active GatewayConflictResolver: • A cache-level plugin • Resolves changes with other Distributed System IDs • Checks that sites will receive updates in the same way • Can be overridden with custom implementations • Must be the same for all distributed systems A B app 1 app 1 app 1 app 1 GatewayConf lictResolver GatewayConf lictResolver 19
  • 20. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products 20
  • 21. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products put Put a new entry: Id: 3 Name: Shirt Price: $15 21
  • 22. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products Id: 3 Name: Shirt Price: $15 22
  • 23. Active-Active - Real-world Example app 1app 1 London /products app 1 app 1 NY /products Id: 3 Name: Shirt Price: $15 23
  • 24. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products Id: 3 Name: Shirt Price: $15 Id: 3 Name: Shirt Price: $15 24
  • 25. Active-Active - Real-world Example app 1 app 1 NY /products app 1app 1 London /products put Id: 3 Name: Shirt Price: $15 Id: 3 Name: Shirt Price: $15 Put to update an entry: Id: 3 Name: Shirt Price: $15 $10.50 25
  • 26. Active-Active - Real-world Example app 1 app 1 NY /products Id: 3 Name: Shirt Price: $15 app 1app 1 London /products Id: 3 Name: Shirt Price: $10.50 26
  • 27. Active-Active - Real-world Example app 1 app 1 NY /products Id: 3 Name: Shirt Price: $15 app 1app 1 London /products Id: 3 Name: Shirt Price: $10.50 27
  • 28. Active-Active - Real-world Example app 1 app 1 NY /products Id: 3 Name: Shirt Price: $10.50 app 1app 1 London /products Id: 3 Name: Shirt Price: $10.50 28
  • 29. Active-Active - Example with multiple regions app 1app 1 London /products / customers app 1 app 1 NY /products / customers 29
  • 30. Active-Active - Redundancy with multiple regions app 1app 1 London /NewYork Products /London Products app 1 app 1 NY /NewYork Products /London Products 30
  • 31. • Multiple sites have and use copies of the same data • Eventual consistency between sites • Conflicting changes are resolved • Reads are faster than writes • Can be used with multiple regions • Reduces risk of data loss due to redundancy at the site level Active-Active: Summary 31
  • 32. CQRS • Command Query Responsibility Segregation • Separates the responsibilities of Querying from Commands • Queries cannot have side effects • Commands may not return data • Can make it easier to reason about the state of the system 32
  • 33. CQRS A B app app querying app querying app 33
  • 34. CQRS - Real world Example A B Temp. Sensor Fill Sensor querying app querying app Factory site Analytics site /coffee/coffee 34
  • 35. CQRS - Example with two Regions A B Temp. Sensor Fill Sensor querying app querying app Factory site Analytics site /coffee /coffee /cafeAuLait /cafeAuLait 35
  • 36. Hub and Spoke (or Star) Topology Design patterns are location-aware. 36
  • 38. Adelaide Only the Adelaide cluster writes to Australia-based region entries. /Companies region:
 
 ("Acme", "10 Main St., Sydney, NSW, Australia")
 ("Best", "12 Oak, Portland, OR, USA")
 ("Cabet", "4 Rue Blanc, Paris, France")
 ("Daks", "7 Magpie, Adelaide, Adelaide, Australia") 38
  • 39. Adelaide Forward all operation requests for Australia-based region entries to the hub and then to the Adelaide cluster for processing. 39 GatewayEventFilter
  • 40. Follow the Sun Pattern (Global Book pattern) NY London Tokyo Transactions occur in the active timezone. 40
  • 41. Follow the Sun Pattern (Global Book pattern) NY London Tokyo 41
  • 44. [TODO] Demo video slide 44
  • 47. unidirectional configuration 1. Plan the cluster sites. Assign a unique distributed system ID (DSID) to each site, and let the sites know all the DSIDs of sites they will communicate with. 2. create locators(in each cluster), specifying the DSID and the locators in the remote cluster 3. create servers (in each cluster), specifying the DSID 4. create the gateway receiver on the receiving side 5. create gateway sender(s) on the sending side 6. create regions, specifying which gateway senders through which to propagate data 47
  • 48. adding SSL/TLS to the configuration • specify 
 ssl-enabled-components=all
 in the gemfire.properties file • specify keystore, truststore, and username/password in the gfsecurity.properties file • specify both properties files on locator/server start up See SSL Sample Implementation in the Geode manual for details. 48