SlideShare a Scribd company logo
1 of 90
Download to read offline
AWS Console for iOS and Android
View resources on the go!
Supports EC2, ELB, RDS, and Auto Scaling.
We are rapidly building support for more services.

Download Now
Search “AWS” in any app store or go to...
Amazon Appstore: http://bit.ly/consoleAmazon
iTunes: http://bit.ly/consoleiOS
Google Play: http://bit.ly/consoleGooglePlay
More Nines for Your Dimes:
Improving Availability and Lowering Costs Using
Auto Scaling and Amazon EC2
Derek Pai, AWS
Cameron Stokes, The Weather Channel
Keith Baker, Nokia
Laurent Rouquette, Adobe
Brandon Adams, Dreambox Learning

November 15, 2013

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Some topics we’ll cover today
• The Weather Channel
– Maintaining application response times and fleet utilization rates
– Handling cyclical demand and unexpected “weather events”

• Nokia
– Static Auto Scaling for non-critical applications
– Auto Scaling for 99.9% Uptime

• Adobe
– Cost control and asymmetric scaling responses
– AWS CloudFormation, custom scripts, and multiple inputs

• Dreambox
– Using performance testing to choose scaling strategies
– Dealing with bouncy or steep curves
Cameron Stokes, The Weather Channel
Keith Baker, Nokia
Laurent Rouquette, Adobe
Brandon Adams, Dreambox Learning

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Who We Are
Who We Are
Who We Are
•
•
•
•

Top 30 web property in the U.S.
2nd most viewed television channel in the U.S.
85% of U.S. airlines depend on our forecasts
Major retailers base marketing spend and store
displays based on our forecasts
Who We Are
“The Weather Channel has an unduplicated
audience of 163 million unique visitors monthly
across The Weather Channel TV and weather.com
platforms.”
- Frank N. Magid Associates, Q3 2012
Why AWS?
Why AWS?
It’s hurricane season in 2012.
We’re capacity constrained.
What can we do…
Why AWS?
Identify “mobile” workload
and move it to AWS...
Radar images on
wunderground.com.
Why AWS?
Self-contained
application
Easy to replicate the
datastore
Why Auto Scaling?
Why Auto Scaling?
Why Auto Scaling?
Why Auto Scaling?
Why Auto Scaling?
Hurricane Sandy
Radar on AWS
Radar on AWS
Radar on AWS
CPU Utilization
Radar on AWS

Host Count
Radar on AWS
Radar on AWS
Radar on AWS
Challenges
Challenges
Your monitoring tools
probably suck
Challenges
Rolling out application
updates
Challenges
Zone failures
Challenges
Zone failures
Challenges
Zone failures
Challenges
Lots of knobs and
switches to get right
…or wrong
Cameron Stokes, The Weather Channel
Keith Baker, Nokia
Laurent Rouquette, Adobe
Brandon Adams, Dreambox Learning

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Maintaining non-critical
applications with Static
Autoscaling
Clickwork Annotation
•
•
•
•
•
•

Internal annotation application
~100 users
All hourly contractors
Downtime is acceptable
Port of existing single-server application
Perfect first step into AWS
Architecture
www.clickworksite.com

S3 Repository
Bucket
S3 Backup
Bucket

Django Web App
Postgresql DB
EBS Volume 1
Manual Taggers

Elastic Load Balancing
(SSL Termination)

EC2 Instance
EBS Volume 2
Data Volume

Auto Scaling Group

Cloudwatch

Availability Zone #1

Periodic Snapshots
Clickwork Details
• Single AZ, Single Instance maintained by
Autoscaling. Instance failures take ~15 min to
recover.
• Upgrades are done with planned downtime via a
fully scripted re-deployment also ~15 min unless
database schema is updated.
Clickwork Details
• While uptime is flexible our data is precious
– 2 EBS Volumes in Software RAID 1
– Periodic Postgres backups to S3
• Daily for first 18 months
• Increased to hourly

– Manual EBS snapshots today
Clickwork Details
• Using Auto Scaling means the system cannot be
configured by hand in any way and has to recover itself
• Deployment uses Masterless Puppet
– Puppet tree built into an RPM & pushed into S3 as Yum Repo
– CloudInit
• Set up S3 Yum Repositories
• Install Puppet RPM
• Run Puppet

– Puppet
•
•
•
•

Installs needed packages
Mounts EBS volumes (id’s stored in launch config data)
Configures / Mounts RAID 1
Starts Postgres & Apache
Clickwork Results
• Successful deployment of Nokia’s first AWS application
• Drastically Increased uptime over ‘server in a closet’
– Previously, outages exceeded 2 days each
• A/C
• Power
• Network

– Design goal was max 1 day outage
– 2 outages over 1 hour
• 2 hours (8.25.2013 EBS Event)
• 9 hours (10.22.2012 EBS Event)
Autoscaling for 99.9% Uptime
Local Search
• First customer facing application on AWS
• Obvious need for Uptime
Local Search Architecture
US-West-2
Frontend
Group
Zookeeper1

Zookeeper1
Frontend Group

Zookeeper2

EU-West-1

Zookeeper2
AP-Southeast-1

Backend
Groups
Zookeeper3

Zookeeper3
US-East-1a
US-East-1

Backend Groups
US-East-1b
Local Search Single Instance Auto
Scaling Groups

