SlideShare a Scribd company logo
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Sascha Möllering, Solutions Architect, @sascha242
07.11.2017
Reactive Architectures with
Microservices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://secure.flickr.com/photos/mgifford/4525333972
Why are we
here today?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Agenda
• What is Reactive Architecture?
• How to build Reactive Architectures in AWS?
• Application Architecture
• Global Rollout
• Q&A
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What is Reactive Architecture?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Front-end
server
Internal
API
Internal
APIAPI
Poll
Poll
Database
Storage
Queries
Synchronous
User waits
for update
N-Tier architecture
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Software moves
faster today
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Traditional style of
applications cannot deliver
on these requirements any
longer
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Responsive
Elastic Resilient
Message-driven
Reactive Applications
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Reactive programming
“A development model focusing
on the observation of data
streams, reacting on changes, and
propagating them”
Reactive Architecture
Reactive system
“An architecture style used to
build responsive and robust
distributed systems based on
asynchronous message-passing.”
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Reactive Architecture
• Asynchronous message passing
• Non-blocking
• Higher throughput
• Effective hardware utilization and lower costs
• Loosely coupled
• Location independent
• Easy to extend and maintain
• Push-based
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices should be stateless.
Keep state in external systems.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Avoid
Host-Affinity.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Use lightweight
protocols for
communication.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Use mechanisms for
registration.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How to build Reactive
Architectures in AWS?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example use case
Banner
Icon made by Freepik from www.flaticon.com
Customer visits
website
Customer clicks
on a banner
Customer buys
from online-shop
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
High Level Architecture
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon ECSApplication
Load Balancer
Amazon ECR
Kinesis
Stream
Kinesis
Stream
Lambda
function
Lambda
function
ElastiCache
cluster
Data ingestion
Core data
update
Amazon
DynamoDB
Core data updates
Data collection
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
High Level Architecture
• Amazon ECS and Docker used for the main
application
• Resiliency and Elasticity implemented by
using Auto Scaling
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
High Level Architecture
• AWS Lambda functions
• Consume messages
• Persist data in NoSQL-store
• Update core-data in Redis
• Send notifications to main application
• Resiliency and Scalability part of the service
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
High Level Architecture
• Amazon Kinesis Streams used to decouple
components
• Asynchronously push event data to NoSQL-
store
• Update core-data in Redis
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
High Level Architecture
• Amazon ElastiCache with Redis 3 engine
• Multi-AZ setup with failover and one shard
• Used to store core-data
• Notification channel
• Redis supports pub/sub
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
High Level Architecture
• Amazon DynamoDB NoSQL-store used to
persist event-data
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon ECSApplication
Load Balancer
Amazon ECR
Kinesis
Stream
Kinesis
Stream
Lambda
function
Lambda
function
ElastiCache
cluster
Data ingestion
Core data
update
Amazon
DynamoDB
Core data updates
Data collection
You are here now!
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
Picture source: http://vertx.io/docs/guide-for-java-devs/
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
“Don’t block the event
loop!”
- Vert.x golden rule
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
Picture source: http://vertx.io/docs/guide-for-java-devs/
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
Picture source: http://vertx.io/docs/guide-for-java-devs/
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
• HttpVerticle: exposes HTTP endpoint
• CacheVerticle: implements L1 cache
• RedisVerticle: implements Redis access
• KinesisVerticle: messages to Amazon Kinesis Stream
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Subscribe to EB
Send prepared data
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
Cache
Rules
Everything
Around
Me
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Subscribe to EB
Subscribe to
Redis channel
Consume data
from event bus
Send data to
cache verticle
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon ECSApplication
Load Balancer
Amazon ECR
Kinesis
Stream
Kinesis
Stream
Lambda
function
Lambda
function
ElastiCache
cluster
Data ingestion
Core data
update
Amazon
DynamoDB
Core data updates
Data collection You are here now!
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Architecture
AWS Lambda
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Lambda considerations and best practices
AWS Lambda is stateless—architect accordingly
• Assume no affinity with underlying compute
infrastructure
• Local filesystem access and child process may not
extend beyond the lifetime of the Lambda request
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kinesis event
processing
Iterate over
batch of events
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Global Rollout
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
16 Regions
44 Availability Zones
AWS Global Infrastructure
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Global Rollout
AWS CloudFormation
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Global Rollout
• Infrastructure as Code
• Create and manage resources with CloudFormation
templates
• CloudFormation template is used to deploy stacks
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Global Rollout
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Master Region
• One stream of data
• One region to process data
• Data has to be transferred
inter region
Global Rollout
Distributed Processing
• Data processing in every
region
• No unified view on data
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Summary
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Summary
• Reactive Architectures very good fit for AWS Cloud
• Microservices improve isolation
• AWS offers a lot of services for decoupled application
design
• Focus on business requirements, don’t reinvent the
wheel
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!

