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.

Scalable Web Apps - Journey Through the Cloud

529 views

Published on

Slides from my webinar on Scalable Web Apps from the 2015 Journey Through the Cloud webinar series.

Published in: Technology
  • Be the first to comment

Scalable Web Apps - Journey Through the Cloud

  1. 1. Journey Through the Cloud ianmas@amazon.com @IanMmmm Ian Massingham — Technical Evangelist Scalable Web Apps
  2. 2. Journey Through the Cloud Learn from the journeys taken by other AWS customers Discover best practices that you can use to bootstrap your projects Common use cases and adoption models for the AWS Cloud 1 2 3
  3. 3. Scalable Web Apps A very popular use-case for AWS services
 Applications with growing, variable or cyclical demand fit AWS well 
 Elasticity and automation can be exercised to real advantage
 AWS services allow you to accelerate application development
  4. 4. Agenda Why use AWS for scalable web applications?
 Rule Book for scalable web application on AWS
 Common patterns for web applications
 Where to go to learn more
  5. 5. WHY AWS FOR SCALABLE WEB APPLICATIONS?
  6. 6. Websites & Digital Transformation
  7. 7. BEING IN THE CLOUD GIVES US THE SCALABILITY OF ADDING APPLICATION AND DATABASE SERVERS AS WE NEED THEM. Keith  Mitchell   Programmer   reddit.com • reddit is a San Francisco, CA company that provides reddit.com, a social news and entertainment website where users can submit and rank ideas, images, and links • reddit originally operated reddit.com on physical servers, but after the number of users quadrupled in 18 months, the company realized it couldn’t scale with an on-premises environment • By migrating to AWS, reddit can scale to manage 4 billion page views per month and run its website with only 20 employees With AWS, reddit scales its social news site to handle 4 billion page views per month with only 20 employees Find out more here : aws.amazon.com/solutions/case-studies/reddit/
  8. 8. Pick your platform Use your favourite tools Grow & shrink capacity to match demand Spend your money on what matters Take your app or site global in minutes Never make your customers wait 1 2 3 4 5 6
  9. 9. RULE BOOK FOR SCALABLE WEB APPLICATIONS ON AWS
  10. 10. Service all requests Service requests as fast as possible Handle requests at any volume Simply your architecture Automate operations & management Use the unique properties of the cloud 1 2 3 4 5 6
  11. 11. Service all requests1 DNS APPLICATION DATA
  12. 12. Service all requests1 DNS APPLICATION DATAREQUEST
  13. 13. Service all requests1 DNS APPLICATION DATAREQUEST
  14. 14. Service all requests1 DNS APPLICATION DATAREQUEST ╳
  15. 15. Service all requests1 DNS APPLICATION DATAREQUEST 100% Availability SLA aws.amazon.com/route53/sla Global Delivered from AWS global edge locations for fast and reliable domain name resolution Scalable Automatically scales based upon query volumes Latency based routing Supports resolution of endpoints based upon latency, enabling multi-region application delivery Integrated Integrates with other AWS services allowing Route 53 to front elastic load balancers, S3 and EC2 Secure Integrates with IAM giving fine grained control over DNS record access
  16. 16. Service all requests1 DNS APPLICATION DATAREQUEST
  17. 17. 1 DNS APPLICATION DATAREQUEST Region Region Elastic Load Balancer Elastic Load Balancer Availability Zone Availability Zone Availability Zone Availability Zone Elastic load balancing Multi-availability zone Multi-region Service all requests
  18. 18. 1 DNS APPLICATION DATAREQUEST Region Region Elastic Load Balancer Elastic Load Balancer Availability Zone Availability Zone Availability Zone Availability Zone Amazon DynamoDB Amazon DynamoDB Service all requests
  19. 19. Service requests as fast as possible2
  20. 20. Service requests as fast as possible 1) Chose the ‘closest’ endpoint 2 REQUEST Amazon Route 53 Region A Region B
  21. 21. 2 REQUEST Amazon Route 53 Region A Region B 16ms 92ms Service requests as fast as possible 1) Chose the ‘closest’ endpoint
  22. 22. 2 REQUEST Amazon Route 53 Region A Region B 16ms 92ms Service requests as fast as possible 1) Chose the ‘closest’ endpoint
  23. 23. 2 Amazon Route 53 Region A Region B 16ms REGION A DNS ENTRY REQUEST Service requests as fast as possible 1) Chose the ‘closest’ endpoint
  24. 24. Service requests as fast as possible 2) Offload your application servers 2 London Paris NY Served from S3 /images/* 3 Served from EC2 *.php 2 Single CNAME www.mysite.com 1 Amazon CloudFront Content delivery web service Integrates with other Amazon Web Services Products Easily distribute content to end users with low latency, high data transfer speeds, and no minimum usage commitments aws.amazon.com/cloudfront
  25. 25. Service requests as fast as possible 2) Offload your application servers 2 Without Amazon CloudFront EC2 Instances running web and application servers are loaded with user requests for content assets
  26. 26. Service requests as fast as possible 2) Offload your application servers 2 With Amazon CloudFront A significant proportion of the load from user requests is handled by Amazon CloudFront and the EC2 cluster can be scaled down Offload Scale Down
  27. 27. Service requests as fast as possible 2) Offload your application servers 2 Offload Scale Down ResponseTime ServerLoad ResponseTime ServerLoad ResponseTime Server Load No CDN CDN for Static Content CDN for Static & Dynamic Content
  28. 28. Service requests as fast as possible 3) Cache it if you can 2 Amazon ElastiCache A web service that makes it easy to deploy, operate, and scale an in-memory cache Allows you to retrieve information from fast, managed, in-memory caches, instead of relying entirely on slower disk-based databases Supports two open-source in memory caching engines: Memcached & Redis
  29. 29. Service requests as fast as possible 4) Single digit latencies where it matters 2 DatabaseQueryPerformance Desired consistency & predictability Scale
  30. 30. Service requests as fast as possible 4) Single digit latencies where it matters 2 DatabaseQueryPerformance Desired consistency & predictability Scale Actual performance degrades with scale
  31. 31. DatabaseQueryPerformance Desired consistency & predictability Scale Actual performance degrades with scale Filling this gap requires: Database sharding Data caching Provisioning Cluster management Fault management Service requests as fast as possible 4) Single digit latencies where it matters 2
  32. 32. DatabaseQueryPerformance Amazon DynamoDB Query Performance Scale Relational Database Query Performance Amazon DynamoDB Service requests as fast as possible 4) Single digit latencies where it matters 2
  33. 33. Amazon DynamoDB Amazon DynamoDB A fast and flexible NoSQL database service Consistent, single-digit millisecond latency at any scale Fully managed Supports both document & key-value store models aws.amazon.com/dynamodb Service requests as fast as possible 4) Single digit latencies where it matters 2 aws.amazon.com/solutions/case-studies/adroll/
  34. 34. 3 Handle requests at any volume & scale 1) Scale up Basic unit of compute capacity Broad range of CPU, memory & local disk options 7 families available, from micro to compute, memory & storage optimized Scale up with Elastic Compute Cloud (EC2)
  35. 35. 3 Handle requests at any volume & scale 2) Scale out Trigger  auto-­‐ scaling  policy Auto Scaling Amazon EC2 Auto Scaling Allows you to scale your EC2 capacity up or down automatically according to conditions that you define Increase the number of Amazon EC2 instances during demand spikes to maintain performance & decrease capacity during lulls to reduce costs
  36. 36. 3 Manually Send an API call or use CLI to launch/ terminate instances – Only need to specify capacity change (+/-) By Schedule Scale up/down based on date and time By Policy Scale in response to changing conditions, based on user configured real-time monitoring and alerts Auto-Rebalance Instances are automatically launched/ terminated to ensure the application is balanced across multiple Azs Handle requests at any volume & scale 2) Scale out
  37. 37. 3 Manually Send an API call or use CLI to launch/ terminate instances – Only need to specify capacity change (+/-) By Schedule Scale up/down based on date and time By Policy Scale in response to changing conditions, based on user configured real-time monitoring and alerts Auto-Rebalance Instances are automatically launched/ terminated to ensure the application is balanced across multiple Azs Preemptive manual scaling of capacity Adding 10 more instances before a marketing event Handle requests at any volume & scale 2) Scale out
  38. 38. 3 Manually Send an API call or use CLI to launch/ terminate instances – Only need to specify capacity change (+/-) By Schedule Scale up/down based on date and time By Policy Scale in response to changing conditions, based on user configured real-time monitoring and alerts Auto-Rebalance Instances are automatically launched/ terminated to ensure the application is balanced across multiple Azs Preemptive manual scaling of capacity Adding 10 more instances before a marketing event Regular scaling up & down of instances Scaling from 0 to 2 to process SQS messages every night or doubling capacity on a Friday night Handle requests at any volume & scale 2) Scale out
  39. 39. 3 Manually Send an API call or use CLI to launch/ terminate instances – Only need to specify capacity change (+/-) By Schedule Scale up/down based on date and time By Policy Scale in response to changing conditions, based on user configured real-time monitoring and alerts Auto-Rebalance Instances are automatically launched/ terminated to ensure the application is balanced across multiple Azs Preemptive manual scaling of capacity Adding 10 more instances before a marketing event Regular scaling up & down of instances Scaling from 0 to 2 to process SQS messages every night or doubling capacity on a Friday night Dynamic scaling based on custom metrics Scaling on SQS queue depth, average CPU load or ELB latency Handle requests at any volume & scale 2) Scale out
  40. 40. 3 Manually Send an API call or use CLI to launch/ terminate instances – Only need to specify capacity change (+/-) By Schedule Scale up/down based on date and time By Policy Scale in response to changing conditions, based on user configured real-time monitoring and alerts Auto-Rebalance Instances are automatically launched/ terminated to ensure the application is balanced across multiple Azs Preemptive manual scaling of capacity Adding 10 more instances before a marketing event Regular scaling up & down of instances Scaling from 0 to 2 to process SQS messages every night or doubling capacity on a Friday night Dynamic scaling based on custom metrics Scaling on SQS queue depth, average CPU load or ELB latency Maintaining capacity across availability zones Instance availability is maintained in the event of AZ becoming unavailable Handle requests at any volume & scale 2) Scale out
  41. 41. 3 Handle requests at any volume & scale 3) Dial up throughout Elastic Block Store Provisioned IOPS up to 20,000 per EBS volume Predictable performance for demanding workloads such as databases DynamoDB Provisioned read/write performance per table Predictable high performance scaled via console or API https://aws.amazon.com/blogs/aws/auto-scale- dynamodb-with-dynamic-dynamodb/
  42. 42. Simply your architecture with services4 Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away             Antoine de Saint-Exupery French writer (1900 - 1944)
  43. 43. 4 Your
 Business 70% Infrastructure that you own & operate 30% Managing All of the 
 “Undifferentiated Heavy Lifting” Simply your architecture with services
  44. 44. 4 Your
 Business 70% Infrastructure that you own & operate 30% Managing All of the 
 “Undifferentiated Heavy Lifting” AWS
 Cloud-Based
 Infrastructure More Time to Focus on
 Your Business Configuring Your Cloud Services 30%70% Simply your architecture with services
  45. 45. 4 Simply your architecture with services Relational Database Service Database-as-a-Service No need to install or manage database instances Scalable and fault tolerant configurations DynamoDB Provisioned throughput NoSQL database Fast, predictable performance Fully distributed, fault tolerant architecture Use RDS for relational databases such as MySQL or Oracle Use DynamoDB as high performance document or key-value database
  46. 46. 4 Simply your architecture with services Amazon SQS Reliable, highly scalable, queue service for storing messages as they travel between instances Reliable message queuing without additional software Elastic MapReduce Elastic Hadoop cluster Integrates with S3 & DynamoDB Leverage Hive & Pig analytics scripts Integrates with instance types such as spot Process large volumes of data cost effectively with Amazon EMR Amazon SQS Processing task/ processing trigger Processing results
  47. 47. 4 Simply your architecture with services Enterprise Applications Administration & Security Core Services Platform Services Infrastructure AWS Marketplace
  48. 48. 5 Access everything via CLI, API or Console Achieve the highest levels of automation with ease Find out more at: aws.amazon.com/developers/getting-started/ Automate operations & management 1) Everything is programmable
  49. 49. 5 Automate operations & management 2) Think immutable, one click-deployments AWS CloudFormation An easy way to create & manage a collection of related AWS resources, called a ‘stack’ Automate creation of ‘stacks’ in a repeatable way Version control your infrastructure as you do your software Feature Details Platform support Support for AWS resources from EC2 to IAM Resource creation Creates AWS resources behind the scenes and reports on progress Declarative Specify stacks in JSON format and source control your environments Customizable Drive stack creation with paramaters
  50. 50. 5 Automate operations & management 2) Think immutable, one click-deployments Launch and terminate 
 Docker containers Across a cluster 
 of EC2 instances Mount persistent 
 volumes at launch Private Docker 
 repositories Amazon EC2 Container Service
  51. 51. 5 Automate operations & management 2) Think immutable, one click-deployments Amazon EC2 Container Service
  52. 52. 5 Automate operations & management 3) Design for availability, implement self healing Customize instance startup Get instances to ask ‘who am I?’ question on startup and be configured dynamically upon being answered Maintain capacity of instances Using a minimum pool size will maintain capacity in the event of instance failures Know what’s going on, take automated actions Use CloudWatch standard and custom metrics to create alarms. Respond with automated administration actions Bootstrapping Auto-scaling CloudWatch
  53. 53. 5 Automate operations & management 3) Design for availability, implement self healing https://github.com/Netflix/SimianArmy
  54. 54. 6 Use the unique properties of the cloud 1) Optimize costs with different instance types Choose an instance 
 that best meets your basic requirements Start with memory & then choose closest virtual cores Assess peak IOPS storage requirements Deploy & run multiple instances in multiple Availability Zones Change instance size up or down based upon monitoring Use CloudWatch & Trusted Advisor to assess Start Deploy & ScaleTune
  55. 55. 6 Use the unique properties of the cloud 1) Optimize costs with different instance types 00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00 100% 75% 58% 38% 13% 8% On Demand Instance Reserved Instance
  56. 56. COMMON PATTERNS FOR WEB APPLICATIONS
  57. 57. Stateless Scale horizontally Loose coupling Automation
  58. 58. RESOURCES YOU CAN USE TO LEARN MORE
  59. 59. aws.amazon.com/websites/
  60. 60. aws.amazon.com/solutions/case-studies/
  61. 61. aws.amazon.com/architecture/
  62. 62. Certification aws.amazon.com/certification Self-Paced Labs aws.amazon.com/training/
 self-paced-labs Try products, gain new skills, and get hands-on practice working with AWS technologies aws.amazon.com/training Training Validate your proven skills and expertise with the AWS platform Build technical expertise to design and operate scalable, efficient applications on AWS AWS Training & Certification
  63. 63. Follow us for m ore events & w ebinars @AWScloud for Global AWS News & Announcements @AWS_UKI for local AWS events & news @IanMmmm Ian Massingham — Technical Evangelist

×