• Instances in 1 node Auto Scaling groups automatically
register themselves in DNS via Route53 based on their
Auto Scaling group’s name.
• Auto Scaling group names are formed as a pattern with
cluster name and node type so a cluster1-frontend node
knows to look for cluster1-zookeeper1, cluster1zookeeper2…
• An alternative was querying the Auto Scaling group for
instances. Using DNS allowed us to use more standard
tools.
Local Search Zookeepers
•
•
•
•
•
•
•

•

Three single instance Auto Scaling groups
Zookeeper needs a set, consistent list of servers across all servers (zookeeper1,
zookeeper2, zookeeper3)
At launch, zookeeper didn’t re-resolve hostnames on the server side. We proxy Zookeeper
through localhost inetd & netcat to cause a DNS lookup on each connection
Client had been fixed at this point
Requires a short DNS timeout but rather low usage (only on reconnects)
Considered one zookeeper per AZ. One region we deploy in only has two AZs so we can’t
lose either AZ and maintain quorum. So we run one cluster in each AZ.
We have lost all three zookeepers in one AZ, which caused one AZ to go offline. This
failure was handled by the ELB. Auto Scaling fixed this in ~15 min.
Avoided EIPs
Local Search Logging
•
•
•
•
•
•

Again a single instance Auto Scaling group
Buffers logs for entire cluster
Does compression, encryption, and uploads to S3
Forwards to central logging system for analysis
Single point of investigation for entire cluster
All instances also run scribe to buffer if logging node
is lost
Local Search Updates
• Moving to a job that monitors the available data vs. the present data
• When new data is present the job takes a lock in zookeeper for
cluster size changes. It then increases the node count and waits for
the Auto Scaling message that capacity has changed. It unlocks the
cluster size changes and monitors the loading of the new node.
• Other nodes can then lock and modify the capacity to get their own
replacement nodes
• Once new nodes are loaded, the old nodes take a lock and decease
the cluster size with a targeted kill to themselves
• Care taken to track a failed replacement node
Local Search Success
• All detected health problems have been
successfully replaced by autoscaling with zero
intervention. We’ve been paranoid so it still
pages us, it’s beginning to feel silly
• Zookeeper setup has performed flawlessly
• Undetected problems are our biggest challenge
– Disk failure
– Intermittent connectivity failures
Cameron Stokes, The Weather Channel
Keith Baker, Nokia
Laurent Rouquette, Adobe
Brandon Adams, Dreambox Learning

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Intro – Cloud Ops
Goals
• Meet demand
• Control costs
• Maintain capacity
Architecture
Scaling the web layer
• Number of HTTP requests
• Average CPU load
• Network in/out
Scaling the worker layer
• SQS queue length, specifically "approximate
number of messages visible"
Scaling Down: who wants to volunteer?
• Know your usage
• Scale up fast, scale down slow
Cost Control
• Scheduled scaling: we analyzed our traffic and
picked numbers.
– scale up in the morning, scale down in the evening

• Policies for slow scale down
• Stage environments: downscale everything to
“min-size” daily (or more)
How – AWS CloudFormation
"ScaleUpPolicy" : {
"Type" : "AWS::AutoScaling::ScalingPolicy",
"Properties" : {
"AdjustmentType" : "ChangeInCapacity",
"AutoScalingGroupName" : { "Ref" : "WorkerAutoScalingGroup" },
"Cooldown" : {"Ref": "cooldown"},
"ScalingAdjustment" : { "Ref" : "adjustup" }
}
},
"WorkerAlarmScaleUp": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"EvaluationPeriods":{"Ref" : "evalperiod"},
"Statistic": "Sum",
"Threshold": {"Ref" : "upthreshold"},
"AlarmDescription": "Scale up if the work load of transcode queue is high",
"Period": {"Ref" : "period"},
"AlarmActions": [ { "Ref": "ScaleUpPolicy" }, { "Ref" : "scalingSNStopic" } ],
"Namespace": "AWS/SQS",
"Dimensions": [ { "Name": "QueueName", "Value": {"Ref" : "queuename" }}],
"ComparisonOperator": "GreaterThanThreshold",
"MetricName": "ApproximateNumberOfMessagesVisible"
}
},
How – custom scripts
. . .
[2013-10-08T00:00:14.31] INFO -- : Scaling Worker1 with CAPACITY 10 (schedule=BIZPM)
[2013-10-08T00:00:24.70] INFO -- :
PROD-A-Worker1-3276-ASG-1VUVI7JI1M19U has max size 0; most likely not active
environment; no action taken
PROD-B-Worker1-3484-ASG-H2QX6HC82SLQ is active; resetting capacity: current: 20; new:
10
Result: OK-Desired Capacity Set

[2013-10-08T00:00:24.70] INFO -- : Scaling Worker2 with CAPACITY 7 (schedule=BIZPM)
[2013-10-08T00:00:34.98] INFO -- :
PROD-A-Worker2-3275-ASG-LY3NHN8C7A82 has max size 0; most likely not active
environment; no action taken
PROD-B-Worker2-3483-ASG-70MUBNNP3QV0 is active; resetting capacity: current: 15; new: 7
Result: OK-Desired Capacity Set
. . .
How – Custom Metrics
. . .
Sat Oct 6 05:51:03 UTC 2012
Number of AZs: 4
Number of Web Servers: 16
Number of Healthy Web Servers: 16
ELB Request Count: 9523.0
Request Count Per Healthy Web Server: 595.1875
Network In Per Healthy Web Server: 51 MB
Network Out Per Healthy Web Server: 1 MB
CPU Per Healthy Web Server: 25.23875
Publishing Custom Metrics: InstanceRequestCount, HealthyWebServers,
InstanceNetworkIn, InstanceNetworkOut, InstanceCPUUtilization to namespace
WebServer in us-east-1
. . .
How – multi-input scaling
• Scale up
• +2 instances if more than 50 visible messages for more than 5 min
• +50% instances if more than 1000 msg for more than 2 min
• + fixed 100 instances if more than 10,000 msg for more than 1 min

