Академический Документы
Профессиональный Документы
Культура Документы
Agenda
1. 2. 3. 4.
Introduction - 5 minutes High Availability - 20 minutes Design For Cloud : Best Practices - 5 minutes Q&A
Introduction
High Availability
High Availability
10
11
Support versioning of the objects for further reliability Designed to provide 99.999999999% durability and 99.99% availability of objects over a given year. Common use cases : Content storage and distribution, Storage for data analysis, Backup, Disaster recovery, etc.
2011 GlobalLogic Inc.
12
13
14
Recap
Most Application need Compute Storage Messaging Scale Payment Distribution Analytics Monitoring
15
15
High Availability
16
High Availability
EC2 instance + AMI + ELB + Auto Scale EC2 instance + AMI + Elastic Load Balancer EC2 instance + AMI + Elastic IP EC2 instance + Amazon Machine Image EC2 instance
17
Plain EC2
Detect instance failure Create new instance from base image Install/deploy your application specific content Start the instance. Not "available" at all...
18
19
20
DB Master
Replication
DB Slave
DB Master
Replication
DB Slave
Backup
Backup
Amazon S3
Amazon S3
21
22
EC2 - 1
EC2 - 2
EC2 - 1
EC2 - 2
DB Master
Replication
DB Slave
DB Master
Replication
DB Slave
Backup
Backup
Amazon S3
Amazon S3
23
24
Auto Scale
EC2 - 2
EC2 - 3
DB Master
Replication
DB Slave
DB Master
Replication
DB Slave
Backup
Backup
Amazon S3
Amazon S3
25
26
EC2 - 2
EC2 - 4
EC2 - 2
EC2 - 4
DB Master
Replication Backup
DB Slave
DB Master
Replication Backup
DB Slave
Amazon S3
Amazon Amazon S3 S3
27
28
29
31
32
Best Practices
Design for failure and nothing will fail Decouple your components Implement elasticity Think parallel Keep dynamic data closer to the compute & static data closer to the end-user
33
34
35
Implement Elasticity
Use auto-scaling to set thresholds for scaling up or down. Requires having pre-configured AMIs and bootstrapping them. Automate resource management and configuration using Chef, Puppet etc. Use EBS to manage volumes which can be dynamically detached from failing instances and attached to new instances.
36
Think Parallel
Maximize opportunities to parallelize processing. On demand creation of AWS EC2 instances greatly helps in getting parallel tasks done quicker With ELB you can load-balance dynamically. AWS also gives you MapReduce framework.
37
Keep dynamic data closer to the compute & static data closer to the end-user
Keep data as close as possible to your compute to reduce latency and cost When large quantity of data available outside the cloud that needs to be processed, it might be cheaper and faster to ship the data to cloud For data generated in the cloud, then the applications that consume the data should also be deployed in the cloud For static data which does not change often (for Eg. images, video, audio, PDFs, JS, CSS files), take advantage of content delivery service (Cloud Front) so that the static data is cached at an edge location closer to the end-user
38
Q&A
39
Thank you
40