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

Building Global Serverless Backends powered by Amazon DynamoDB Global Tables

460 views

Published on

  • Be the first to comment

Building Global Serverless Backends powered by Amazon DynamoDB Global Tables

  1. 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Adrian Hornsby, Cloud Architecture Evangelist @adhorn Building Global, Multi-Region Serverless Backends (powered by DynamoDB Global Tables)
  2. 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Session objectives 1. Understand System Reliability and Availability. 2. Understand why we build a Multi-Region Active-Active architecture. 3. Understand how to build a Multi-Region Active-Active architecture on AWS. 4. Hands-on Demo: Building Multi-Region Serverless App. 5. Conclusion.
  3. 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. System Reliability and Availability
  4. 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Failures are a given and everything will eventually fail over time. Werner Vogels CTO – Amazon.com “ “
  5. 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. System failure rate Early Failures Wear Out Failures Observed Failures Random Failures
  6. 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. System failure rate For high-velocity deployments Early Failures Wear Out Failures Observed Failures Random Failures
  7. 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. System Availability Availability = Normal Operation Time Total Time MTBF** MTBF** + MTTR* = * Mean Time To Repair (MTTR) **Mean Time Between Failure (MTBF)
  8. 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Availability Availability Downtime per year Categories 95% (1-nine) 18 days 6 hours Batch processing, Data extraction, Load jobs. 99% (2-nines) 3 days 15 hours Internal Tools, Project Tracking 99.9% (3-nines) 8 hours 45 minutes Online Commerce 99.99% (4-nines) 52 minutes Video Delivery, Broadcast systems 99.999% (5-nines) 5 minutes Telecom Industry (ATM Transactions) 99.9999% (6-nines) 31 seconds Answering to my loved one* * Joke J http://royal.pingdom.com/wp-content/uploads/2015/04/pingdom_uptime_cheat_sheet.pdf
  9. 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Availability in Series Part X Part Y A = Ax Ay
  10. 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Availability in Series Component Availability Downtime X 99% (2-nines) 3 days 15 hours Y 99.99% (4-nines) 52 minutes X and Y Combined 98.99% 3 days 16 hours 33 minutes
  11. 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Availability in Parallel A = 1 – (1 – Ax)2 Part X Part X
  12. 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Availability in Parallel Component Availability Downtime X 99% (2-nines) 3 days 15 hours Two X in parallel 99.99% (4-nines) 52 minutes Three X in parallel 99.9999% (6-nines) 31 seconds
  13. 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. “Component redundancy increases availability significantly!”
  14. 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Availability Zone A Availability Zone B Availability Zone C AWS Region
  15. 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Availability Zone A Availability Zone B Availability Zone C Multi-AZ Well-Architected Application
  16. 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB Amazon RDS Amazon ElastiCache Amazon S3 Amazon EFS Amazon SQS Amazon Kinesis Amazon ElasticSearch Default Configurable for multi-AZ deployment Some of the Regional AWS Services AWS Lambda Amazon API Gateway AWS ELB
  17. 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Regional services AZ1 AZ2 AZ3 Service XYZ
  18. 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. No servers to provision or manage Scales with usage Never pay for idle Availability and fault tolerance built in Why Serverless components??
  19. 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • 18 Geographic Regions • 50 Availability Zones (AZs) • 4 regions and 12 more Availability Zones announced
  20. 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Cost of Availability (approx.) Cost Availability Complexity
  21. 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Generally speaking a reliable machine has high availability but an available machine may or may not be very reliable.
  22. 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. On reliability Ability of a system to : 1. Recover from infrastructure or service disruptions 2. Dynamically acquire computing resources to meet demand 3. Mitigate disruptions such as misconfigurations or transient network issues.
  23. 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 2 important lesson learned
  24. 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Exponential Backoff
  25. 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Message passing for async. patterns A Queue B A Queue BListener Pub-Sub
  26. 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Web Instances Worker Instance Worker Instance Queue API Instance API Instance API Instance API: {DO foo} PUT JOB: {JobID: 0001, Task: DO foo} API: {JobID: 0001} GET JOB: {JobID: 0001, Task: DO foo} Cache Result: { JobID: 0001, Result: bar }
  27. 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Worker Instance Worker Instance Queue API Instance API Instance API Instance Cache Amazon SNS Push Notification User
  28. 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Well-Architected Framework Operational Excellence Security Reliability Performance Efficiency Cost Optimization https://aws.amazon.com/architecture/well-architected/
  29. 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Why build a Multi-Region Active-Active architecture?
  30. 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Why Multi-Region? 1. Improve Latency for end-users ~300ms ~140ms
  31. 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Why Multi-Region? 1. Improve Latency for end-users 2. Disaster Recovery Applications in US West Applications in US East Users from San Francisco Users from New York Service 1 Service 2 Service 3 Service 4 Service 1 Service 2 Service 3 Service 4
  32. 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Why Multi-Region? 1. Improve Latency for end-users 2. Disaster Recovery 3. Business Requirements
  33. 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Netflix 2013
  34. 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Netflix 2016
  35. 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Chaos Engineering
  36. 36. © 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 a Multi-Region Architecture on AWS.
  37. 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Data Replication Component A Component B Component C Latency < 5 ms Synchronous Asynchronous Latency > 5 ms
  38. 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Process A Process B Process A Process B Synchronous Asynchronous Waiting Working Continues get or fetch resultGet result
  39. 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Reliable & Secure Network AWS Region A AWS Region B Amazon Global Network
  40. 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. James Hamilton – 2016 re:Invent Vice President & Distinguished Engineer
  41. 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Multi-Region Multi-VPC Connectivity
  42. 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. S3 - Cross-Region Replication
  43. 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Cross-Region Read Replicas for Amazon RDS ** For Aurora, MySQL, MariaDB and PostgreSQL engines.
  44. 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. “Simple” Cross-Region Usage Pattern • Regional Reads • All critical writes traffic to a single master
  45. 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Aurora multi-master - scale out reads & writes First MySQL compatible DB service with scale-out across multiple data centers Zero application downtime from ANY instance failure Zero application downtime from ANY AZ failure Faster write performance and higher scale Sign up for single-region multi-master preview today; Multi-Region Multi-Master coming in 2018 Availability Zone 1 Scale out both reads and writes Availability Zone 2 Availability Zone 3 Application Read/Write Master 1 Shared distributed storage volume Read/Write Master 2 Read/Write Master 3
  46. 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB Fast and flexible NoSQL database service for any scale Fast, consistent performance Highly scalable Fully managed Business critical reliability Consistent single-digit millisecond latency; DAX in-memory performance reduces response times to microseconds Auto-scaling to hundreds of terabytes of data that serve millions of requests per second Automatic provisioning, infrastructure management, scaling, and configuration with zero downtime Data is replicated across fault tolerant Availability Zones, with fine-grained access control The imag e part with relati onshi p ID rId3 was not foun d in the file.
  47. 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Prime Day 2017 Metrics Block Storage – Use of Amazon Elastic Block Store (EBS) grew by 40% year-over-year, with aggregate data transfer jumping to 52 petabytes (a 50% increase) for the day and total I/O requests rising to 835 million (a 30% increase). NoSQL Database – Amazon DynamoDB requests from Alexa, the Amazon.com sites, and the Amazon fulfillment centers totaled 3.34 trillion, peaking at 12.9 million per second. Stack Creation – Nearly 31,000 AWS CloudFormation stacks were created for Prime Day in order to bring additional AWS resources on line. API Usage – AWS CloudTrail processed over 50 billion events and tracked more than 419 billion, all in support of Prime Day. Configuration Tracking – AWS Config generated over 14 million Configuration items for AWS resources.
  48. 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB Global Tables (GA) First fully managed, multi-master, multi-region database Build high performance, globally distributed applications Low latency reads & writes to locally available tables Disaster proof with multi-region redundancy Easy to set up and no application rewrites required Globally dispersed users Replica (N. America) Replica (Europe) Replica (Asia) Global App Global Table
  49. 49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB Streams • Each stream record appears exactly once in the stream. • For each item that is modified in a DynamoDB table, the stream records appear in the same sequence as the actual modifications to the item Amazon DynamoDB AWS Lambda Streams
  50. 50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Route 53 • AWS’s Authoritative Domain Name Service. • Highly available and scalable. • Supports Traffic Flow through a variety of routing, all of which can be combined with DNS Failover. • Enable a variety of low-latency, fault-tolerant architectures.
  51. 51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Traffic Routing with Route53 1. Latency Based Routing Amazon Route53 Resource A Resource B 137ms latency 76ms latency
  52. 52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Traffic Routing with Route53 1. Latency Based Routing 2. Geo DNS Amazon Route53 Resource A In US Resource B in EU User in US
  53. 53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Traffic Routing with Route53 1. Latency Based Routing 2. Geo DNS 3. Weighted Round Robin Amazon Route53 Resource A In US Resource B in EU
  54. 54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Traffic Routing with Route53 1. Latency Based Routing 2. Geo DNS 3. Weighted Round Robin 4. DNS Failover Amazon Route53 Resource A In US Resource B in EU User in US
  55. 55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hands-on Demo: Building Multi-Region Serverless Application
  56. 56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB AWS LambdaAmazon API Gateway Amazon DynamoDB AWS LambdaAmazon API Gateway Amazon Route53 eu-west-1 us-east-1 GlobalTables https://globalddb.adhorn.me/
  57. 57. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB Amazon DynamoDB eu-west-1 us-east-1 GlobalTables
  58. 58. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  59. 59. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  60. 60. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  61. 61. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  62. 62. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  63. 63. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB AWS Lambda Amazon DynamoDB AWS Lambda eu-west-1 us-east-1 GlobalTables
  64. 64. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Lambda Function
  65. 65. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB AWS LambdaAmazon API Gateway Amazon DynamoDB AWS LambdaAmazon API Gateway eu-west-1 us-east-1 GlobalTables
  66. 66. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. us-west-2 us-east-1 Client Amazon Route 53 Regional API Endpoint Regional API Endpoint Custom Domain Name Custom Domain Name API Gateway API Gateway Lambda Lambda globalddb.adhorn.me CNAME CNAM E Multi-Region with API Gateway
  67. 67. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Route53: Traffic Policy
  68. 68. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon DynamoDB AWS LambdaAmazon API Gateway Amazon DynamoDB AWS LambdaAmazon API Gateway Amazon Route53 eu-west-1 us-east-1 GlobalTables https://globalddb.adhorn.me/
  69. 69. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Conclusion
  70. 70. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. We learned about 1. System Reliability and Availability. 2. Why to build a Multi-Region Active-Active architecture. 3. How to build a Multi-Region Active-Active architecture on AWS. 4. We looked at a Multi-Region Serverless App
  71. 71. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thanks you! @adhorn #BuildOnAWS https://medium.com/@adhorn

×