• Scale down
• –10 instance if 0 msg for more than 10 min
• – 25% if 0 msg for more than 30 min
Advice
•
•
•
•
•

Use CloudFormation!
Know your system
Watch your scaling history
Scaling up is easy, scaling down not so much
Mantra: scale up fast; scale down slow
Cameron Stokes, The Weather Channel
Keith Baker, Nokia
Laurent Rouquette, Adobe
Brandon Adams, Dreambox Learning

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Scaling strategies we use
1. Scaling with CloudWatch alarms
2. Scheduled scaling
3. Scaling with multiple CloudWatch alarm
conditions
A little background on our application
• Ruby on Rails
• Unicorn
• We teach kids math!
A workload well suited for auto scaling
Scaling with CloudWatch alarms
What’s an alarm?
• Measures some
metric in CloudWatch
• Go above or beyond
a threshold, alarm
fires
• Which can trigger an
autoscaling action
Performance test to get a baseline
• Discover the ideal number of
worker processes per server
– Too few and resources go
unused
– Too many and performance
suffers under load

• Obtain the maximum load
sustainable per server
– Our performance tests
measures number of concurrent
users

• Find the chokepoint
– For us, this was CPU utilization
Performance testing
Identify the breaking point

Breaking point was at about 400 users per server
Our first method to find scale points
• Provision a static amount
of servers that we know
can handle peak load
• Adjust scale up and scale
down alarms based on
observed highs and lows
• This worked, but was
super inefficient, both in
time and money spent
Let’s do some math – identify variables
Independent
• Concurrent users

Dependent
• CPU utilization
• Memory utilization
• Disk I/O
• Network I/O
Let’s do some math – find the slope
• Adding about 1600 users per hour
• Which is about 27 per minute
• We know that we can handle a max of
about 400 users per server at 80% CPU
usage
• Which is about 0.2% CPU usage per user
Let’s do some math – when to scale?
• We know (from other testing) that it takes
us about 5 minutes for a new node to
come online
• We’re adding 27 users per minute
• Which means we need to start spinning
up new nodes when we’re about 135
users (27 x 5) per node short of max
• Which is at about 53% utilization:
(80% – (0.2% * 135))
Scaling point equations
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑚𝑎𝑥𝑖𝑚𝑢𝑚 𝑢𝑠𝑒𝑟𝑠 𝑝𝑒𝑟 𝑛𝑜𝑑𝑒 − (𝑢𝑠𝑒𝑟𝑠 𝑎𝑑𝑑𝑒𝑑 𝑝𝑒𝑟 𝑚𝑖𝑛𝑢𝑡𝑒 ∗ 𝑠𝑝𝑖𝑛 𝑢𝑝 𝑡𝑖𝑚𝑒)
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 400 − (27 ∗ 5)
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 users per node

𝑢𝑠𝑒𝑟𝑠
𝑢𝑠𝑒𝑟𝑠
=
−
𝑛𝑜𝑑𝑒
𝑛𝑜𝑑𝑒

𝑢𝑠𝑒𝑟𝑠
𝑚𝑖𝑛𝑢𝑡𝑒𝑠
∗
𝑚𝑖𝑛𝑢𝑡𝑒
𝑛𝑜𝑑𝑒

𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑢𝑠𝑒𝑟𝑠 𝑝𝑒𝑟 𝑛𝑜𝑑𝑒 ∗ 𝑐𝑝𝑢 𝑝𝑒𝑟 𝑢𝑠𝑒𝑟
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 ∗ .2
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 53% cpu per node

𝑐𝑝𝑢
𝑢𝑠𝑒𝑟𝑠 𝑐𝑝𝑢
=
∗
𝑛𝑜𝑑𝑒
𝑛𝑜𝑑𝑒 𝑢𝑠𝑒𝑟
How much to scale up by?
• The lowest we can scale up by is 1 node per AZ;
otherwise, we would be unbalanced
• For us, this is an extra 800 users of capacity in
five minutes, plenty enough to keep up with our
rate of adding 1600 users per hour
• Adding 800 users of capacity every five minutes,
we could support 9600 additional users per hour
Evaluate your predictions
• In the real world, we’ve inched up from
scaling at 53%
• Our perf test is a little harsher than the
real world
• Numbers derived from the perf test are
only as accurate as the simulation of
traffic you specify in your perf test
Scheduled scaling
Acceleration in load is not constant
Request count for a 24 hour period
We can’t use one size fits all
• Scale too aggressively
– Overprovisioning:
increases cost
– Bounciness: we add more
than we need and have to
partially scale back shortly
after scaling up, which
increases cost

• Scale too timidly
– Poor performance
– Outages due to lack of
capacity
Bounciness and steepness
• Add scheduled scaling
points to eliminate
bounciness
• Scheduled scale for the
steepest points of your
demand curve
• Let dynamic scaling
take care of the less
steep parts of the curve
Scaling curve before…

min

min
min

min

min
…and after

min
min
min