More Related Content

Similar to Reactive Architectures with Microservices (20)

PPTX
CuriousMinds and Siemens in Brasov 2015 - Building and Developing for the Clo...
Vadim Zendejas
 
PPTX
Cloud Spotting 2017: An overview of cloud computing
Patrice Kerremans
 
PPTX
Building Modern Applications on AWS.pptx
Nelson Kimathi
 
PDF
Crio.do - Deployment on AWS Masterclass
Dhaval Nagar
 
PPTX
Journey Towards Scaling Your API to 10 Million Users
Adrian Hornsby
 
PDF
Build an app on aws for your first 10 million users (2)
AWS Vietnam Community
 
PPTX
AWS GLOBAL INFRA AND SERVICE LIST01.pptx
susilmoharana621
 
PDF
Serverless use cases with AWS Lambda - More Serverless Event
Boaz Ziniman
 
PDF
Wildrydes Serverless Workshop Tel Aviv
Boaz Ziniman
 
PPTX
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
nwcloud
 
PDF
2016-06 - Design your api management strategy - AWS - Microservices on AWS
SmartWave
 
PPTX
Migrating enterprise workloads to AWS
Tom Laszewski
 
PPTX
Components of AWS infrastructure and AWS Services.pptx
yeshodhas
 
PDF
10 Lessons from 10 Years of AWS
Adrian Hornsby
 
PPT
WTIA Cloud Computing Series - Part II: Scaling into the Cloud with Amazon Web...
Washington Technology Industry Association
 
PDF
Re cap2018
Richard Harvey
 
PPTX
Being Well Architected in the Cloud (Updated)
Adrian Hornsby
 
PDF
AWS 101: Introduction to AWS
Ian Massingham
 
PPTX
Website on aws
mydatasync
 
PDF
Serverless use cases with AWS Lambda
Boaz Ziniman
 
CuriousMinds and Siemens in Brasov 2015 - Building and Developing for the Clo...
Vadim Zendejas
 
Cloud Spotting 2017: An overview of cloud computing
Patrice Kerremans
 
Building Modern Applications on AWS.pptx
Nelson Kimathi
 
Crio.do - Deployment on AWS Masterclass
Dhaval Nagar
 
Journey Towards Scaling Your API to 10 Million Users
Adrian Hornsby
 
Build an app on aws for your first 10 million users (2)
AWS Vietnam Community
 
AWS GLOBAL INFRA AND SERVICE LIST01.pptx
susilmoharana621
 
Serverless use cases with AWS Lambda - More Serverless Event
Boaz Ziniman
 
Wildrydes Serverless Workshop Tel Aviv
Boaz Ziniman
 
NWCloud Cloud Track - Best Practices for Architecting in the Cloud
nwcloud
 
2016-06 - Design your api management strategy - AWS - Microservices on AWS
SmartWave
 
Migrating enterprise workloads to AWS
Tom Laszewski
 
Components of AWS infrastructure and AWS Services.pptx
yeshodhas
 
10 Lessons from 10 Years of AWS
Adrian Hornsby
 
WTIA Cloud Computing Series - Part II: Scaling into the Cloud with Amazon Web...
Washington Technology Industry Association
 
Re cap2018
Richard Harvey
 
Being Well Architected in the Cloud (Updated)
Adrian Hornsby
 
AWS 101: Introduction to AWS
Ian Massingham
 
Website on aws
mydatasync
 
Serverless use cases with AWS Lambda
Boaz Ziniman
 

More from AWS Germany (20)

