Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
High Performance Web Applications
Search
Matt Wood
October 29, 2012
Technology
700
6
Share
High Performance Web Applications
Building high performance web applications on AWS.
Matt Wood
October 29, 2012
More Decks by Matt Wood
See All by Matt Wood
Field Notes from Expeditions in the Cloud
mza
2
490
A Platform for Big Data
mza
6
840
The Data Lifecycle
mza
5
580
Provision Throughput Like a Boss
mza
0
520
Impact of Cloud Computing: Life Sciences
mza
2
920
Latency's Worst Nightmare: Performance Tuning Tips and Tricks
mza
4
1.2k
Under the Covers of DynamoDB
mza
4
1.2k
From Analytics to Intelligence: Amazon Redshift
mza
9
1.1k
Scaling Science
mza
3
570
Other Decks in Technology
See All in Technology
The Making of AI Chips
pfn
PRO
0
760
Generative UI × A2UI で AI エージェントを作った話 AI-DLC も使ってみた!
kmiya84377
1
140
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
180
AI とサービス・デザイン / AI and Service Design
ks91
PRO
0
170
TypeScriptとAngular Signal で実現する保守性の高いアプリケーション設計 - 3層アーキテクチャによる責務分離の実践(たつかわ) https://2026.tskaigi.org/talks/10
nealle
1
340
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
860
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
0
410
イベントで大活躍する電子ペーパー名札 〜その3〜 / ビジュアルプログラミングIoTLT vol.23
you
PRO
0
130
既存プロダクトQAから新規プロダクトQAへ
ryotakahashi
0
200
管理アカウント単一運用からAWS Organizationsに移行するの大変で滅
hiramax
0
220
layerx-fde-practices
cipepser
6
2.7k
AIが変えた"品質の守り方"
kkakizaki
4
1.6k
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
570
Between Models and Reality
mayunak
4
300
RailsConf 2023
tenderlove
30
1.4k
The SEO identity crisis: Don't let AI make you average
varn
0
470
Utilizing Notion as your number one productivity tool
mfonobong
4
310
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
170
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Why Our Code Smells
bkeepers
PRO
340
58k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
High Performance Web Applications
[email protected]
Dr. Matt Wood @mza
Hello
Building blocks for wonderful applications Storage, compute, databases, managed services
None
Retail Merchant services Web services
Retail Merchant services Web services
Getting started with Amazon Web Services quick review H
Utility computing Available at the end of an API call.
Metered billing. H
Family of 20 services Adding new services and refinement weekly.
Rapid rate of innovation. H
Undi!erentiated heavy lifting Focus on your app, customers and business
H
H
aws.amazon.com H Free account. Free tier.
Building High Performance Web Applications r
Deliver a great experience to your customers. Responsive, fast web
applications. r
g DECOUPLED SCALE OUT S OPTIMIZE COST FOR C AUTOMATE
v CALIBRATED FOR: CPU performance v CALIBRATED FOR: IO performance 5patterns for performance
g DECOUPLED
Monolithic Mega System v2
Application Assets Analytics
Application Assets Analytics
Images, javascript, stylesheets, HTML pages Deliver as fast as possible
to customers r
Websites without the servers Highly durable: 99.999999999% Zero config: fire
and forget r
None
Low latency delivery of assets Local caching for fast downloads
Amazon CloudFront r
P P
Create content distributions From objects in S3 Any custom origin
Dynamic, streaming and static content r
P P P
CNAME? Map to any custom URL assets.domain.com, www.domain.com r
Application Assets Analytics
Application Assets Analytics
Application architecture Small things, loosely coupled r
Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Shared responsibility Infrastructure by AWS OS, application and data by
customers Tools to help meet best practices r
Security groups Customer controlled firewalls All ports are closed by
default r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
x
Decoupling provides an architectural framework for performance Easier to separate
concerns: assets, streaming, etc. Easier to manage and scale. r
SCALE OUT
Elasticity is a tenet of the cloud Scale up when
you need to Scale down when you don’t r
Predictable peaks r Time Demand Capacity
Predictable peaks r Time Demand Capacity
Variable usage r Time Demand Capacity
Variable usage r Time Demand Capacity
Variable usage r Time Demand
Horizontal scaling drives performance up ...and costs down r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Amazon Machine Images encapsulate your app Customize your virtual machines
AMI can be the unit of deployment r
1. Spin up a new instance using your AMI Configured
to bootstrap the app. r
2. Pull down latest code base From S3 or code
repository r
3. Start up the app on the instance Ready to
receive requests r
4. Register with the load balancer Job done. r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Horizontal scaling allows for fault tolerance r
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing :( Application Assets
Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Deploying and scaling a datastore r Follow the same patterns:
horizontal scale, availability, automation.
One question: r Does your application require a strict, controlled
schema for query flexibility?
Amazon Relational Database Service r Management systems: CRM, ERP, finance
Does your application require a strict, controlled schema for query flexibility? Yes
Focus on your app r Handles tedious database admin tasks
Designed for availability
Multi-engine r MySQL, Oracle, Microsoft SQL Server Up and running
in six clicks
Point in time snapshots r Automatic. Easy recovery.
High availability r Deployed across multiple availability zones. Synchronous writes.
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Read replicas r Perfect for read heavy applications. Asynchronous writes.
Replication metrics available.
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Amazon DynamoDB r Web apps, social apps, mobile apps, user
generated content, unstructured data integration, lots of data. Does your application require a strict, controlled schema for query flexibility? No
Focus on your app r Managed NoSQL database service. No
schema.
Unlimited scale r Unlimited storage Pay as you go
High performance r Single digit millisecond latencies
Zero admin r No instances to manage Tiny API, perfectly
formed
Load balancer App servers Database Asynchronous processing Application Assets Analytics
Asynchronous processing r Resize images. Transcode movies. Resample media.
Follow the same best practices r Decouple. Stateless. Horizontal scale.
Load balancer App servers Database Asynchronous processing Application Assets Analytics
CloudFront for dynamic content r Edge caching for dynamic content
Cache by query string parameters Multiple origin servers Persistent connections to origin servers
C AUTOMATE
Automate everything The tedious. The time consuming. The error prone.
r
For example: when increasing capacity Launch instance. Update application code.
Register with load balancer. r
Auto-scaling CloudWatch Auto-scaling service Elastic Load Balancer r
Set operational thresholds Network capacity > 80% Memory utilization >
75% CPU < 50% r
Automatically respond to operational alarms r Network capacity > 80%:
add instances Memory utilization > 75%: add instances CPU < 50%: remove instances
Set bounds Step change configured by number or percentage of
instances r
Custom metrics Respond to custom metrics Page load time Database
query time r
Automatic load balancer configuration Instances added/removed automatically Health check for
running application before routing tra"c r
Stateless operations are important Decoupled, but stateless Instances are naive
to other instances r
Treat your data as a royal garden Backup to S3:
high durability Compute is a disposable resource r
v CALIBRATED FOR: CPU performance
Range of resources Choose the best instance type for performance
r
r t1.micro m1.small cc2.8xlarge
r t1.micro m1.small cc2.8xlarge High memory High CPU High CPU
+ memory
Load balancer App servers Database Asynchronous processing Application Assets Analytics
1 instance for 100 hours = 100 instances for 1
hour
Balance cost/performance Mix instance types for application servers, databases, ancillary
services, analytics etc. r
Migrate to large instance types As your application grows Use
64 bit from the outset, if possible r
v CALIBRATED FOR: IO performance
IO bound web applications are more common Application requires predictable,
consistent IO r
Provisioned throughput with DynamoDB No need to provision storage Provision
IO requirements: reads and writes per second r
None
None
None
None
Scale up, and carry on DynamoDB will manage resources to
achieve and maintain throughput r
Low latency, unlimited scale Writes acknowledged when saved to disk
in multiple data centres. Backed on SSDs. r
...and SSDs for all
hi1.4xlarge instances High capacity, high performance storage 2 x 1Tb
SSD drives r
Perfect match for databases Relational and NoSQL storage r
Perfect match for databases Relational and NoSQL storage 90k to
120k IOPS r
High performance network 10 gigabit ethernet Placement groups Perfect for
distributed stores r
S OPTIMIZE COST FOR
Economies of scale Drive down prices for customers 20 price
drops in past 6 years r
Maximize utilization Greater utilization drives down cost r
Reserved capacity Time Utilization
Reserved instances Small upfront payment Guaranteed capacity for 1 or
3 years Lower hourly rate r
Reserved instance resale Sell your reservations on the resale market
Sellers set your own price Buyers select and check out r
Reserved capacity Time Utilization
Reserved capacity On-demand Time Utilization
Reserved capacity On-demand Time Utilization
Spot instances Name your price computing r
Spot instances Lower costs ‘Overclock’ your app: more bang for
your buck r
Load balancer App servers Database on SSDs Asynchronous processing Application
Assets Analytics
Load balancer App servers Database on SSDs Asynchronous processing Application
Assets Analytics
Load balancer App servers Database on SSDs Asynchronous processing Application
Assets Analytics
Become price aware Price is a driver of your architecture
r
Automated bidding Automate bids based on on-demand price Run on
spot only when cost e!ective r
Continuous cost optimization Evaluate your reserved instance/on-demand/ spot mix regularly
as app requirements change r
5patterns for performance g DECOUPLED
5patterns for performance g DECOUPLED SCALE OUT
5patterns for performance g DECOUPLED SCALE OUT S OPTIMIZE COST
FOR
5patterns for performance g DECOUPLED SCALE OUT S OPTIMIZE COST
FOR v CALIBRATED FOR: CPU performance v CALIBRATED FOR: IO performance
5patterns for performance g DECOUPLED SCALE OUT S OPTIMIZE COST
FOR v CALIBRATED FOR: CPU performance v CALIBRATED FOR: IO performance C AUTOMATE
Thank you aws.amazon.com @mza
[email protected]