Professional Documents
Culture Documents
Technology Evangelist
jvaria@amazon.com
Architectural
Design Patterns in
Cloud Computing
Scalability
No Up-Front
Costs
Efficiency of
Experts
TheCloud
Cloud
The Living and Evolving
AWS services and features
Most Applications Need:
1. Compute
2. Storage
3. Messaging
4. Payment
5. Distribution
6. Scale
7. Analytics
The Living
and Evolving
At Amazon,
Every
Day is a Cloud
Launch Day
New Features and Services
Amazon RDS
High-Memory Instances
Lower EC2 Pricing
Amazon
S3 Versioning Feature
Elastic Load Balancing
Elastic Load Balancing in EU
AWS Management Console
Consolidated Billing for AWS
Lower pricing for Outbound Data
Transfer
Scalability
Build Scalable Architecture on AWS
1.
2.
3.
4.
5.
6.
7.
YourWebTwoDotZeroName.com
EC2 Instance A
EC2 Instance B
EC2 Instance A
DATA
Volume
Availability Zone 2
Availability Zone 1
YourWebTwoDotZeroName.com
EC2 Instance B
LOG
Volume
LOG
Volume
Amazon S3
DATA
Volume
Independent components
Design everything as a Black Box
De-coupling for Hybrid models
Load-balance clusters
Controller A
Loose Coupling
using Queues
Controller B
Q
Controller A
Controller C
Q
Controller B
Controller C
MyWebSite.com
Exterior Firewall Hardware
or Software Solution to open
standard Ports (80, 443)
LB
Web Tier
Fleet of machines handling
HTTP requests.
Web Server
Web Server
LB
App Server
App Server
App server
backups stored on
Tapes usually
managed by 3rd
party at their site
Data Tier
Database Server machines with
master and local running
separately, Network storage for
Static objects
Backups on
Tapes Periodic
MySQL
Master
MySQL
(Slave)
Tapes
MyWebSite.com
DNS
Elastic Load Balancer
ELB to spread traffic to Web
Server Auto-scaling groups
Web Server
Web Server
Web Server
Web Server
Edge Caching
High Volume
Static
Content is edge
cached using
CloudFront
SLB
App Server
App Server
Tomcat
App Server
App Server
Tomcat
RDS
Master
RDS
Slave
Cloud
Front
DB Tier
MySQL RDS DB Instances
(master, local slave, x-AZ slave
for failover) , Automated
backups to S3 all managed by
AWS
Availability Zone #1
RDS
Slave
Amazon
S3
Availability Zone 2
Availability Zone #n
Backups
Amazon S3 used
for storing Static
Objects and
Backups
3. Implement Elasticity
Elasticity is fundamental property of the Cloud
Managed
Development
3. Implement
Elasticity
3 Usecases
Environment
Dev/Test
Apps
Prod
Paid
AMI
SaaS
Managed
Development
Environment
Automated
Deployment
Environment
Cloud-powered
Software Lifecycle
management
AWS Cloud
AWS Cloud
AWS Cloud
ISV
Startup
Enterprise IT
3. Implement Elasticity
Standardized
StandardizedTechnology
Application Stacks Stacks
Apache
IIS
Web
Server
ASP.NET
Mongrel
Tomcat
App
Server
ASP.NET
Struts
RailsMVC
MVC
Your Code
Log4Net
logger
Log4J
Libraries
Spring.NET
RubyGems
Spring
Packages
memcached
nHibernate
Hibernate
DB
Caching
Ruby
Runtime
.NET
JEE
Framework
Windows
Centos
Linux
OS
Java Stack
.NET Stack
RoR stack
3. Implement Elasticity
3 Approaches
to design
MDE
3 approaches to designing
your AMIs
Easier to Setup
3. Implement Elasticity
3 Approaches
to design
MDE
1. Frozen Pizza
Model
IIS
ASP.NET
IIS
IIS
ASP.NET MVC
Your Code
ASP.NET MVC
Your Code
IIS
IIS
IIS
IIS
ASP.NET MVC
IIS
ASP.NET MVC
IIS
IIS
Log4Net
Log4Net
Your Code
Spring.NET
nHibernate
Spring.NET
Spring.NET
.NET
Your
Code
ASP.NET MVC
Your Code
Log4Net
Your Code
Spring.NET
Log4Net
nHibernate
Spring.NET
.NET
nHibernate
Log4Net
Spring.NET
nHibernate
.NET
Windows
Windows
.NET
Windows
.NET
Windows
Windows
.NET Stack
.NET
Windows
nHibernate
nHibernate
ASP.NET MVC
IIS
Log4Net
.NET AMI
Amazon EC2
3. Implement
Elasticity
Golden
AMIs with fetch on
boot
3 Approaches
toPizza
design
2. Papa Murphy
Model MDE
IIS
Source Control
Your Code
IIS
ASP.NET MVC
Your Code
ASP.NET MVC
Log4Net
nHibernate
Spring.NET
IIS
Amazon S3
Log4Net
Spring.NET
IIS
.NET
IIS
IIS
IIS
IIS
IIS
IIS
Windo .NET
ws
Windo .NET
ws
Windo
ws
IIS
.NET
Windo
ws
IIS
nHibernate
.NET
.NET
Windows
Windows
.NET Stack
.NET AMI
Amazon EC2
3. Implement Elasticity
3 Approaches
toPizza
design
3. Made to Order
Model MDE
Apache
Source Control
Cookbooks
Recipes
Your Code
Mongrel
Rails
Your Code
logger
ASP.NET MVC
Log4Net
.NET
IIS
nHibernate
IIS
Chef Server
Spring.NET
Amazon S3
CHEF
Agent
RubyGems
Windows
memcached
CHEF Agent
Ruby Runtime
Windows
Centos
RoR Stack
AMI (JeOS)
Amazon EC2
3. Implement Elasticity
3 Approaches
to design
MDE
3 approaches to designing
your AMIs
Easier to Setup
Hardware Config
does not match?
Implement Elasticity
Performance
Caching at different levels (Page, Render, DB)
6. Think Parallel
Serial and Sequential is now history
Amazon
Amazon
Amazon
Amazon
Amazon
Amazon
Amazon EC2
Ephemeral
Store
Amazon EBS
Amazon
SimpleDB
Amazon RDS
Storing Large
write-once,
read-many
types of
objects, Static
Content
Distribution
Media files,
audio, video,
images,
Backups,
archives,
versioning
Storing nonpersistent
transient
updates
Off-instance
persistent
storage for any
kind of data,
Storing and
querying
structured
Relational and
referential
Data
Config Data,
scratch files,
TempDB
Clusters, boot
data, Log or
data of
commercial
RDBMS like
Oracle, DB2
Complex
transactional
systems,
inventory
management
and order
fulfillment
systems
Not
recommended
for
Querying,
Searching
Not
recommended
examples
Database, File
Systems
Storing
Database logs
or backups,
customer data
Sensitive data Content
Distribution
Querying,
Mapping,
tagging, clickstream logs,
metadata,
shared-state
management,
indexing
Relational (joins)
query
OLTP, DW cube
rollups
Simple
lookups
Ideal for
Ideal examples
1.
2.
3.
4.
5.
6.
7.
AWS Ecosystem
AWS Community
Migrating
a Web Application
to AWS
P h o t o : L a Pe d r e ra - C a s a M i l , B a rc e l o n a - A n t o n i o G a u d i
Compute Power
Storage capacity
Content Distribution
Database storage
Messaging
Load balancing
Monitoring
Database
Application Server /
Business Logic
Web Server /
Presentation Layer
Client Browser
Client Browser
Client Browser
Client Browser
SQS
Client Browser
SQS
Client Browser
SimpleDB
SQS
SimpleDB
Compute Power
Storage capacity
Content Distribution
Database storage
Messaging
Load balancing
Monitoring
With AWS:
Amazon EC2
Amazon S3
Amazon CloudFront
Amazon EBS
Amazon SQS
Amazon EC2
Amazon CloudWatch
Conclusions
Thank you!
jvaria@amazon.com Twitter:@jinman
Presentation idea and template from @simon
http://aws.amazon.com