min
min
Scaling with multiple
CloudWatch alarm conditions
The need for multiple alarms
• Sometimes we get an unexpected spike in load
that can’t be handled by our normal scaling rules
• We thought we could just add another level of
alarm at a higher CPU utilization level
• However…
Difficulty with multiple alarms
• There is no mechanism to
choose which alarm triggers
an autoscaling action when
multiple alarms are
triggered

• Once an autoscaling action
is triggered by an alarm, we
enter the cool down period,
precluding other alarms
from triggering autoscaling
actions
The solution
• Multiple alarms, multiple
groups
• We have a “high demand”
group that normally has
zero instances
• If we reach a certain
threshold, the high
demand group scales up
to cover the load that the
regular group can’t handle
Putting it all together
Demand curve hugs the usage curve…
…and a (mostly) flat response curve
Please give us your feedback on this
presentation

CPN201
As a thank you, we will select prize
winners daily for completed surveys!

More Related Content

What's hot

Get the Most Bang for your Buck with #EC2 #Winning
Get the Most Bang for your Buck with #EC2 #WinningGet the Most Bang for your Buck with #EC2 #Winning
Get the Most Bang for your Buck with #EC2 #WinningAmazon Web Services
 
KeepingYourInfraCostsLow_SFStartupDay
KeepingYourInfraCostsLow_SFStartupDayKeepingYourInfraCostsLow_SFStartupDay
KeepingYourInfraCostsLow_SFStartupDayAmazon Web Services
 
Getting Started with EC2 Spot - November 2016 Webinar Series
Getting Started with EC2 Spot - November 2016 Webinar SeriesGetting Started with EC2 Spot - November 2016 Webinar Series
Getting Started with EC2 Spot - November 2016 Webinar SeriesAmazon Web Services
 
(ISM402) Cost Optimization at Scale
(ISM402) Cost Optimization at Scale(ISM402) Cost Optimization at Scale
(ISM402) Cost Optimization at ScaleAmazon Web Services
 
AWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs Low
AWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs LowAWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs Low
AWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs LowAWS Germany
 
Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)Julien SIMON
 
Introduction to Amazon Lightsail
Introduction to Amazon LightsailIntroduction to Amazon Lightsail
Introduction to Amazon LightsailAmazon Web Services
 
AWS fault tolerant architecture
AWS fault tolerant architectureAWS fault tolerant architecture
AWS fault tolerant architectureskadyan1
 
AWSome Day 2016 - Module 5: AWS Elasticity and Management Tools
AWSome Day 2016 - Module 5: AWS Elasticity and Management ToolsAWSome Day 2016 - Module 5: AWS Elasticity and Management Tools
AWSome Day 2016 - Module 5: AWS Elasticity and Management ToolsAmazon Web Services
 
台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰
台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰
台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰Amazon Web Services
 
EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...
EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...
EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...rICh morrow
 
Introduction to AWS (October 2017)
Introduction to AWS (October 2017)Introduction to AWS (October 2017)
Introduction to AWS (October 2017)Julien SIMON
 
Picking the right AWS backend for your Java application
Picking the right AWS backend for your Java applicationPicking the right AWS backend for your Java application
Picking the right AWS backend for your Java applicationJulien SIMON
 
AWS Summit Tel Aviv - Startup Track - Architecting for High Availability
AWS Summit Tel Aviv - Startup Track - Architecting for High AvailabilityAWS Summit Tel Aviv - Startup Track - Architecting for High Availability
AWS Summit Tel Aviv - Startup Track - Architecting for High AvailabilityAmazon Web Services
 
Amazon Web Service Sales Role Play - Case Study
Amazon Web Service Sales Role Play - Case StudyAmazon Web Service Sales Role Play - Case Study
Amazon Web Service Sales Role Play - Case StudyVineet Sood
 
Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)Julien SIMON
 
Gaining Operational Insights out of Your Logs
Gaining Operational Insights out of Your LogsGaining Operational Insights out of Your Logs
Gaining Operational Insights out of Your LogsAmazon Web Services
 
AWS Cost Optimisation - November 2018
AWS Cost Optimisation - November 2018AWS Cost Optimisation - November 2018
AWS Cost Optimisation - November 2018James Bromberger
 

What's hot (20)

Get the Most Bang for your Buck with #EC2 #Winning
Get the Most Bang for your Buck with #EC2 #WinningGet the Most Bang for your Buck with #EC2 #Winning
Get the Most Bang for your Buck with #EC2 #Winning
 
KeepingYourInfraCostsLow_SFStartupDay
KeepingYourInfraCostsLow_SFStartupDayKeepingYourInfraCostsLow_SFStartupDay
KeepingYourInfraCostsLow_SFStartupDay
 
Getting Started with EC2 Spot - November 2016 Webinar Series
Getting Started with EC2 Spot - November 2016 Webinar SeriesGetting Started with EC2 Spot - November 2016 Webinar Series
Getting Started with EC2 Spot - November 2016 Webinar Series
 
(ISM402) Cost Optimization at Scale
(ISM402) Cost Optimization at Scale(ISM402) Cost Optimization at Scale
(ISM402) Cost Optimization at Scale
 
AWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs Low
AWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs LowAWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs Low
AWS STARTUP DAY 2018 I Keeping Your Infrastructure Costs Low
 
Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)
 
Introduction to Amazon Lightsail
Introduction to Amazon LightsailIntroduction to Amazon Lightsail
Introduction to Amazon Lightsail
 
AWS fault tolerant architecture
AWS fault tolerant architectureAWS fault tolerant architecture
AWS fault tolerant architecture
 