PDF
Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
AWS Germany
 
PDF
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
AWS Germany
 
PDF
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
AWS Germany
 
PDF
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
AWS Germany
 
PDF
Modern Applications Web Day | Container Workloads on AWS
AWS Germany
 
PDF
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
AWS Germany
 
PDF
Building Smart Home skills for Alexa
AWS Germany
 
PDF
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
AWS Germany
 
PDF
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
AWS Germany
 
PDF
Log Analytics with AWS
AWS Germany
 
PDF
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
AWS Germany
 
PDF
AWS Programme für Nonprofits
AWS Germany
 
PDF
Microservices and Data Design
AWS Germany
 
PDF
Serverless vs. Developers – the real crash
AWS Germany
 
PDF
Query your data in S3 with SQL and optimize for cost and performance
AWS Germany
 
PDF
Secret Management with Hashicorp’s Vault
AWS Germany
 
PDF
EKS Workshop
AWS Germany
 
PDF
Scale to Infinity with ECS
AWS Germany
 
PDF
Containers on AWS - State of the Union
AWS Germany
 
PDF
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
AWS Germany
 
Analytics Web Day | From Theory to Practice: Big Data Stories from the Field
AWS Germany
 
Analytics Web Day | Query your Data in S3 with SQL and optimize for Cost and ...
AWS Germany
 
Modern Applications Web Day | Impress Your Friends with Your First Serverless...
AWS Germany
 
Modern Applications Web Day | Manage Your Infrastructure and Configuration on...
AWS Germany
 
Modern Applications Web Day | Container Workloads on AWS
AWS Germany
 
Modern Applications Web Day | Continuous Delivery to Amazon EKS with Spinnaker
AWS Germany
 
Building Smart Home skills for Alexa
AWS Germany
 
Hotel or Taxi? "Sorting hat" for travel expenses with AWS ML infrastructure
AWS Germany
 
Wild Rydes with Big Data/Kinesis focus: AWS Serverless Workshop
AWS Germany
 
Log Analytics with AWS
AWS Germany
 
Deep Dive into Concepts and Tools for Analyzing Streaming Data on AWS
AWS Germany
 
AWS Programme für Nonprofits
AWS Germany
 
Microservices and Data Design
AWS Germany
 
Serverless vs. Developers – the real crash
AWS Germany
 
Query your data in S3 with SQL and optimize for cost and performance
AWS Germany
 
Secret Management with Hashicorp’s Vault
AWS Germany
 
EKS Workshop
AWS Germany
 
Scale to Infinity with ECS
AWS Germany
 
Containers on AWS - State of the Union
AWS Germany
 
Deploying and Scaling Your First Cloud Application with Amazon Lightsail
AWS Germany
 
Ad

Recently uploaded (20)

PPTX
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
PPTX
internet básico presentacion es una red global
70965857
 
PDF
The Internet - By the numbers, presented at npNOG 11
APNIC
 
PPTX
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
PPTX
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
PPTX
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
PPTX
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
PPTX
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
PPTX
ONLINE BIRTH CERTIFICATE APPLICATION SYSYTEM PPT.pptx
ShyamasreeDutta
 
PDF
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
PPTX
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
PPT
introduction to networking with basics coverage
RamananMuthukrishnan
 
PDF
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PPTX
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PPTX
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
PDF
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
PDF
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
PPTX
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
PPTX
Orchestrating things in Angular application
Peter Abraham
 
PDF
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
internet básico presentacion es una red global
70965857
 
The Internet - By the numbers, presented at npNOG 11
APNIC
 
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
ONLINE BIRTH CERTIFICATE APPLICATION SYSYTEM PPT.pptx
ShyamasreeDutta
 
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
introduction to networking with basics coverage
RamananMuthukrishnan
 
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
Orchestrating things in Angular application
Peter Abraham
 
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
Ad

