Scalable Architecture on  Amazon AWS Cloud                 Kalpak Shah                 Founder & CEO,                 Clog...
* http://www.rightscale.com/products/cloud-computing-uses/scalable-website.php                                            ...
Architect to scale on-demand and provision as per current requirementsIdeal model for unpredictable and variable loads    ...
Scalability Requirements Increase in resources → Increase in performance Predictability Low Latency High Reliability Dynam...
Scalability Perspectives What needs to scale?   Compute          IO Latency   Memory           Provisioning time   Network...
Vertical Scalability When scale is predictable and linear When you do not want to spend on re-architecting the application...
Scaling multi-tier stacks – 1 Service Oriented Architecture   Loosely coupled   Standard service contracts   Web Services ...
Scaling multi-tier stacks – 2   Amazon SQS: Reliable, scalable, hosted queue; exposed as web   service   RabbitMQ: Open-so...
Elastic Load Balancing, Auto Scaling Amazon Elastic Load Balancing   Distributes incoming traffic to your application acro...
Monitoring & Logging Amazon CloudWatch   Monitoring for AWS cloud resources &   applications   Collect and track metrics –...
Databases - Replication                                      Writes Master-Slave Replication (MySQL, Oracle RAC)          ...
Databases – Sharding - 1 Partition data across masters Writes & Reads are distributed Application needs modification Needs...
Databases – Sharding - 2 Issues   Joins cannot be performed across shards   Application modification can be expensive Exam...
Databases – Amazon SimpleDB Schema-less distributed key-value store Highly reliable and scalable (redundancy across geos) ...
Databases – Amazon RDS Relational Database Service (RDS) from AWS Scale your DB layer with minimum administration MySQL an...
Reserving Scalability Reserved Instances   AWS has finite hardware capacity   Provisioning times can vary   Use few reserv...
Scalability using PaaS Amazon Elastic Beanstalk   Platform-as-a-Service with deployment, capacity provisioning,   load bal...
Elastic MapReduce (PaaS) Hosted Hadoop Framework   Manages job flows & provisioning of all infrastructure   AWS Console to...
Automation for managing scale CloudFormation   Templatize your stack   Predictable provisioning of your stack RightScale  ...
Case Study                                                                                 SES                            ...
There are some limits…  EC2 has limit of 20 instances  S3 has limit of 100 buckets  Simple Email Service (SES) has a daily...
Scale but minimize costs - 1 Use of Reserved Instances   Commitment for upto 1-3 years with some upfront payment   Actual ...
Scale but minimize costs - 2 Data Transfer beyond 10TB   Consolidate AWS accounts so that higher usage translates to   sav...
Questions?        24
Upcoming SlideShare
Loading in...5
×

Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conference 2011

1,468

Published on

Session presented at the 2nd IndicThreads.com Conference on Cloud Computing held in Pune, India on 3-4 June 2011.

http://CloudComputing.IndicThreads.com

Abstract:“With increasing demand, ever-growing datasets, unpredictable traffic patterns and need for faster response times, “scalable architecture” has become a necessity. Here, we will see how the traditional concepts and best practices for scalability have to be adopted for the cloud. Further, we will go through the unique advantages that Amazon AWS cloud offers for architecting scalable applications. As an architect, you need to identify the components and bottlenecks in your architecture and modify your application to leverage the underlying scalability.

We will cover the following topics:

Scalability principles for the cloud
Leveraging AWS services for application components
Shared nothing architecture
Asynchronous work queues for loosely coupled applications
Database scalability
Tools, connectors and enablers to help build, deploy and monitor your cloud environment
Scalability using Platform-as-a-Service offerings on top of AWS
An example of a horizontally scalable architecture for an enterprise application on Amazon AWS

This talk will act as a primer for a cloud architect to achieve an auto-scalable, highly available, fully-monitored edge-cached application.”

Speaker:
Kalpak Shah is the Founder & CEO of Clogeny Technologies Pvt. Ltd. and guides the overall strategic direction of the company. Clogeny is focused on niche software and product development in cloud computing and scalable applications domains. He is passionate about the ground-breaking economics and technology afforded by the cloud computing platforms. He has been leading and architecting cutting-edge product development across the cloud stack including IaaS, PaaS and SaaS vendors.