AWSome Day 2016 - Module 5: AWS Elasticity and Management Tools
AWSome Day 2016 - Module 5: AWS Elasticity and Management ToolsAWSome Day 2016 - Module 5: AWS Elasticity and Management Tools
AWSome Day 2016 - Module 5: AWS Elasticity and Management Tools
 
台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰
台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰
台灣客戶經驗分享: 零售品牌全通路經營-數位轉型新挑戰
 
EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...
EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...
EC2 Pricing Model (deck 0307 of the InfiniteSkills AWS course at http://bit.l...
 
Introduction to AWS (October 2017)
Introduction to AWS (October 2017)Introduction to AWS (October 2017)
Introduction to AWS (October 2017)
 
Picking the right AWS backend for your Java application
Picking the right AWS backend for your Java applicationPicking the right AWS backend for your Java application
Picking the right AWS backend for your Java application
 
AWS Summit Tel Aviv - Startup Track - Architecting for High Availability
AWS Summit Tel Aviv - Startup Track - Architecting for High AvailabilityAWS Summit Tel Aviv - Startup Track - Architecting for High Availability
AWS Summit Tel Aviv - Startup Track - Architecting for High Availability
 
Amazon Lightsail
Amazon LightsailAmazon Lightsail
Amazon Lightsail
 
Amazon Web Service Sales Role Play - Case Study
Amazon Web Service Sales Role Play - Case StudyAmazon Web Service Sales Role Play - Case Study
Amazon Web Service Sales Role Play - Case Study
 
Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)Picking the right AWS backend for your Java application (May 2017)
Picking the right AWS backend for your Java application (May 2017)
 
Gaining Operational Insights out of Your Logs
Gaining Operational Insights out of Your LogsGaining Operational Insights out of Your Logs
Gaining Operational Insights out of Your Logs
 
AWS Cost Optimisation - November 2018
AWS Cost Optimisation - November 2018AWS Cost Optimisation - November 2018
AWS Cost Optimisation - November 2018
 
AWS Partner Presentation - SAP
AWS Partner Presentation - SAP AWS Partner Presentation - SAP
AWS Partner Presentation - SAP
 

Similar to Improving Availability & Lowering Costs with Auto Scaling & Amazon EC2 (CPN201) | AWS re:Invent 2013

More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...Amazon Web Services
 
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...Amazon Web Services
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersAmazon Web Services
 
Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Amazon Web Services
 
T1 – Architecting highly available applications on aws
T1 – Architecting highly available applications on awsT1 – Architecting highly available applications on aws
T1 – Architecting highly available applications on awsAmazon Web Services
 
AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...
AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...
AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...Amazon Web Services
 
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...Amazon Web Services
 
Why Scale Matters and How the Cloud is Really Different (at scale)
Why Scale Matters and How the Cloud is Really Different (at scale)Why Scale Matters and How the Cloud is Really Different (at scale)
Why Scale Matters and How the Cloud is Really Different (at scale)Amazon Web Services
 
Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Amazon Web Services
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersAmazon Web Services
 
Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013
Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013
Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013Amazon Web Services
 
Neev cloud services with AWS
Neev cloud services with AWSNeev cloud services with AWS
Neev cloud services with AWSNeev Technologies
 
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)AWS Summit London 2014 | Improving Availability and Lowering Costs (300)
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)Amazon Web Services
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)Amazon Web Services
 
Scaling on AWS to the First 10 Million Users
Scaling on AWS to the First 10 Million Users Scaling on AWS to the First 10 Million Users
Scaling on AWS to the First 10 Million Users mauerbac
 
Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13Milind Waikul
 
Nuts and bolts of running a popular site in the aws cloud
Nuts and bolts of running a popular site in the aws cloudNuts and bolts of running a popular site in the aws cloud
Nuts and bolts of running a popular site in the aws cloudDavid Veksler
 
Scale, baby, scale!
Scale, baby, scale!Scale, baby, scale!
Scale, baby, scale!Julien SIMON
 
What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?Sébastien ☁ Stormacq
 

Similar to Improving Availability & Lowering Costs with Auto Scaling & Amazon EC2 (CPN201) | AWS re:Invent 2013 (20)

More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
 
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
More Nines for Your Dimes: Improving Availability and Lowering Costs using Au...
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
 
Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20
 
T1 – Architecting highly available applications on aws
T1 – Architecting highly available applications on awsT1 – Architecting highly available applications on aws
T1 – Architecting highly available applications on aws
 
AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...
AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...
AWS Summit Stockholm 2014 – T1 – Architecting highly available applications o...
 
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
AWS Webcast - Introduction to Amazon RDS: Low Admin, High Performance Databas...
 
Why Scale Matters and How the Cloud is Really Different (at scale)
Why Scale Matters and How the Cloud is Really Different (at scale)Why Scale Matters and How the Cloud is Really Different (at scale)
Why Scale Matters and How the Cloud is Really Different (at scale)
 
Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
 
Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013
Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013
Scaling on AWS for the First 10 Million Users (ARC206) | AWS re:Invent 2013
 
Neev cloud services with AWS
Neev cloud services with AWSNeev cloud services with AWS
Neev cloud services with AWS
 
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)AWS Summit London 2014 | Improving Availability and Lowering Costs (300)
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)
 
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
AWS Summit London 2014 | Scaling on AWS for the First 10 Million Users (200)
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
Scaling on AWS to the First 10 Million Users
Scaling on AWS to the First 10 Million Users Scaling on AWS to the First 10 Million Users
Scaling on AWS to the First 10 Million Users
 
Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13
 