Reactive Architectures with Microservices

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Sascha Möllering, Solutions Architect, @sascha242 07.11.2017 Reactive Architectures with Microservices
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. https://secure.flickr.com/photos/mgifford/4525333972 Why are we here today?
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Agenda • What is Reactive Architecture? • How to build Reactive Architectures in AWS? • Application Architecture • Global Rollout • Q&A
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What is Reactive Architecture?
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Front-end server Internal API Internal APIAPI Poll Poll Database Storage Queries Synchronous User waits for update N-Tier architecture
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Software moves faster today
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Traditional style of applications cannot deliver on these requirements any longer
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Responsive Elastic Resilient Message-driven Reactive Applications
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Reactive programming “A development model focusing on the observation of data streams, reacting on changes, and propagating them” Reactive Architecture Reactive system “An architecture style used to build responsive and robust distributed systems based on asynchronous message-passing.”
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Reactive Architecture • Asynchronous message passing • Non-blocking • Higher throughput • Effective hardware utilization and lower costs • Loosely coupled • Location independent • Easy to extend and maintain • Push-based
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices should be stateless. Keep state in external systems.
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Avoid Host-Affinity.
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Use lightweight protocols for communication.
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Use mechanisms for registration.
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How to build Reactive Architectures in AWS?
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example use case Banner Icon made by Freepik from www.flaticon.com Customer visits website Customer clicks on a banner Customer buys from online-shop
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. High Level Architecture
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon ECSApplication Load Balancer Amazon ECR Kinesis Stream Kinesis Stream Lambda function Lambda function ElastiCache cluster Data ingestion Core data update Amazon DynamoDB Core data updates Data collection
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. High Level Architecture • Amazon ECS and Docker used for the main application • Resiliency and Elasticity implemented by using Auto Scaling
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. High Level Architecture • AWS Lambda functions • Consume messages • Persist data in NoSQL-store • Update core-data in Redis • Send notifications to main application • Resiliency and Scalability part of the service
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. High Level Architecture • Amazon Kinesis Streams used to decouple components • Asynchronously push event data to NoSQL- store • Update core-data in Redis
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. High Level Architecture • Amazon ElastiCache with Redis 3 engine • Multi-AZ setup with failover and one shard • Used to store core-data • Notification channel • Redis supports pub/sub
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. High Level Architecture • Amazon DynamoDB NoSQL-store used to persist event-data
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon ECSApplication Load Balancer Amazon ECR Kinesis Stream Kinesis Stream Lambda function Lambda function ElastiCache cluster Data ingestion Core data update Amazon DynamoDB Core data updates Data collection You are here now!
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture Picture source: http://vertx.io/docs/guide-for-java-devs/
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture “Don’t block the event loop!” - Vert.x golden rule
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture Picture source: http://vertx.io/docs/guide-for-java-devs/
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture Picture source: http://vertx.io/docs/guide-for-java-devs/
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture • HttpVerticle: exposes HTTP endpoint • CacheVerticle: implements L1 cache • RedisVerticle: implements Redis access • KinesisVerticle: messages to Amazon Kinesis Stream
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Subscribe to EB Send prepared data
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture Cache Rules Everything Around Me
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Subscribe to EB Subscribe to Redis channel Consume data from event bus Send data to cache verticle
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon ECSApplication Load Balancer Amazon ECR Kinesis Stream Kinesis Stream Lambda function Lambda function ElastiCache cluster Data ingestion Core data update Amazon DynamoDB Core data updates Data collection You are here now!
  • 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Architecture AWS Lambda
  • 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Lambda considerations and best practices AWS Lambda is stateless—architect accordingly • Assume no affinity with underlying compute infrastructure • Local filesystem access and child process may not extend beyond the lifetime of the Lambda request
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Kinesis event processing Iterate over batch of events
  • 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Global Rollout
  • 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 16 Regions 44 Availability Zones AWS Global Infrastructure
  • 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Global Rollout AWS CloudFormation
  • 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Global Rollout • Infrastructure as Code • Create and manage resources with CloudFormation templates • CloudFormation template is used to deploy stacks
  • 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Global Rollout
  • 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Master Region • One stream of data • One region to process data • Data has to be transferred inter region Global Rollout Distributed Processing • Data processing in every region • No unified view on data
  • 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Summary
  • 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Summary • Reactive Architectures very good fit for AWS Cloud • Microservices improve isolation • AWS offers a lot of services for decoupled application design • Focus on business requirements, don’t reinvent the wheel
  • 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you!