He has previously worked at organizations like Sun Microsystems and Symantec in the storage domain primarily distributed and disk filesystems. Kalpak has a Bachelors’ of Engineering degree in computer engineering from PICT, University of Pune.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,468
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
85
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conference 2011"

  1. 1. Scalable Architecture on Amazon AWS Cloud Kalpak Shah Founder & CEO, Clogeny Technologies kalpak@clogeny.com 1
  2. 2. * http://www.rightscale.com/products/cloud-computing-uses/scalable-website.php 2
  3. 3. Architect to scale on-demand and provision as per current requirementsIdeal model for unpredictable and variable loads 3
  4. 4. Scalability Requirements Increase in resources → Increase in performance Predictability Low Latency High Reliability Dynamism: Number of users, volume of data, skews Operational efficiency Costs should not scale  {Elasticity, Scalability, Resiliency} 4
  5. 5. Scalability Perspectives What needs to scale? Compute IO Latency Memory Provisioning time Network Backup / Restore times Storage Failover Monitoring Ops Vertical scalability Horizontal scalability Scale across geographies HPC workloads Data Processing workloads 5
  6. 6. Vertical Scalability When scale is predictable and linear When you do not want to spend on re-architecting the application or deployment Increase instance sizes 1 – 33.5 EC2 Compute Units 613MB memory to 68GB memory Size or number of EBS disks HPC Instances 10 Gigabit ethernet Higher IOPS for EBS disks Limitations…. 6
  7. 7. Scaling multi-tier stacks – 1 Service Oriented Architecture Loosely coupled Standard service contracts Web Services Enables independent tiers for deployment & management Messaging / Queue layer Queue 1 Queue 2 Tier A Tier B 7
  8. 8. Scaling multi-tier stacks – 2 Amazon SQS: Reliable, scalable, hosted queue; exposed as web service RabbitMQ: Open-source HA messaging system, clustering support BeanStalkD: Simple, fast work queue Clustering Application Servers JBoss App Server, IBM WebSphere Application Server Add or remove nodes on the fly – automate through scripting Stateless behavior can be added when necessary VPC does not work across availability zones (AZ) – in the pipeline though 8
  9. 9. Elastic Load Balancing, Auto Scaling Amazon Elastic Load Balancing Distributes incoming traffic to your application across several EC2 instances Detects unhealthy instances and reroutes traffic Auto-Scaling Enabled by CloudWatch: Monitoring, custom metrics, free tier, graphs and statistics Rule-based automatic scaling of your EC2 capacity Based on metrics including resource utilization, software stack metrics or custom metrics N+1 redundancy 9
  10. 10. Monitoring & Logging Amazon CloudWatch Monitoring for AWS cloud resources & applications Collect and track metrics – CPU, latency, request counts, custom metrics Monitoring with your own tools Using Hyperic or Nagios for monitoring specific layers of your stack or to leverage existing investments Logging No dependency on instances – copy necessary logs to S3 periodically 10
  11. 11. Databases - Replication Writes Master-Slave Replication (MySQL, Oracle RAC) Master Writes on master Reads distributed across slaves Slave Slave Slave Works well in read mostly scenarios ← Reads → Slave lag issue 11
  12. 12. Databases – Sharding - 1 Partition data across masters Writes & Reads are distributed Application needs modification Needs choice of partitioning strategy for uniform data distribution 12
  13. 13. Databases – Sharding - 2 Issues Joins cannot be performed across shards Application modification can be expensive Example Evernote uses database sharding – localized failures, no need for joins Each shard handles all data & traffic for about 100,000 users http://blog.evernote.com/tech/2011/05/17/architectural-digest/# 13
  14. 14. Databases – Amazon SimpleDB Schema-less distributed key-value store Highly reliable and scalable (redundancy across geos) Automatic indexing of columns API based global access Supports multiple values for key/attributes Eventual consistency or consistency – speed or consistency? Limitations No joins, No transactions, No aggregators, text searches NoSQL MongoDB, Cassandra, Redis 14
  15. 15. Databases – Amazon RDS Relational Database Service (RDS) from AWS Scale your DB layer with minimum administration MySQL and Oracle supported Import existing databases & no changes to applications Multi-AZ deployments supported Manages backup of your database and enables restore from DB snapshots 15
  16. 16. Reserving Scalability Reserved Instances AWS has finite hardware capacity Provisioning times can vary Use few reserved instances to “book” capacity in advance (also take advantage of lower prices) Can be done across availability zones to ensure DR Larger EBS disks Create larger EBS disks to ensure better performance Netflix creates 1TB disks in this manner 16
  17. 17. Scalability using PaaS Amazon Elastic Beanstalk Platform-as-a-Service with deployment, capacity provisioning, load balancing, auto-scaling & application health monitoring Application versioning support (rollback if needed) Uses EC2, S3, RDS, SimpleDB, Load Balancer, CloudWatch Retain control of your infrastructure if desired Other PaaS products CumuLogic, CloudBees, DotCloud, PHP Fog Java, PHP, RoR, MongoDB, MySQL…… 17
  18. 18. Elastic MapReduce (PaaS) Hosted Hadoop Framework Manages job flows & provisioning of all infrastructure AWS Console to create & manage workflows Supports custom jars, Hive, Pig, streaming & processing in multiple languages/stacks Debug & profile jobs Run across geographies Data processing, analytics Scalable Managed MapReduce Platform 18
  19. 19. Automation for managing scale CloudFormation Templatize your stack Predictable provisioning of your stack RightScale Sophisticated cloud management platform Templates, automation, orchestration, portability Tools, Connectors, Enablers Automated orchestration & setup Snapshot management Monitor security groups and firewalls 19
  20. 20. Case Study SES Auto Scaling Auto Scaling AZ1 Group - Apache Group - Django App Server Managed Scaling Web App Work Server Server Server Work Work 1 1 (Reserved) (Reserved) Server Local DB Server AZ2scalableportal.com E L L B B 3rd Party API Web App Server App Server n Server n MySQL n Master No listing, Hash based access, Millions of files EBS Snapshots MySQL Slaves Amazon S3 20
  21. 21. There are some limits… EC2 has limit of 20 instances S3 has limit of 100 buckets Simple Email Service (SES) has a daily sending quotaNOTE: All of these limits can be increased or waived by requesting AWS. Ensure to do this before you hit the limits in production. 21
  22. 22. Scale but minimize costs - 1 Use of Reserved Instances Commitment for upto 1-3 years with some upfront payment Actual usage cost is much lower If used for more than 6 months in a year, can be 30-45% cheaper than on-demand instances Reduced Redundancy Storage Reduce costs by storing non-critical data at lesser redundancy and lesser availability/durability of 99.99% Instance Sizes Run some smaller instances as part of clusters 22
  23. 23. Scale but minimize costs - 2 Data Transfer beyond 10TB Consolidate AWS accounts so that higher usage translates to saved costs. $0.15 upto 10TB and $0.11 beyond 10TB. Identify extra capacity Use monitoring to identify unused capacity & optimize Spot Instances Bid for unused capacity – choose your maximum price Get more within your existing budget 23
  24. 24. Questions? 24
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×