SlideShare ist ein Scribd-Unternehmen logo
1 von 77
Downloaden Sie, um offline zu lesen
Scaling the Platform for your
Startup
Andreas Chatzakis, AWS Solutions Architecture
Peter Mounce, Senior Software Developer at JUST EAT
15th April 2015, AWS London Summit
Why are you here?
•  Building the technology platform for your startup
•  You want to prepare for success
•  Learn about design patterns & scalability
•  A pragmatic approach for startups
Priorities for startups
•  Racing within a window of opportunity
•  Small team with no legacy
•  Focus on solving a problem
•  Avoid over-engineering & re-engineering
•  Reduce risk of failure when you go viral
A scalable architecture
•  Can support growth in users, traffic, data size
•  Without practical limits
•  Without a drop in performance
•  Seamlessly - just by adding more resources
•  Efficiently - in terms of cost per user
Day 1 – Dev & private beta
Single host
THE server
(e.g. Apache,
MySQL)
Elastic IP
www.example.com
Amazon Route 53
DNS service
Server Image (AMI)
Day 2 - Public beta
We need a bigger server
•  Add larger & faster storage (EBS)
•  Use the right instance type
•  Easy to change instance sizes
•  Not our long term strategy
•  Will hit an endpoint eventually
•  No fault tolerance
Separating web and DB
•  More capacity
•  Scale each tier individually
•  Tailor instance for each tier
–  Instance type
–  Storage
•  Security
–  Security groups
–  DB in a private VPC subnet
But how do I choose what
DB technology I need?
SQL? NoSQL?
Why start with a Relational DB?
•  SQL is versatile & feature-rich
•  Lots of existing code, tools, knowledge
•  Clear patterns to scalability (for read-heavy apps)
•  Reality: eventually you will have a polyglot data layer
–  There will be workloads where NoSQL is a better fit
–  Use the right tool for each workload
Key Insight: Relational Databases are Complex
•  Our experience running Amazon.com taught us that
relational databases can be a pain to manage and
operate with high availability
•  Poorly managed relational databases are a leading
cause of lost sleep and downtime in the IT world!
•  Especially for startups with small teams
Relational Databases
MySQL, Aurora, PostgreSQL, Oracle, SQL Server
Fully managed; zero admin
Amazon
RDS
Aurora
Improving efficiency
Offload static content
•  Amazon S3: highly available hosting that scales
–  Static files (JavaScript, CSS, images)
–  User uploads
•  S3 URLs – serve directly from S3
•  Let the web server focus on dynamic content
Amazon CloudFront
•  Worldwide network of edge locations
•  Cache on the edge
–  Reduce latency
–  Reduce load on origin servers
–  Static and dynamic content
–  Even few seconds caching of popular content can have huge impact
•  Connection optimizations
–  Optimize transfer route
–  Reuse connections
–  Benefits even non cachable content
CloudFront
CloudFront for static & dynamic content
Amazon
Route 53
EC2 instance(s)
S3 bucket
Static content
Dynamic content
css/*
js/*
Images/*
Default(*)
CloudFron
t
distributio
n
Database caching
•  Faster response from RAM
•  Reduce load on database
Application server
1. If data in cache,
return result
2. If not in cache,
read from DB
RDS database
Amazon ElastiCache
3. And store
in cache
Amazon ElastiCache: in-memory cache
•  Simple to Deploy
•  Managed
–  Automatically replaces failed nodes
–  Patch management
•  Elastic
•  Compatible ElastiCache
Day 3 – Paying customers
High Availability
Availability Zone a
RDS DB
instance
Web
server
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Amazon CloudFront
ElastiCache
node 1
High Availability
Availability Zone a
RDS DB
instance
Availability Zone b
Web
server
Web
server
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Amazon CloudFront
ElastiCache
node 1
High Availability
Availability Zone a
RDS DB
instance
Availability Zone b
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
S3 bucket for
static assets
Amazon CloudFront
ElastiCache
node 1
Elastic Load Balancing
•  Managed Load Balancing Service
•  Fault tolerant
•  Health Checks
•  Distributes traffic across AZs
•  Elastic – automatically scales its capacity
High Availability
Availability Zone a
RDS DB
instance
Availability Zone b
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
S3 bucket for
static assets
ElastiCache
node 1 
Amazon CloudFront
High Availability
Availability Zone a
RDS DB
instance
Availability Zone b
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
RDS DB
standby 
S3 bucket for
static assets
ElastiCache
node 1 
Amazon CloudFront
Data layer HA
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
RDS DB
standby
Data layer HA
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
RDS DB
standby 
ElastiCache
node 2
User sessions
•  Problem: Often stored on local disk
(not shared)
•  Quickfix: ELB Session stickiness
•  Solution: DynamoDB
Elastic Load
Balancing
Web
server
Web
server
Logged in Logged out
Amazon DynamoDB
•  Managed document and key-value store
•  Simple to launch and scale
•  To millions of IOPS
•  Both reads and writes
•  Consistent, fast performance
•  Durable: perfect for storage of session data
https://github.com/aws/aws-dynamodb-session-tomcat
http://docs.aws.amazon.com/aws-sdk-php/guide/latest/feature-dynamodb-session-handler.html
Day 4 – Let’s go viral!
Replace guesswork with elastic IT
Startups pre-AWS
Demand
Unhappy
Customers
Waste $$$
Traditional
Capacity
Capacity
Demand
AWS Cloud
Scaling the web tier
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
RDS DB
standby 
ElastiCache
node 2
Scaling the web tier
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
RDS DB
standby 
ElastiCache
node 2 
Web
server
Web
server
Scaling the web tier
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
Web
server
Web
server
RDS DB
standby 
ElastiCache
node 2 
Web
server
Web
server
Automatic resizing of compute
clusters based on demand
Feature	
   Details	
  
Control	
   Define	
  minimum	
  and	
  maximum	
  instance	
  pool	
  
sizes	
  and	
  when	
  scaling	
  and	
  cool	
  down	
  occurs.	
  
Integrated	
  to	
  Amazon	
  
CloudWatch	
  
Use	
  metrics	
  gathered	
  by	
  CloudWatch	
  to	
  drive	
  
scaling.	
  
Instance	
  types	
   Run	
  Auto	
  Scaling	
  for	
  on-­‐demand	
  and	
  Spot	
  
Instances.	
  CompaDble	
  with	
  VPC.	
  
aws autoscaling create-auto-scaling-group
--auto-scaling-group-name MyGroup
--launch-configuration-name MyConfig
--min-size 4
--max-size 200
--availability-zones us-west-2c, us-west-2b
Auto Scaling Trigger auto-scaling policy
Amazon
CloudWatch
Decompose into small,
loosely coupled, stateless
building blocks
Prerequisite
What does this mean in practice?
•  Only store transient data on local disk
•  Needs to persist beyond a single http request?
–  Then store it elsewhere
User uploads
User Sessions
Amazon S3
AWS DynamoDB
Application Data
Amazon RDS
Having decomposed into
small, loosely coupled,
stateless building blocks
You can now Scale out with ease
Having	
  done	
  that…	
  
Having decomposed into
small, loosely coupled,
stateless building blocks
We can also Scale back with ease
Having	
  done	
  that…	
  
Take the shortcut
•  While this architecture is simple you still need
to deal with:
–  Configuration details
–  Deploying code to multiple instances
–  Maintaining multiple environments (Dev, Test, Prod)
–  Maintain different versions of the application
•  Solution: Use AWS Elastic Beanstalk
AWS Elastic Beanstalk (EB)
•  Easily deploy, monitor, and scale three-tier web
applications and services.
•  Infrastructure provisioned and managed by EB
•  You maintain control.
•  Preconfigured application containers
•  Easily customizable.
•  Support for these platforms:
Loose coupling with SQS
Tight	
  coupling	
  
•  Place	
  tasks	
  into	
  Amazon	
  Simple	
  Queue	
  Service	
  (SQS)	
  
•  SQS	
  –	
  buffer	
  that	
  protects	
  backend	
  systems	
  
•  Process	
  asynchronously	
  -­‐	
  at	
  own	
  pace	
  
•  Remove	
  delay	
  from	
  latency	
  sensiDve	
  paths	
  
SQS
Get
Message
Back
End EC2
Instance
Put
Message
Front
End EC2
Instance
Day 5 – Add more features
Mobile
Push
Notifications
Mobile
Analytics
Cognito
Cognito
Sync
Analytics
Kinesis
Data
Pipeline
RedShift EMR
Your Applications
AWS Global Infrastructure
Network
VPC
Direct
Connect
Route 53
Storage
EBS S3 Glacier CloudFront
Database
DynamoDBRDS ElastiCache
Deployment & Management
Elastic
Beanstalk
OpsWorks
Cloud
Formation
Code
Deploy
Code
Pipeline
Code
Commit
Security & Administration
CloudWatch Config
Cloud
Trail
IAM Directory KMS
Application
SQS SWF
App
Stream
Elastic
Transcoder
SES
Cloud
Search
SNS
Enterprise Applications
WorkSpaces WorkMail WorkDocs
Compute
EC2 ELB
Auto
Scaling
LambdaECS
AWS building blocks
Inherently Scalable & Highly Available Scalable & Highly Available
!  Elastic Load Balancing
!  Amazon CloudFront
!  Amazon Route53
!  Amazon S3
!  Amazon SQS
!  Amazon SES
!  Amazon CloudSearch
!  AWS Lambda
!  …
!  Amazon DynamoDB
!  Amazon Redshift
!  Amazon RDS
!  Amazon Elasticache
!  …
"  Amazon EC2
"  Amazon VPC
Automated Configurable With the right architecture
Stay focused as you scale your team
AWS	
  
Cloud-­‐Based	
  
Infrastructure	
  
Your	
  
Business	
  
More	
  Time	
  to	
  Focus	
  on	
  
Your	
  Business	
  
Configuring	
  Your	
  
Cloud	
  Assets	
  
70%	
  
30%	
  70%	
  
On-­‐Premise	
  
Infrastructure	
  
30%	
  
Managing	
  All	
  of	
  the	
  	
  
“UndifferenDated	
  Heavy	
  Li[ing”	
  
Day 6 – Growing fast
Scaling Relational DBs
•  Increase RDS instance specs
–  Larger instance type
–  More storage / more PIOPS
•  Read Replicas (Master – Slave)
–  Scale out beyond capacity of single DB instance
–  Available in Amazon RDS for MySQL, PostgreSQL and Amazon Aurora
–  Writes => master
–  Replication lag
–  Reads with tolerance to stale data => read replica (slave)
–  Reads with strong consistency requirements => master
Scaling the DB
Web
server
Web
server
Web
server
Web
server
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
RDS DB
standby 
ElastiCache
node 2
Scaling the DB
Web
server
Web
server
Web
server
Web
server
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
RDS DB
standby 
ElastiCache
node 2 
RDS read
replica
Scaling the DB
Web
server
Web
server
Web
server
Web
server
Availability Zone a
RDS DB
instance
ElastiCache
node 1 
Availability Zone b
S3 bucket for
static assets
www.example.com
Amazon Route 53
DNS service
Elastic Load
Balancing
RDS DB
standby 
ElastiCache
node 2 
RDS read
replica
RDS read
replica
What if your app is write-heavy?
Challenge: You will eventually hit the write throughput or
storage limit of the master node
Solutions:
•  Federation (splitting into multiple DBs based on function)
•  Sharding (splitting one data set across multiple hosts)
Database federation
•  Divide tables into smaller
autonomous databases
•  Harder to do cross-function
queries
•  Won’t help with single huge
functions/tables
Forums DB
Users DB
Products
DB
Sharded horizontal scaling
•  Store subset of rows into
each database shard
•  More complex at the
application layer
•  No practical limit on
scalability
•  Operation complexity
User ShardID
002345 A
002346 B
002347 C
002348 B
002349 A
Shard C
Shard B
Shard A
NoSQL data stores
•  Trade query & integrity features of Relational DBs for
–  More flexible data model
–  Horizontal scalability & predictable performance
DynamoDB
Provisioned read/write performance per table
Massive and Seamless Scale
•  Distributed system that can scale both reads and writes
–  Sharding + Replicas
•  Automatic partitioning:
–  Data set size growth
–  Provisioned capacity increases table
Summary
Amazon Route 53
DNS service
No limit
Availability Zone a
RDS DB
instance
ElastiCache
node 2 
Availability Zone b
S3 bucket for
static assets
www.example.com
Elastic Load
Balancing
RDS DB
standby 
ElastiCache
node 3
RDS read
replica
RDS read
replica
DynamoDB
RDS read
replica
ElastiCache
node 4
RDS read
replica
ElastiCache
node 1 
CloudSearch
Lambda
SES
 SQS
A quick review
•  Keep it simple and stateless
•  Make use of managed self-scaling services
•  Multi-AZ and AutoScale your EC2 infrastructure
•  Use the right DB for each workload
•  Cache data at multiple levels
•  Simplify operations with deployment tools
Next steps?
READ!
•  aws.amazon.com/documentation
•  aws.amazon.com/architecture
•  aws.amazon.com/start-ups
ASK FOR HELP!
•  forums.aws.amazon.com
•  aws.amazon.com/support
Performance testing @ JUST EAT
(Or: DoS yourself every night in production to prove you can take it)
@justeat_tech + @petemounce
http://tech.just-eat.com
Please wait while I start
my DoS attack...
(Demo - start fake load, show dashboards)
@justeat_tech + @petemounce
http://tech.just-eat.com
The problem with performance
tests & continuous delivery
●  Don’t want to sacrifice continuous delivery & decoupled
teams
●  Don’t want performance to suffer
All the usual problems:
●  Bottleneck through single environment
●  Individual tests take too long
@justeat_tech + @petemounce
http://tech.just-eat.com
Why?
Continuously test
●  performance
●  capacity
If we find a problem Thursday night:
1.  don’t run fake load over the weekend
2.  enjoy weekend as normal
3.  fix it next week with leisure
@justeat_tech + @petemounce
http://tech.just-eat.com
Gamble!
OH: “We deploy tens of small changes a day. I bet we
won’t break production...”
OH: “Let’s just do it in production with fake traffic at the
same time as customers!”
@justeat_tech + @petemounce
http://tech.just-eat.com
Not that much of a
gamble, really
We have tight feedback loops at this point.
Engineers being on call
... highly invested in not regressing performance.
@justeat_tech + @petemounce
http://tech.just-eat.com
How?
Pick scenarios we care about
Pick data variations to exercise
Add header(s) to discriminate fake load vs customer load
Run it every night during peak time
If no alerts fire, we’re good
@justeat_tech + @petemounce
http://tech.just-eat.com
What did we gain?
Continuous confidence in capacity
@justeat_tech + @petemounce
http://tech.just-eat.com
What did we gain?
Continuous confidence in dealing with spikes
@justeat_tech + @petemounce
http://tech.just-eat.com
What did we gain?
Performance as a 1st-class concern
@justeat_tech + @petemounce
http://tech.just-eat.com
What did we gain?
Tests become independent of environments’ data
@justeat_tech + @petemounce
http://tech.just-eat.com
(Remind me to stop my
DoS attack now)
(Demo - stop fake load, show dashboards)
@justeat_tech + @petemounce
http://tech.just-eat.com
@justeat_tech + @petemounce
http://tech.just-eat.com
Yes, we’re recruiting too.
http://tech.just-eat.com/jobs

Weitere ähnliche Inhalte

Was ist angesagt?

Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS
Tom Laszewski
 

Was ist angesagt? (20)

What's New in Amazon RDS for Open Source and Commercial Databases
What's New in Amazon RDS for Open Source and Commercial DatabasesWhat's New in Amazon RDS for Open Source and Commercial Databases
What's New in Amazon RDS for Open Source and Commercial Databases
 
Introduction to Block and File storage on AWS
Introduction to Block and File storage on AWSIntroduction to Block and File storage on AWS
Introduction to Block and File storage on AWS
 
Amazon RDS for Microsoft SQL: Performance, Security, Best Practices (DAT303) ...
Amazon RDS for Microsoft SQL: Performance, Security, Best Practices (DAT303) ...Amazon RDS for Microsoft SQL: Performance, Security, Best Practices (DAT303) ...
Amazon RDS for Microsoft SQL: Performance, Security, Best Practices (DAT303) ...
 
AWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS OracleAWS Webcast - Migrating to RDS Oracle
AWS Webcast - Migrating to RDS Oracle
 
Advanced data migration techniques for Amazon RDS
Advanced data migration techniques for Amazon RDSAdvanced data migration techniques for Amazon RDS
Advanced data migration techniques for Amazon RDS
 
Dean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your StartupDean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your Startup
 
Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS Migrating enterprise workloads to AWS
Migrating enterprise workloads to AWS
 
Intro to AWS: Database Services
Intro to AWS: Database ServicesIntro to AWS: Database Services
Intro to AWS: Database Services
 
Deep Dive into Amazon ElastiCache Architecture and Design Patterns (DAT307) |...
Deep Dive into Amazon ElastiCache Architecture and Design Patterns (DAT307) |...Deep Dive into Amazon ElastiCache Architecture and Design Patterns (DAT307) |...
Deep Dive into Amazon ElastiCache Architecture and Design Patterns (DAT307) |...
 
AWS Black Belt Tips
AWS Black Belt TipsAWS Black Belt Tips
AWS Black Belt Tips
 
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
(DAT303) Oracle on AWS and Amazon RDS: Secure, Fast, and Scalable
 
(SOV202) Choosing Among AWS Managed Database Services | AWS re:Invent 2014
(SOV202) Choosing Among AWS Managed Database Services | AWS re:Invent 2014(SOV202) Choosing Among AWS Managed Database Services | AWS re:Invent 2014
(SOV202) Choosing Among AWS Managed Database Services | AWS re:Invent 2014
 
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
 
(DAT204) NoSQL? No Worries: Build Scalable Apps on AWS NoSQL Services
(DAT204) NoSQL? No Worries: Build Scalable Apps on AWS NoSQL Services(DAT204) NoSQL? No Worries: Build Scalable Apps on AWS NoSQL Services
(DAT204) NoSQL? No Worries: Build Scalable Apps on AWS NoSQL Services
 
Cloud Architecture best practices
Cloud Architecture best practicesCloud Architecture best practices
Cloud Architecture best practices
 
BDA 302 Deep Dive on Migrating Big Data Workloads to Amazon EMR
BDA 302 Deep Dive on Migrating Big Data Workloads to Amazon EMRBDA 302 Deep Dive on Migrating Big Data Workloads to Amazon EMR
BDA 302 Deep Dive on Migrating Big Data Workloads to Amazon EMR
 
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration  AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
 
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
 
Best Practices for running the Oracle Database on EC2 webinar
Best Practices for running the Oracle Database on EC2 webinarBest Practices for running the Oracle Database on EC2 webinar
Best Practices for running the Oracle Database on EC2 webinar
 
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
 

Andere mochten auch

Amazon Web Services Customer Case Study, 9flats.com
Amazon Web Services Customer Case Study, 9flats.comAmazon Web Services Customer Case Study, 9flats.com
Amazon Web Services Customer Case Study, 9flats.com
Amazon Web Services
 
AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...
AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...
AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...
Amazon Web Services
 

Andere mochten auch (20)

AWS Sydney Summit 2013 - Understanding your AWS Storage Options
AWS Sydney Summit 2013 - Understanding your AWS Storage OptionsAWS Sydney Summit 2013 - Understanding your AWS Storage Options
AWS Sydney Summit 2013 - Understanding your AWS Storage Options
 
Scalable Database Options on AWS
Scalable Database Options on AWSScalable Database Options on AWS
Scalable Database Options on AWS
 
Relational Databases Redefined with AWS
Relational Databases Redefined with AWSRelational Databases Redefined with AWS
Relational Databases Redefined with AWS
 
Amazon Web Services Customer Case Study, 9flats.com
Amazon Web Services Customer Case Study, 9flats.comAmazon Web Services Customer Case Study, 9flats.com
Amazon Web Services Customer Case Study, 9flats.com
 
AWS Summit Auckland 2014 | Understanding AWS Security
AWS Summit Auckland 2014 | Understanding AWS Security AWS Summit Auckland 2014 | Understanding AWS Security
AWS Summit Auckland 2014 | Understanding AWS Security
 
Stg205 amazon s3
Stg205 amazon s3Stg205 amazon s3
Stg205 amazon s3
 
REA Sydney Customer Appreciation Day
REA Sydney Customer Appreciation DayREA Sydney Customer Appreciation Day
REA Sydney Customer Appreciation Day
 
Enterprise Management for the AWS Cloud (DMG209) | AWS re:Invent 2013
Enterprise Management for the AWS Cloud (DMG209) | AWS re:Invent 2013Enterprise Management for the AWS Cloud (DMG209) | AWS re:Invent 2013
Enterprise Management for the AWS Cloud (DMG209) | AWS re:Invent 2013
 
AWS for Start-ups - Case Study - Go Squared
AWS for Start-ups - Case Study - Go SquaredAWS for Start-ups - Case Study - Go Squared
AWS for Start-ups - Case Study - Go Squared
 
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows ServerAWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
 
AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...
AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...
AWS Customer Presentation: Centrastage - AWS Summit 2012 - London Customer Ta...
 
AWS Customer Presentation - ORbyte
AWS Customer Presentation - ORbyteAWS Customer Presentation - ORbyte
AWS Customer Presentation - ORbyte
 
Un backend: pour tous vos objets connectés
Un backend: pour tous vos objets connectésUn backend: pour tous vos objets connectés
Un backend: pour tous vos objets connectés
 
Accelerate Go-To-Market Speed in a CI/CD Environment
Accelerate Go-To-Market Speed in a CI/CD EnvironmentAccelerate Go-To-Market Speed in a CI/CD Environment
Accelerate Go-To-Market Speed in a CI/CD Environment
 
Enterprise Empowerment & Innovation
Enterprise Empowerment & InnovationEnterprise Empowerment & Innovation
Enterprise Empowerment & Innovation
 
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
AWS Summit 2013 | Singapore - Delivering Search for Today's Local, Social, an...
 
Creating a Virtual Data Center
Creating a Virtual Data CenterCreating a Virtual Data Center
Creating a Virtual Data Center
 
BDT305 Transforming Big Data with Spark and Shark - AWS re: Invent 2012
BDT305 Transforming Big Data with Spark and Shark - AWS re: Invent 2012BDT305 Transforming Big Data with Spark and Shark - AWS re: Invent 2012
BDT305 Transforming Big Data with Spark and Shark - AWS re: Invent 2012
 
SVC105 AWS Messaging - AWS re: Invent 2012
SVC105 AWS Messaging - AWS re: Invent 2012SVC105 AWS Messaging - AWS re: Invent 2012
SVC105 AWS Messaging - AWS re: Invent 2012
 
The Value of Certified AWS Experts to Your Business
The Value of Certified AWS Experts to Your BusinessThe Value of Certified AWS Experts to Your Business
The Value of Certified AWS Experts to Your Business
 

Ähnlich wie Scaling the Platform for Your Startup

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
Amazon Web Services
 

Ähnlich wie Scaling the Platform for Your Startup (20)

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
 
Ceate a Scalable Cloud Architecture
Ceate a Scalable Cloud ArchitectureCeate a Scalable Cloud Architecture
Ceate a Scalable Cloud Architecture
 
How to Scale to Millions of Users with AWS
How to Scale to Millions of Users with AWSHow to Scale to Millions of Users with AWS
How to Scale to Millions of Users with AWS
 
Create cloud service on AWS
Create cloud service on AWSCreate cloud service on AWS
Create cloud service on AWS
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your Startup
 
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
ENT305 Migrating Your Databases to AWS: Deep Dive on Amazon Relational Databa...
 
Building and Managing Scalable Applications on AWS: 1 to 500K users
Building and Managing Scalable Applications on AWS: 1 to 500K usersBuilding and Managing Scalable Applications on AWS: 1 to 500K users
Building and Managing Scalable Applications on AWS: 1 to 500K users
 
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 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...
 
Migrating Your Databases to AWS Deep Dive on Amazon RDS and AWS
Migrating Your Databases to AWS Deep Dive on Amazon RDS and AWSMigrating Your Databases to AWS Deep Dive on Amazon RDS and AWS
Migrating Your Databases to AWS Deep Dive on Amazon RDS and AWS
 
Aplicaciones a gran escala: Cómo servir a millones de usuarios
Aplicaciones a gran escala: Cómo servir a millones de usuariosAplicaciones a gran escala: Cómo servir a millones de usuarios
Aplicaciones a gran escala: Cómo servir a millones de usuarios
 
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
 
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinScaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit Dublin
 
Scaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit DublinScaling on AWS for the First 10 Million Users at Websummit Dublin
Scaling on AWS for the First 10 Million Users at Websummit Dublin
 
Scaling up to your first 10 million users - Pop-up Loft Tel Aviv
Scaling up to your first 10 million users - Pop-up Loft Tel AvivScaling up to your first 10 million users - Pop-up Loft Tel Aviv
Scaling up to your first 10 million users - Pop-up Loft Tel Aviv
 
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 Up to Your First 10 Million Users
Scaling Up to Your First 10 Million UsersScaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million Users
 
Using Amazon RDS to Power Enterprise Applications (DAT202) | AWS re:Invent 2013
Using Amazon RDS to Power Enterprise Applications (DAT202) | AWS re:Invent 2013Using Amazon RDS to Power Enterprise Applications (DAT202) | AWS re:Invent 2013
Using Amazon RDS to Power Enterprise Applications (DAT202) | AWS re:Invent 2013
 
AWS Summit Auckland 2014 | Scaling on AWS for the First 10 Million Users
 AWS Summit Auckland 2014 | Scaling on AWS for the First 10 Million Users AWS Summit Auckland 2014 | Scaling on AWS for the First 10 Million Users
AWS Summit Auckland 2014 | Scaling 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 Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
 

Mehr von Amazon 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 AWS
Amazon 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 Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon 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
 

Mehr von 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
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

Scaling the Platform for Your Startup

  • 1. Scaling the Platform for your Startup Andreas Chatzakis, AWS Solutions Architecture Peter Mounce, Senior Software Developer at JUST EAT 15th April 2015, AWS London Summit
  • 2. Why are you here? •  Building the technology platform for your startup •  You want to prepare for success •  Learn about design patterns & scalability •  A pragmatic approach for startups
  • 3. Priorities for startups •  Racing within a window of opportunity •  Small team with no legacy •  Focus on solving a problem •  Avoid over-engineering & re-engineering •  Reduce risk of failure when you go viral
  • 4. A scalable architecture •  Can support growth in users, traffic, data size •  Without practical limits •  Without a drop in performance •  Seamlessly - just by adding more resources •  Efficiently - in terms of cost per user
  • 5. Day 1 – Dev & private beta
  • 6. Single host THE server (e.g. Apache, MySQL) Elastic IP www.example.com Amazon Route 53 DNS service Server Image (AMI)
  • 7. Day 2 - Public beta
  • 8. We need a bigger server •  Add larger & faster storage (EBS) •  Use the right instance type •  Easy to change instance sizes •  Not our long term strategy •  Will hit an endpoint eventually •  No fault tolerance
  • 9. Separating web and DB •  More capacity •  Scale each tier individually •  Tailor instance for each tier –  Instance type –  Storage •  Security –  Security groups –  DB in a private VPC subnet
  • 10. But how do I choose what DB technology I need? SQL? NoSQL?
  • 11. Why start with a Relational DB? •  SQL is versatile & feature-rich •  Lots of existing code, tools, knowledge •  Clear patterns to scalability (for read-heavy apps) •  Reality: eventually you will have a polyglot data layer –  There will be workloads where NoSQL is a better fit –  Use the right tool for each workload
  • 12. Key Insight: Relational Databases are Complex •  Our experience running Amazon.com taught us that relational databases can be a pain to manage and operate with high availability •  Poorly managed relational databases are a leading cause of lost sleep and downtime in the IT world! •  Especially for startups with small teams
  • 13. Relational Databases MySQL, Aurora, PostgreSQL, Oracle, SQL Server Fully managed; zero admin Amazon RDS Aurora
  • 15. Offload static content •  Amazon S3: highly available hosting that scales –  Static files (JavaScript, CSS, images) –  User uploads •  S3 URLs – serve directly from S3 •  Let the web server focus on dynamic content
  • 16. Amazon CloudFront •  Worldwide network of edge locations •  Cache on the edge –  Reduce latency –  Reduce load on origin servers –  Static and dynamic content –  Even few seconds caching of popular content can have huge impact •  Connection optimizations –  Optimize transfer route –  Reuse connections –  Benefits even non cachable content CloudFront
  • 17. CloudFront for static & dynamic content Amazon Route 53 EC2 instance(s) S3 bucket Static content Dynamic content css/* js/* Images/* Default(*) CloudFron t distributio n
  • 18. Database caching •  Faster response from RAM •  Reduce load on database Application server 1. If data in cache, return result 2. If not in cache, read from DB RDS database Amazon ElastiCache 3. And store in cache
  • 19. Amazon ElastiCache: in-memory cache •  Simple to Deploy •  Managed –  Automatically replaces failed nodes –  Patch management •  Elastic •  Compatible ElastiCache
  • 20. Day 3 – Paying customers
  • 21. High Availability Availability Zone a RDS DB instance Web server S3 bucket for static assets www.example.com Amazon Route 53 DNS service Amazon CloudFront ElastiCache node 1
  • 22. High Availability Availability Zone a RDS DB instance Availability Zone b Web server Web server S3 bucket for static assets www.example.com Amazon Route 53 DNS service Amazon CloudFront ElastiCache node 1
  • 23. High Availability Availability Zone a RDS DB instance Availability Zone b www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server S3 bucket for static assets Amazon CloudFront ElastiCache node 1
  • 24. Elastic Load Balancing •  Managed Load Balancing Service •  Fault tolerant •  Health Checks •  Distributes traffic across AZs •  Elastic – automatically scales its capacity
  • 25. High Availability Availability Zone a RDS DB instance Availability Zone b www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server S3 bucket for static assets ElastiCache node 1 Amazon CloudFront
  • 26. High Availability Availability Zone a RDS DB instance Availability Zone b www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby S3 bucket for static assets ElastiCache node 1 Amazon CloudFront
  • 27. Data layer HA Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby
  • 28. Data layer HA Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2
  • 29. User sessions •  Problem: Often stored on local disk (not shared) •  Quickfix: ELB Session stickiness •  Solution: DynamoDB Elastic Load Balancing Web server Web server Logged in Logged out
  • 30. Amazon DynamoDB •  Managed document and key-value store •  Simple to launch and scale •  To millions of IOPS •  Both reads and writes •  Consistent, fast performance •  Durable: perfect for storage of session data https://github.com/aws/aws-dynamodb-session-tomcat http://docs.aws.amazon.com/aws-sdk-php/guide/latest/feature-dynamodb-session-handler.html
  • 31. Day 4 – Let’s go viral!
  • 32. Replace guesswork with elastic IT Startups pre-AWS Demand Unhappy Customers Waste $$$ Traditional Capacity Capacity Demand AWS Cloud
  • 33. Scaling the web tier Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2
  • 34. Scaling the web tier Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2 Web server Web server
  • 35. Scaling the web tier Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing Web server Web server RDS DB standby ElastiCache node 2 Web server Web server
  • 36. Automatic resizing of compute clusters based on demand Feature   Details   Control   Define  minimum  and  maximum  instance  pool   sizes  and  when  scaling  and  cool  down  occurs.   Integrated  to  Amazon   CloudWatch   Use  metrics  gathered  by  CloudWatch  to  drive   scaling.   Instance  types   Run  Auto  Scaling  for  on-­‐demand  and  Spot   Instances.  CompaDble  with  VPC.   aws autoscaling create-auto-scaling-group --auto-scaling-group-name MyGroup --launch-configuration-name MyConfig --min-size 4 --max-size 200 --availability-zones us-west-2c, us-west-2b Auto Scaling Trigger auto-scaling policy Amazon CloudWatch
  • 37.
  • 38.
  • 39. Decompose into small, loosely coupled, stateless building blocks Prerequisite
  • 40. What does this mean in practice? •  Only store transient data on local disk •  Needs to persist beyond a single http request? –  Then store it elsewhere User uploads User Sessions Amazon S3 AWS DynamoDB Application Data Amazon RDS
  • 41. Having decomposed into small, loosely coupled, stateless building blocks You can now Scale out with ease Having  done  that…  
  • 42. Having decomposed into small, loosely coupled, stateless building blocks We can also Scale back with ease Having  done  that…  
  • 43. Take the shortcut •  While this architecture is simple you still need to deal with: –  Configuration details –  Deploying code to multiple instances –  Maintaining multiple environments (Dev, Test, Prod) –  Maintain different versions of the application •  Solution: Use AWS Elastic Beanstalk
  • 44. AWS Elastic Beanstalk (EB) •  Easily deploy, monitor, and scale three-tier web applications and services. •  Infrastructure provisioned and managed by EB •  You maintain control. •  Preconfigured application containers •  Easily customizable. •  Support for these platforms:
  • 45. Loose coupling with SQS Tight  coupling   •  Place  tasks  into  Amazon  Simple  Queue  Service  (SQS)   •  SQS  –  buffer  that  protects  backend  systems   •  Process  asynchronously  -­‐  at  own  pace   •  Remove  delay  from  latency  sensiDve  paths   SQS Get Message Back End EC2 Instance Put Message Front End EC2 Instance
  • 46. Day 5 – Add more features
  • 47. Mobile Push Notifications Mobile Analytics Cognito Cognito Sync Analytics Kinesis Data Pipeline RedShift EMR Your Applications AWS Global Infrastructure Network VPC Direct Connect Route 53 Storage EBS S3 Glacier CloudFront Database DynamoDBRDS ElastiCache Deployment & Management Elastic Beanstalk OpsWorks Cloud Formation Code Deploy Code Pipeline Code Commit Security & Administration CloudWatch Config Cloud Trail IAM Directory KMS Application SQS SWF App Stream Elastic Transcoder SES Cloud Search SNS Enterprise Applications WorkSpaces WorkMail WorkDocs Compute EC2 ELB Auto Scaling LambdaECS
  • 48. AWS building blocks Inherently Scalable & Highly Available Scalable & Highly Available !  Elastic Load Balancing !  Amazon CloudFront !  Amazon Route53 !  Amazon S3 !  Amazon SQS !  Amazon SES !  Amazon CloudSearch !  AWS Lambda !  … !  Amazon DynamoDB !  Amazon Redshift !  Amazon RDS !  Amazon Elasticache !  … "  Amazon EC2 "  Amazon VPC Automated Configurable With the right architecture
  • 49. Stay focused as you scale your team AWS   Cloud-­‐Based   Infrastructure   Your   Business   More  Time  to  Focus  on   Your  Business   Configuring  Your   Cloud  Assets   70%   30%  70%   On-­‐Premise   Infrastructure   30%   Managing  All  of  the     “UndifferenDated  Heavy  Li[ing”  
  • 50. Day 6 – Growing fast
  • 51. Scaling Relational DBs •  Increase RDS instance specs –  Larger instance type –  More storage / more PIOPS •  Read Replicas (Master – Slave) –  Scale out beyond capacity of single DB instance –  Available in Amazon RDS for MySQL, PostgreSQL and Amazon Aurora –  Writes => master –  Replication lag –  Reads with tolerance to stale data => read replica (slave) –  Reads with strong consistency requirements => master
  • 52. Scaling the DB Web server Web server Web server Web server Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing RDS DB standby ElastiCache node 2
  • 53. Scaling the DB Web server Web server Web server Web server Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing RDS DB standby ElastiCache node 2 RDS read replica
  • 54. Scaling the DB Web server Web server Web server Web server Availability Zone a RDS DB instance ElastiCache node 1 Availability Zone b S3 bucket for static assets www.example.com Amazon Route 53 DNS service Elastic Load Balancing RDS DB standby ElastiCache node 2 RDS read replica RDS read replica
  • 55. What if your app is write-heavy? Challenge: You will eventually hit the write throughput or storage limit of the master node Solutions: •  Federation (splitting into multiple DBs based on function) •  Sharding (splitting one data set across multiple hosts)
  • 56. Database federation •  Divide tables into smaller autonomous databases •  Harder to do cross-function queries •  Won’t help with single huge functions/tables Forums DB Users DB Products DB
  • 57. Sharded horizontal scaling •  Store subset of rows into each database shard •  More complex at the application layer •  No practical limit on scalability •  Operation complexity User ShardID 002345 A 002346 B 002347 C 002348 B 002349 A Shard C Shard B Shard A
  • 58. NoSQL data stores •  Trade query & integrity features of Relational DBs for –  More flexible data model –  Horizontal scalability & predictable performance DynamoDB Provisioned read/write performance per table
  • 59. Massive and Seamless Scale •  Distributed system that can scale both reads and writes –  Sharding + Replicas •  Automatic partitioning: –  Data set size growth –  Provisioned capacity increases table
  • 61. Amazon Route 53 DNS service No limit Availability Zone a RDS DB instance ElastiCache node 2 Availability Zone b S3 bucket for static assets www.example.com Elastic Load Balancing RDS DB standby ElastiCache node 3 RDS read replica RDS read replica DynamoDB RDS read replica ElastiCache node 4 RDS read replica ElastiCache node 1 CloudSearch Lambda SES SQS
  • 62. A quick review •  Keep it simple and stateless •  Make use of managed self-scaling services •  Multi-AZ and AutoScale your EC2 infrastructure •  Use the right DB for each workload •  Cache data at multiple levels •  Simplify operations with deployment tools
  • 63. Next steps? READ! •  aws.amazon.com/documentation •  aws.amazon.com/architecture •  aws.amazon.com/start-ups ASK FOR HELP! •  forums.aws.amazon.com •  aws.amazon.com/support
  • 64.
  • 65. Performance testing @ JUST EAT (Or: DoS yourself every night in production to prove you can take it) @justeat_tech + @petemounce http://tech.just-eat.com
  • 66. Please wait while I start my DoS attack... (Demo - start fake load, show dashboards) @justeat_tech + @petemounce http://tech.just-eat.com
  • 67. The problem with performance tests & continuous delivery ●  Don’t want to sacrifice continuous delivery & decoupled teams ●  Don’t want performance to suffer All the usual problems: ●  Bottleneck through single environment ●  Individual tests take too long @justeat_tech + @petemounce http://tech.just-eat.com
  • 68. Why? Continuously test ●  performance ●  capacity If we find a problem Thursday night: 1.  don’t run fake load over the weekend 2.  enjoy weekend as normal 3.  fix it next week with leisure @justeat_tech + @petemounce http://tech.just-eat.com
  • 69. Gamble! OH: “We deploy tens of small changes a day. I bet we won’t break production...” OH: “Let’s just do it in production with fake traffic at the same time as customers!” @justeat_tech + @petemounce http://tech.just-eat.com
  • 70. Not that much of a gamble, really We have tight feedback loops at this point. Engineers being on call ... highly invested in not regressing performance. @justeat_tech + @petemounce http://tech.just-eat.com
  • 71. How? Pick scenarios we care about Pick data variations to exercise Add header(s) to discriminate fake load vs customer load Run it every night during peak time If no alerts fire, we’re good @justeat_tech + @petemounce http://tech.just-eat.com
  • 72. What did we gain? Continuous confidence in capacity @justeat_tech + @petemounce http://tech.just-eat.com
  • 73. What did we gain? Continuous confidence in dealing with spikes @justeat_tech + @petemounce http://tech.just-eat.com
  • 74. What did we gain? Performance as a 1st-class concern @justeat_tech + @petemounce http://tech.just-eat.com
  • 75. What did we gain? Tests become independent of environments’ data @justeat_tech + @petemounce http://tech.just-eat.com
  • 76. (Remind me to stop my DoS attack now) (Demo - stop fake load, show dashboards) @justeat_tech + @petemounce http://tech.just-eat.com
  • 77. @justeat_tech + @petemounce http://tech.just-eat.com Yes, we’re recruiting too. http://tech.just-eat.com/jobs