Nuts and bolts of running a popular site in the aws cloud
Nuts and bolts of running a popular site in the aws cloudNuts and bolts of running a popular site in the aws cloud
Nuts and bolts of running a popular site in the aws cloud
 
Scale, baby, scale!
Scale, baby, scale!Scale, baby, scale!
Scale, baby, scale!
 
What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?What is Amazon Web Services & How to Start to deploy your apps ?
What is Amazon Web Services & How to Start to deploy your apps ?
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Improving Availability & Lowering Costs with Auto Scaling & Amazon EC2 (CPN201) | AWS re:Invent 2013

  • 1. AWS Console for iOS and Android View resources on the go! Supports EC2, ELB, RDS, and Auto Scaling. We are rapidly building support for more services. Download Now Search “AWS” in any app store or go to... Amazon Appstore: http://bit.ly/consoleAmazon iTunes: http://bit.ly/consoleiOS Google Play: http://bit.ly/consoleGooglePlay
  • 2. More Nines for Your Dimes: Improving Availability and Lowering Costs Using Auto Scaling and Amazon EC2 Derek Pai, AWS Cameron Stokes, The Weather Channel Keith Baker, Nokia Laurent Rouquette, Adobe Brandon Adams, Dreambox Learning November 15, 2013 © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 3. Some topics we’ll cover today • The Weather Channel – Maintaining application response times and fleet utilization rates – Handling cyclical demand and unexpected “weather events” • Nokia – Static Auto Scaling for non-critical applications – Auto Scaling for 99.9% Uptime • Adobe – Cost control and asymmetric scaling responses – AWS CloudFormation, custom scripts, and multiple inputs • Dreambox – Using performance testing to choose scaling strategies – Dealing with bouncy or steep curves
  • 4. Cameron Stokes, The Weather Channel Keith Baker, Nokia Laurent Rouquette, Adobe Brandon Adams, Dreambox Learning © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 7. Who We Are • • • • Top 30 web property in the U.S. 2nd most viewed television channel in the U.S. 85% of U.S. airlines depend on our forecasts Major retailers base marketing spend and store displays based on our forecasts
  • 8. Who We Are “The Weather Channel has an unduplicated audience of 163 million unique visitors monthly across The Weather Channel TV and weather.com platforms.” - Frank N. Magid Associates, Q3 2012
  • 10. Why AWS? It’s hurricane season in 2012. We’re capacity constrained. What can we do…
  • 11. Why AWS? Identify “mobile” workload and move it to AWS... Radar images on wunderground.com.
  • 20. Radar on AWS CPU Utilization
  • 31. Challenges Lots of knobs and switches to get right …or wrong
  • 32. Cameron Stokes, The Weather Channel Keith Baker, Nokia Laurent Rouquette, Adobe Brandon Adams, Dreambox Learning © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 34. Clickwork Annotation • • • • • • Internal annotation application ~100 users All hourly contractors Downtime is acceptable Port of existing single-server application Perfect first step into AWS
  • 35. Architecture www.clickworksite.com S3 Repository Bucket S3 Backup Bucket Django Web App Postgresql DB EBS Volume 1 Manual Taggers Elastic Load Balancing (SSL Termination) EC2 Instance EBS Volume 2 Data Volume Auto Scaling Group Cloudwatch Availability Zone #1 Periodic Snapshots
  • 36. Clickwork Details • Single AZ, Single Instance maintained by Autoscaling. Instance failures take ~15 min to recover. • Upgrades are done with planned downtime via a fully scripted re-deployment also ~15 min unless database schema is updated.
  • 37. Clickwork Details • While uptime is flexible our data is precious – 2 EBS Volumes in Software RAID 1 – Periodic Postgres backups to S3 • Daily for first 18 months • Increased to hourly – Manual EBS snapshots today
  • 38. Clickwork Details • Using Auto Scaling means the system cannot be configured by hand in any way and has to recover itself • Deployment uses Masterless Puppet – Puppet tree built into an RPM & pushed into S3 as Yum Repo – CloudInit • Set up S3 Yum Repositories • Install Puppet RPM • Run Puppet – Puppet • • • • Installs needed packages Mounts EBS volumes (id’s stored in launch config data) Configures / Mounts RAID 1 Starts Postgres & Apache
  • 39. Clickwork Results • Successful deployment of Nokia’s first AWS application • Drastically Increased uptime over ‘server in a closet’ – Previously, outages exceeded 2 days each • A/C • Power • Network – Design goal was max 1 day outage – 2 outages over 1 hour • 2 hours (8.25.2013 EBS Event) • 9 hours (10.22.2012 EBS Event)
  • 41. Local Search • First customer facing application on AWS • Obvious need for Uptime
  • 42. Local Search Architecture US-West-2 Frontend Group Zookeeper1 Zookeeper1 Frontend Group Zookeeper2 EU-West-1 Zookeeper2 AP-Southeast-1 Backend Groups Zookeeper3 Zookeeper3 US-East-1a US-East-1 Backend Groups US-East-1b
  • 43. Local Search Single Instance Auto Scaling Groups • Instances in 1 node Auto Scaling groups automatically register themselves in DNS via Route53 based on their Auto Scaling group’s name. • Auto Scaling group names are formed as a pattern with cluster name and node type so a cluster1-frontend node knows to look for cluster1-zookeeper1, cluster1zookeeper2… • An alternative was querying the Auto Scaling group for instances. Using DNS allowed us to use more standard tools.
  • 44. Local Search Zookeepers • • • • • • • • Three single instance Auto Scaling groups Zookeeper needs a set, consistent list of servers across all servers (zookeeper1, zookeeper2, zookeeper3) At launch, zookeeper didn’t re-resolve hostnames on the server side. We proxy Zookeeper through localhost inetd & netcat to cause a DNS lookup on each connection Client had been fixed at this point Requires a short DNS timeout but rather low usage (only on reconnects) Considered one zookeeper per AZ. One region we deploy in only has two AZs so we can’t lose either AZ and maintain quorum. So we run one cluster in each AZ. We have lost all three zookeepers in one AZ, which caused one AZ to go offline. This failure was handled by the ELB. Auto Scaling fixed this in ~15 min. Avoided EIPs
  • 45. Local Search Logging • • • • • • Again a single instance Auto Scaling group Buffers logs for entire cluster Does compression, encryption, and uploads to S3 Forwards to central logging system for analysis Single point of investigation for entire cluster All instances also run scribe to buffer if logging node is lost
  • 46. Local Search Updates • Moving to a job that monitors the available data vs. the present data • When new data is present the job takes a lock in zookeeper for cluster size changes. It then increases the node count and waits for the Auto Scaling message that capacity has changed. It unlocks the cluster size changes and monitors the loading of the new node. • Other nodes can then lock and modify the capacity to get their own replacement nodes • Once new nodes are loaded, the old nodes take a lock and decease the cluster size with a targeted kill to themselves • Care taken to track a failed replacement node
  • 47. Local Search Success • All detected health problems have been successfully replaced by autoscaling with zero intervention. We’ve been paranoid so it still pages us, it’s beginning to feel silly • Zookeeper setup has performed flawlessly • Undetected problems are our biggest challenge – Disk failure – Intermittent connectivity failures
  • 48. Cameron Stokes, The Weather Channel Keith Baker, Nokia Laurent Rouquette, Adobe Brandon Adams, Dreambox Learning © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 50. Goals • Meet demand • Control costs • Maintain capacity
  • 52. Scaling the web layer • Number of HTTP requests • Average CPU load • Network in/out
  • 53. Scaling the worker layer • SQS queue length, specifically "approximate number of messages visible"
  • 54. Scaling Down: who wants to volunteer? • Know your usage • Scale up fast, scale down slow
  • 55. Cost Control • Scheduled scaling: we analyzed our traffic and picked numbers. – scale up in the morning, scale down in the evening • Policies for slow scale down • Stage environments: downscale everything to “min-size” daily (or more)
  • 56. How – AWS CloudFormation "ScaleUpPolicy" : { "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AdjustmentType" : "ChangeInCapacity", "AutoScalingGroupName" : { "Ref" : "WorkerAutoScalingGroup" }, "Cooldown" : {"Ref": "cooldown"}, "ScalingAdjustment" : { "Ref" : "adjustup" } } }, "WorkerAlarmScaleUp": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "EvaluationPeriods":{"Ref" : "evalperiod"}, "Statistic": "Sum", "Threshold": {"Ref" : "upthreshold"}, "AlarmDescription": "Scale up if the work load of transcode queue is high", "Period": {"Ref" : "period"}, "AlarmActions": [ { "Ref": "ScaleUpPolicy" }, { "Ref" : "scalingSNStopic" } ], "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": {"Ref" : "queuename" }}], "ComparisonOperator": "GreaterThanThreshold", "MetricName": "ApproximateNumberOfMessagesVisible" } },
  • 57. How – custom scripts . . . [2013-10-08T00:00:14.31] INFO -- : Scaling Worker1 with CAPACITY 10 (schedule=BIZPM) [2013-10-08T00:00:24.70] INFO -- : PROD-A-Worker1-3276-ASG-1VUVI7JI1M19U has max size 0; most likely not active environment; no action taken PROD-B-Worker1-3484-ASG-H2QX6HC82SLQ is active; resetting capacity: current: 20; new: 10 Result: OK-Desired Capacity Set [2013-10-08T00:00:24.70] INFO -- : Scaling Worker2 with CAPACITY 7 (schedule=BIZPM) [2013-10-08T00:00:34.98] INFO -- : PROD-A-Worker2-3275-ASG-LY3NHN8C7A82 has max size 0; most likely not active environment; no action taken PROD-B-Worker2-3483-ASG-70MUBNNP3QV0 is active; resetting capacity: current: 15; new: 7 Result: OK-Desired Capacity Set . . .
  • 58. How – Custom Metrics . . . Sat Oct 6 05:51:03 UTC 2012 Number of AZs: 4 Number of Web Servers: 16 Number of Healthy Web Servers: 16 ELB Request Count: 9523.0 Request Count Per Healthy Web Server: 595.1875 Network In Per Healthy Web Server: 51 MB Network Out Per Healthy Web Server: 1 MB CPU Per Healthy Web Server: 25.23875 Publishing Custom Metrics: InstanceRequestCount, HealthyWebServers, InstanceNetworkIn, InstanceNetworkOut, InstanceCPUUtilization to namespace WebServer in us-east-1 . . .
  • 59. How – multi-input scaling • Scale up • +2 instances if more than 50 visible messages for more than 5 min • +50% instances if more than 1000 msg for more than 2 min • + fixed 100 instances if more than 10,000 msg for more than 1 min • Scale down • –10 instance if 0 msg for more than 10 min • – 25% if 0 msg for more than 30 min
  • 60. Advice • • • • • Use CloudFormation! Know your system Watch your scaling history Scaling up is easy, scaling down not so much Mantra: scale up fast; scale down slow
  • 61. Cameron Stokes, The Weather Channel Keith Baker, Nokia Laurent Rouquette, Adobe Brandon Adams, Dreambox Learning © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 62. Scaling strategies we use 1. Scaling with CloudWatch alarms 2. Scheduled scaling 3. Scaling with multiple CloudWatch alarm conditions
  • 63. A little background on our application • Ruby on Rails • Unicorn • We teach kids math!
  • 64. A workload well suited for auto scaling
  • 66. What’s an alarm? • Measures some metric in CloudWatch • Go above or beyond a threshold, alarm fires • Which can trigger an autoscaling action
  • 67. Performance test to get a baseline • Discover the ideal number of worker processes per server – Too few and resources go unused – Too many and performance suffers under load • Obtain the maximum load sustainable per server – Our performance tests measures number of concurrent users • Find the chokepoint – For us, this was CPU utilization
  • 69. Identify the breaking point Breaking point was at about 400 users per server
  • 70. Our first method to find scale points • Provision a static amount of servers that we know can handle peak load • Adjust scale up and scale down alarms based on observed highs and lows • This worked, but was super inefficient, both in time and money spent
  • 71. Let’s do some math – identify variables Independent • Concurrent users Dependent • CPU utilization • Memory utilization • Disk I/O • Network I/O
  • 72. Let’s do some math – find the slope • Adding about 1600 users per hour • Which is about 27 per minute • We know that we can handle a max of about 400 users per server at 80% CPU usage • Which is about 0.2% CPU usage per user
  • 73. Let’s do some math – when to scale? • We know (from other testing) that it takes us about 5 minutes for a new node to come online • We’re adding 27 users per minute • Which means we need to start spinning up new nodes when we’re about 135 users (27 x 5) per node short of max • Which is at about 53% utilization: (80% – (0.2% * 135))
  • 74. Scaling point equations 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑚𝑎𝑥𝑖𝑚𝑢𝑚 𝑢𝑠𝑒𝑟𝑠 𝑝𝑒𝑟 𝑛𝑜𝑑𝑒 − (𝑢𝑠𝑒𝑟𝑠 𝑎𝑑𝑑𝑒𝑑 𝑝𝑒𝑟 𝑚𝑖𝑛𝑢𝑡𝑒 ∗ 𝑠𝑝𝑖𝑛 𝑢𝑝 𝑡𝑖𝑚𝑒) 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 400 − (27 ∗ 5) 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 users per node 𝑢𝑠𝑒𝑟𝑠 𝑢𝑠𝑒𝑟𝑠 = − 𝑛𝑜𝑑𝑒 𝑛𝑜𝑑𝑒 𝑢𝑠𝑒𝑟𝑠 𝑚𝑖𝑛𝑢𝑡𝑒𝑠 ∗ 𝑚𝑖𝑛𝑢𝑡𝑒 𝑛𝑜𝑑𝑒 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑢𝑠𝑒𝑟𝑠 𝑝𝑒𝑟 𝑛𝑜𝑑𝑒 ∗ 𝑐𝑝𝑢 𝑝𝑒𝑟 𝑢𝑠𝑒𝑟 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 ∗ .2 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 53% cpu per node 𝑐𝑝𝑢 𝑢𝑠𝑒𝑟𝑠 𝑐𝑝𝑢 = ∗ 𝑛𝑜𝑑𝑒 𝑛𝑜𝑑𝑒 𝑢𝑠𝑒𝑟
  • 75. How much to scale up by? • The lowest we can scale up by is 1 node per AZ; otherwise, we would be unbalanced • For us, this is an extra 800 users of capacity in five minutes, plenty enough to keep up with our rate of adding 1600 users per hour • Adding 800 users of capacity every five minutes, we could support 9600 additional users per hour
  • 76. Evaluate your predictions • In the real world, we’ve inched up from scaling at 53% • Our perf test is a little harsher than the real world • Numbers derived from the perf test are only as accurate as the simulation of traffic you specify in your perf test
  • 78. Acceleration in load is not constant Request count for a 24 hour period
  • 79. We can’t use one size fits all • Scale too aggressively – Overprovisioning: increases cost – Bounciness: we add more than we need and have to partially scale back shortly after scaling up, which increases cost • Scale too timidly – Poor performance – Outages due to lack of capacity
  • 80. Bounciness and steepness • Add scheduled scaling points to eliminate bounciness • Scheduled scale for the steepest points of your demand curve • Let dynamic scaling take care of the less steep parts of the curve
  • 84. The need for multiple alarms • Sometimes we get an unexpected spike in load that can’t be handled by our normal scaling rules • We thought we could just add another level of alarm at a higher CPU utilization level • However…
  • 85. Difficulty with multiple alarms • There is no mechanism to choose which alarm triggers an autoscaling action when multiple alarms are triggered • Once an autoscaling action is triggered by an alarm, we enter the cool down period, precluding other alarms from triggering autoscaling actions
  • 86. The solution • Multiple alarms, multiple groups • We have a “high demand” group that normally has zero instances • If we reach a certain threshold, the high demand group scales up to cover the load that the regular group can’t handle
  • 87. Putting it all together
  • 88. Demand curve hugs the usage curve…
  • 89. …and a (mostly) flat response curve
  • 90. Please give us your feedback on this presentation CPN201 As a thank you, we will select prize winners daily for completed surveys!