SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Scaling From Zero
to 6 Million Mobile Users
KW Justin Leung, Banjo

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.
Banjo
•
•
•
•
•

Real-time location meets social data
An engineering-focused company
Events recommendation, alert, & discovery
Top Developer and Editor’s Choice in Google Play
Named Top 10 World Innovator in Local - Fast
Company
Growth Factors
• Grew from 0 to 5+ Million in 2 years
• Indexed over 700 Million profiles
• Processing Billions of location-based social
posts
• Geospatial indexing for 500K+ posts per hour
• Categorized 1000’s of event types
• Over 50 Million background jobs processed daily
The Stack
• Amazon EC2 / Elastic Load Balancing / Amazon S3
/ Elastic Beanstalk / Heroku
• Ruby on Rails
• MongoDB
• Redis
• Memcached
• Sidekiq
• NewRelic / PagerDuty / Papertrail / Graphite
First 9 Months, from 0 to Million
•
•
•
•

Amazon EC2 deployment with Rubber
No background jobs, frontend instances only
Hosted MongoDB clusters
0 DevOp
Challenges @ 1M Users
•
•
•
•

Limited engineering resources
Not too agile with Rubber
Outgrew hosted MongoDB limit
No DevOp
Growing to 2M+ Users
•
•
•
•
•

Migrated from EC2 instances to Heroku
Delayed jobs: GirlFriday -> Qu -> Sidekiq
In-house MongoDB clusters on EC2
Social graph increased to 300M+ profiles
1 DBA / DevOp
Challenges @ 2M Users
• Explosion of social graph size
• Cost to process background jobs
• Latency to poll external social feeds
Banjo @ 4M+ Users
• 100x Heroku workers
• Social graph increased to 400M+ profiles
• Indexed one month of global location-based
posts
• 10 Millions of background jobs processed daily
• Still -1 DBA / DevOp
Challenges @ 4M Users
-I
• Heroku Dynos limited to 512MB of memory, slow
CPU
• Heroku routing latency becomes obvious
• Bloated codebase, limited forking for
concurrency
• Power users with large social graph churns data
Now, 6 Million Users
•
•
•
•
•
•
•

Social graph increased to 700M profiles
Heroku -> Elastic Beanstalk
Service-oriented architecture
Unicorn -> Elastic Beanstalk with Nginx + Passenger
50 Million background jobs processed daily
Hundreds of EC2 instances
And... still 1 DBA/Dev-Op
Heroku PROS / CONS
• The Pros:
–
–
–
–

Brainless deploy / rollback flow
Instant availability of dynos and workers
Zero setup & maintenance cost
No Dev-Op need

• The Cons:
–
–
–
–

Limited memory & CPU make it hard for concurrency
Routing layer latency
No built-in auto-scaling, limited available zones (US/EU)
Not enough control, limited access when there are platform issues
Elastic Beanstalk - PROS / CONS
• The Pros:
–
–
–
–

Choice of instance types, Availability Zones
Increased concurrency with Passenger / Nginx, support for auto-scaling
Low latency with Amazon Route 53 & Elastic Load Balancing
Cost efficient

• The Cons:
–
–
–
–

Initial setup cost for beanstalk containers and environments
Slow container updates - currently Ruby 1.9 / Passenger 3.0.17 + Nginx 1.23
Time to spin up new instances for seamless deploys
There’s some learning curve to Elastic Beanstalk scripts
Managed EC2 Instances
• MongoDB instances (DBA)
• Elastic Beanstalk managed environments (Eng)
• Heroku managed services (Eng)

• Elastic Beanstalk + Heroku can easily be
managed by small-sized, agile engineering
team
Recommendation for startups:
• Start prototyping on small scale PaaS services
• Add-ons are really helpful
Papertrail, NewRelic, Hosted MongoDB/Redis/Memcached/Metrics

• Pager alerts with ScoutApp, Pingdom,
PagerDuty
• Make use of health & metrics dashboards
• Deploy frequently & scale up along the way
Q&A

justin@teambanjo.com
@girak
http://ban.jo
Please give us your feedback on this
presentation

CPN303
As a thank you, we will select prize
winners daily for completed surveys!
Cloud Connected Devices On A Global Scale
Bryant Eastham, Panasonic
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.
Two roads diverged in a wood, and I—
I took the one less traveled by …
Robert Frost
Understanding “Small” And “Cloud”
• What is “small”?
– Production scale that required minimal cost
– Devices that Moore forgot
– Speed in MHz, memory in KB, solution designed around resources

• What is “cloud”?
– HTML/XML for transport
– SSL for security
– Solutions typically don’t consider resource-constrained devices
Implications Of Small Devices
• Support for whitelisting
– Yes, it is still done
– No, “open up all outbound traffic” is not acceptable

• One-stop connectivity
– Not every protocol uses TCP
– UDP is still great for some things, and required for others (NTP)
Cloud System Requirements
•
•
•
•

Support whitelisting (fixed IP address set)
Support UDP as well as TCP
Support Auto Scaling and Elastic Load Balancing
Off-instance logging and monitoring

• AWS gets us 90% there – the last 10% is our focus
today
Connectivity Using Elastic IP Addresses,
With A Configuration Detour
Meeting The
Requirements

(IP1 .. IPn)

• Reuse when possible,
invent when necessary
• Reuse =
Amazon Web Services:
– Amazon VPC
– EIP addresses
– Amazon Route 53
Application-managed IP Addresses
• “Standard” EIP are not enough
– All addresses must be active all the time
– Addresses must move to adapt to scale changes
– Support multiple addresses per instance for low-scale periods

• Application-managed IP addresses fill the gaps
– All addresses can be active (assigned to an instance)
– API control of EIP assignment provides migration during scaling,
and this can be done “cleanly” by the application

 However, only VPC instances allow multiple EIP
assignments
Chickens And Eggs

• Managed IP addresses require
multiple EIPs and configuration
• VPC is required to allow multiple EIP
management
• Configuration requires Puppet and
AWS access
• Puppet and AWS require access to
the network (from the VPC)
• Network access requires instance
configuration and a VPC bridge
• Instance configuration is part of
application configuration (managed
IP address information)
• Rinse, lather, repeat…
Breaking The Cycle
• Each VPC requires a bridge for network access
• Putting a Puppet Master on this bridge breaks
the cycle of network access/configuration
–
–
–
–

Allows the use of VPC security groups to control access
Use a lightweight instance
Assign any EIP to allow external access
Configure to support VPC/Internet bridging

• All VPC instances are configured to use the
Puppet Master as their gateway (initially)
VPC (per AZ)

VPC (per AZ)
VPC (per AZ)

VPC (perIPn)
(IP1 .. AZ)

(IP1 .. IPn) AZ)
VPC (per
(IP1 .. IPn)

Bridge/Puppet Master

Bridge/Puppet Master

Bridge/Puppet Master
(IP1 .. IPn)

(IP1 .. IPn)
Bridge/Puppet Master

Bridge/Puppet Master

Too Many Puppet Masters
What About All Those Masters?
• World-wide support requires many VPCs
– Multiple Availability Zones
– Multiple regions

• Each VPC requires network access
– Each VPC requires a bridge

• We solved one problem, and introduced another
– Puppet Master configuration
Mastering The Puppet Masters
• Amazon S3 is an excellent choice for Puppet
Master configuration
– Global, highly available
– Excellent security (access control) and logging
– Sharable between accounts

• One-way synchronization from Amazon S3 to
distributed Puppet Masters solves the
configuration problem
What About Performance?
• We cannot stop here – we don’t want all traffic to
always go through a bridge
• So we do not stop here, we only configure here
– Access to the Puppet Master and the network allows access to
our configuration
– Our configuration includes information about our EIP pool, as
well as whether we need to acquire additional EIPs
– If we don’t need an EIP, then we continue to use our the
bridge/Puppet Master
Tools For Instance Configuration
• Instance metadata
– Instance ID, user data (always available)
– AWS (requires Internet access)
• Remember, instance data uses AWS API calls

• Puppet
– Configuration rules
– Unsecured files

• Amazon S3
– Secured files (use role-based API authentication)
EIP Management
• DNS (Amazon Route 53) for address configuration
– Configure a master name that contain all EIPs (for configuration)
– Configure host name for regional EIPs (latency-based)

• Each instance knows the master name
• Use EIP APIs to intersect the master list with the
EIP list of the instance’s VPC
• Instances find their neighbors and share the EIPs
• Each instance periodically checks itself
EIP Pseudo-Code – Startup
Get a Primary Public IP – repeat until successful
Allocate Network Interfaces and Private IPs (based on instance type)
Notify application of all Public IPs acquired with a Network Interface
EIP Pseudo-Code – Periodic
Use DNS, EIP APIs to determine current pool for my region, intersect
Validate my Primary Public IP – get one if required
Validate configured Public IPs – release if no longer configured
Check Scale Group, determine address count per instance (ROUND UP)
Determine Public IP changes, and allocate/release with application’s help
Release a Public IP if I have too many (application determines which)
Allocate all required Public IPs if I have too few
If there are nodes without an address, give one up
Instances are ordered, and know who will give up an address
Application picks the least used address
EIP Pseudo-Code – Shutdown
Release all additional Network Interfaces
Release all Public IPs except my Primary Public IP (for logging)
The instance then terminates, freeing the Primary Public IP
IP1 .. IPn

VPC (per AZ)
User Data

Instance Data

Route 53
Bridge/Puppet Master
Amazon S3

EIP Management
Global Scale, Global Services
Adding Back The 90%
• Our configured instances play nice with AWS
–
–
–
–
–

Bootstrapping through AMI or Cloud Init
Auto Scaling groups set user and instance data
Load balancers managed with Auto Scaling groups
Latency-based Route 53 address for TCP/HTTP
Latency-based Route 53 address for UDP and whitelists

• Internet access for remote logging
• Amazon CloudWatch for monitoring
AutoScale (per region)
Instance Data

Route 53

VPC (per AZ)
User Data

IP1 .. IPn
Bridge/Puppet Master

Amazon S3

Elastic Load Balancing

Goal Achieved

CloudWatch
papertrail

Route 53
Latency-based
Lookups
Please give us your feedback on this
presentation

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

Contenu connexe

Tendances

FunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang EcosystemFunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang EcosystemRobert Virding
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputPaolo Negri
 
Ciso executive summit 2012
Ciso executive summit 2012Ciso executive summit 2012
Ciso executive summit 2012Bill Burns
 
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
 
Netflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconNetflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconAdrian Cockcroft
 
Intuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the CloudIntuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the CloudSid Anand
 
(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...
(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...
(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...Amazon Web Services
 
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...Amazon Web Services
 
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...Amazon Web Services
 
Netflix Webkit-Based UI for TV Devices
Netflix Webkit-Based UI for TV DevicesNetflix Webkit-Based UI for TV Devices
Netflix Webkit-Based UI for TV DevicesMatt McCarthy
 
Rendering Takes Flight
Rendering Takes FlightRendering Takes Flight
Rendering Takes FlightAvere Systems
 
Embracing Failure - Fault Injection and Service Resilience at Netflix
Embracing Failure - Fault Injection and Service Resilience at NetflixEmbracing Failure - Fault Injection and Service Resilience at Netflix
Embracing Failure - Fault Injection and Service Resilience at NetflixJosh Evans
 
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)Adrian Cockcroft
 
Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015
Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015 Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015
Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015 Mariano Gonzalez
 
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...Amazon Web Services
 
Engineering Netflix Global Operations in the Cloud
Engineering Netflix Global Operations in the CloudEngineering Netflix Global Operations in the Cloud
Engineering Netflix Global Operations in the CloudJosh Evans
 

Tendances (18)

FunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang EcosystemFunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang Ecosystem
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughput
 
Ciso executive summit 2012
Ciso executive summit 2012Ciso executive summit 2012
Ciso executive summit 2012
 
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...
 
Netflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconNetflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at Gluecon
 
Intuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the CloudIntuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the Cloud
 
(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...
(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...
(ENT209) Netflix Cloud Migration, DevOps and Distributed Systems | AWS re:Inv...
 
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
 
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
Netflix Development Patterns for Scale, Performance & Availability (DMG206) |...
 
Netflix Webkit-Based UI for TV Devices
Netflix Webkit-Based UI for TV DevicesNetflix Webkit-Based UI for TV Devices
Netflix Webkit-Based UI for TV Devices
 
Rendering Takes Flight
Rendering Takes FlightRendering Takes Flight
Rendering Takes Flight
 
Embracing Failure - Fault Injection and Service Resilience at Netflix
Embracing Failure - Fault Injection and Service Resilience at NetflixEmbracing Failure - Fault Injection and Service Resilience at Netflix
Embracing Failure - Fault Injection and Service Resilience at Netflix
 
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
Gluecon 2013 - Netflix Cloud Native Tutorial Details (part 2)
 
Manage Hadoop Cluster with Ambari
Manage Hadoop Cluster with AmbariManage Hadoop Cluster with Ambari
Manage Hadoop Cluster with Ambari
 
Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015
Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015 Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015
Zero Downtime with OSGi - Chicago Coder Conference 05-15-2015
 
Jan Hloušek, Keen Software House
Jan Hloušek, Keen Software HouseJan Hloušek, Keen Software House
Jan Hloušek, Keen Software House
 
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
RMG202 Rainmakers: How Netflix Operates Clouds for Maximum Freedom and Agilit...
 
Engineering Netflix Global Operations in the Cloud
Engineering Netflix Global Operations in the CloudEngineering Netflix Global Operations in the Cloud
Engineering Netflix Global Operations in the Cloud
 

Similaire à Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013

Cloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSSCloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSSaspyker
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...Mohamed Sayed
 
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...Spark Summit
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09Chris Purrington
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler
 
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesYow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesAdrian Cockcroft
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile appsMugunth Kumar
 
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)VirtualTech Japan Inc.
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
 
AWS for Java Developers workshop
AWS for Java Developers workshopAWS for Java Developers workshop
AWS for Java Developers workshopRory Preddy
 
Anton Boyko, "The evolution of microservices platform or marketing gibberish"
Anton Boyko, "The evolution of microservices platform or marketing gibberish"Anton Boyko, "The evolution of microservices platform or marketing gibberish"
Anton Boyko, "The evolution of microservices platform or marketing gibberish"Sigma Software
 
Understanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceUnderstanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceAmazon Web Services
 
From WWW to Cloud Oct 2009.Pptx
From WWW to Cloud Oct 2009.PptxFrom WWW to Cloud Oct 2009.Pptx
From WWW to Cloud Oct 2009.PptxVRstorm
 
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Amazon Web Services
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQLKonstantin Gredeskoul
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabitsYves Goeleven
 
AWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the CloudAWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the CloudDavid Sayed
 
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at PinterestDataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at PinterestHakka Labs
 

Similaire à Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013 (20)

Cloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSSCloud Services Powered by IBM SoftLayer and NetflixOSS
Cloud Services Powered by IBM SoftLayer and NetflixOSS
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
FOSS4G In The Cloud: Using Open Source to build Cloud based Spatial Infrastru...
 
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
Unified Framework for Real Time, Near Real Time and Offline Analysis of Video...
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New Contexts
 
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with NotesYow Conference Dec 2013 Netflix Workshop Slides with Notes
Yow Conference Dec 2013 Netflix Workshop Slides with Notes
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile apps
 
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
Bare Metal Provisioning for Big Data - OpenStack最新情報セミナー(2016年12月)
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
AWS for Java Developers workshop
AWS for Java Developers workshopAWS for Java Developers workshop
AWS for Java Developers workshop
 
Anton Boyko, "The evolution of microservices platform or marketing gibberish"
Anton Boyko, "The evolution of microservices platform or marketing gibberish"Anton Boyko, "The evolution of microservices platform or marketing gibberish"
Anton Boyko, "The evolution of microservices platform or marketing gibberish"
 
Understanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceUnderstanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and Performance
 
From WWW to Cloud Oct 2009.Pptx
From WWW to Cloud Oct 2009.PptxFrom WWW to Cloud Oct 2009.Pptx
From WWW to Cloud Oct 2009.Pptx
 
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
Azug - successfully breeding rabits
Azug - successfully breeding rabitsAzug - successfully breeding rabits
Azug - successfully breeding rabits
 
AWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the CloudAWS re:Invent 2013 Scalable Media Processing in the Cloud
AWS re:Invent 2013 Scalable Media Processing in the Cloud
 
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at PinterestDataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
 

Plus de 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
 

Plus de 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
 

Dernier

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Dernier (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Cloud Connected Devices on a Global Scale (CPN303) | AWS re:Invent 2013

  • 1. Scaling From Zero to 6 Million Mobile Users KW Justin Leung, Banjo 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.
  • 2. Banjo • • • • • Real-time location meets social data An engineering-focused company Events recommendation, alert, & discovery Top Developer and Editor’s Choice in Google Play Named Top 10 World Innovator in Local - Fast Company
  • 3. Growth Factors • Grew from 0 to 5+ Million in 2 years • Indexed over 700 Million profiles • Processing Billions of location-based social posts • Geospatial indexing for 500K+ posts per hour • Categorized 1000’s of event types • Over 50 Million background jobs processed daily
  • 4. The Stack • Amazon EC2 / Elastic Load Balancing / Amazon S3 / Elastic Beanstalk / Heroku • Ruby on Rails • MongoDB • Redis • Memcached • Sidekiq • NewRelic / PagerDuty / Papertrail / Graphite
  • 5. First 9 Months, from 0 to Million • • • • Amazon EC2 deployment with Rubber No background jobs, frontend instances only Hosted MongoDB clusters 0 DevOp
  • 6. Challenges @ 1M Users • • • • Limited engineering resources Not too agile with Rubber Outgrew hosted MongoDB limit No DevOp
  • 7. Growing to 2M+ Users • • • • • Migrated from EC2 instances to Heroku Delayed jobs: GirlFriday -> Qu -> Sidekiq In-house MongoDB clusters on EC2 Social graph increased to 300M+ profiles 1 DBA / DevOp
  • 8. Challenges @ 2M Users • Explosion of social graph size • Cost to process background jobs • Latency to poll external social feeds
  • 9. Banjo @ 4M+ Users • 100x Heroku workers • Social graph increased to 400M+ profiles • Indexed one month of global location-based posts • 10 Millions of background jobs processed daily • Still -1 DBA / DevOp
  • 10. Challenges @ 4M Users -I • Heroku Dynos limited to 512MB of memory, slow CPU • Heroku routing latency becomes obvious • Bloated codebase, limited forking for concurrency • Power users with large social graph churns data
  • 11. Now, 6 Million Users • • • • • • • Social graph increased to 700M profiles Heroku -> Elastic Beanstalk Service-oriented architecture Unicorn -> Elastic Beanstalk with Nginx + Passenger 50 Million background jobs processed daily Hundreds of EC2 instances And... still 1 DBA/Dev-Op
  • 12. Heroku PROS / CONS • The Pros: – – – – Brainless deploy / rollback flow Instant availability of dynos and workers Zero setup & maintenance cost No Dev-Op need • The Cons: – – – – Limited memory & CPU make it hard for concurrency Routing layer latency No built-in auto-scaling, limited available zones (US/EU) Not enough control, limited access when there are platform issues
  • 13. Elastic Beanstalk - PROS / CONS • The Pros: – – – – Choice of instance types, Availability Zones Increased concurrency with Passenger / Nginx, support for auto-scaling Low latency with Amazon Route 53 & Elastic Load Balancing Cost efficient • The Cons: – – – – Initial setup cost for beanstalk containers and environments Slow container updates - currently Ruby 1.9 / Passenger 3.0.17 + Nginx 1.23 Time to spin up new instances for seamless deploys There’s some learning curve to Elastic Beanstalk scripts
  • 14. Managed EC2 Instances • MongoDB instances (DBA) • Elastic Beanstalk managed environments (Eng) • Heroku managed services (Eng) • Elastic Beanstalk + Heroku can easily be managed by small-sized, agile engineering team
  • 15. Recommendation for startups: • Start prototyping on small scale PaaS services • Add-ons are really helpful Papertrail, NewRelic, Hosted MongoDB/Redis/Memcached/Metrics • Pager alerts with ScoutApp, Pingdom, PagerDuty • Make use of health & metrics dashboards • Deploy frequently & scale up along the way
  • 17. Please give us your feedback on this presentation CPN303 As a thank you, we will select prize winners daily for completed surveys!
  • 18. Cloud Connected Devices On A Global Scale Bryant Eastham, Panasonic 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.
  • 19. Two roads diverged in a wood, and I— I took the one less traveled by … Robert Frost
  • 20. Understanding “Small” And “Cloud” • What is “small”? – Production scale that required minimal cost – Devices that Moore forgot – Speed in MHz, memory in KB, solution designed around resources • What is “cloud”? – HTML/XML for transport – SSL for security – Solutions typically don’t consider resource-constrained devices
  • 21. Implications Of Small Devices • Support for whitelisting – Yes, it is still done – No, “open up all outbound traffic” is not acceptable • One-stop connectivity – Not every protocol uses TCP – UDP is still great for some things, and required for others (NTP)
  • 22. Cloud System Requirements • • • • Support whitelisting (fixed IP address set) Support UDP as well as TCP Support Auto Scaling and Elastic Load Balancing Off-instance logging and monitoring • AWS gets us 90% there – the last 10% is our focus today
  • 23. Connectivity Using Elastic IP Addresses, With A Configuration Detour
  • 24. Meeting The Requirements (IP1 .. IPn) • Reuse when possible, invent when necessary • Reuse = Amazon Web Services: – Amazon VPC – EIP addresses – Amazon Route 53
  • 25. Application-managed IP Addresses • “Standard” EIP are not enough – All addresses must be active all the time – Addresses must move to adapt to scale changes – Support multiple addresses per instance for low-scale periods • Application-managed IP addresses fill the gaps – All addresses can be active (assigned to an instance) – API control of EIP assignment provides migration during scaling, and this can be done “cleanly” by the application  However, only VPC instances allow multiple EIP assignments
  • 26. Chickens And Eggs • Managed IP addresses require multiple EIPs and configuration • VPC is required to allow multiple EIP management • Configuration requires Puppet and AWS access • Puppet and AWS require access to the network (from the VPC) • Network access requires instance configuration and a VPC bridge • Instance configuration is part of application configuration (managed IP address information) • Rinse, lather, repeat…
  • 27. Breaking The Cycle • Each VPC requires a bridge for network access • Putting a Puppet Master on this bridge breaks the cycle of network access/configuration – – – – Allows the use of VPC security groups to control access Use a lightweight instance Assign any EIP to allow external access Configure to support VPC/Internet bridging • All VPC instances are configured to use the Puppet Master as their gateway (initially)
  • 28. VPC (per AZ) VPC (per AZ) VPC (per AZ) VPC (perIPn) (IP1 .. AZ) (IP1 .. IPn) AZ) VPC (per (IP1 .. IPn) Bridge/Puppet Master Bridge/Puppet Master Bridge/Puppet Master (IP1 .. IPn) (IP1 .. IPn) Bridge/Puppet Master Bridge/Puppet Master Too Many Puppet Masters
  • 29. What About All Those Masters? • World-wide support requires many VPCs – Multiple Availability Zones – Multiple regions • Each VPC requires network access – Each VPC requires a bridge • We solved one problem, and introduced another – Puppet Master configuration
  • 30. Mastering The Puppet Masters • Amazon S3 is an excellent choice for Puppet Master configuration – Global, highly available – Excellent security (access control) and logging – Sharable between accounts • One-way synchronization from Amazon S3 to distributed Puppet Masters solves the configuration problem
  • 31. What About Performance? • We cannot stop here – we don’t want all traffic to always go through a bridge • So we do not stop here, we only configure here – Access to the Puppet Master and the network allows access to our configuration – Our configuration includes information about our EIP pool, as well as whether we need to acquire additional EIPs – If we don’t need an EIP, then we continue to use our the bridge/Puppet Master
  • 32. Tools For Instance Configuration • Instance metadata – Instance ID, user data (always available) – AWS (requires Internet access) • Remember, instance data uses AWS API calls • Puppet – Configuration rules – Unsecured files • Amazon S3 – Secured files (use role-based API authentication)
  • 33. EIP Management • DNS (Amazon Route 53) for address configuration – Configure a master name that contain all EIPs (for configuration) – Configure host name for regional EIPs (latency-based) • Each instance knows the master name • Use EIP APIs to intersect the master list with the EIP list of the instance’s VPC • Instances find their neighbors and share the EIPs • Each instance periodically checks itself
  • 34. EIP Pseudo-Code – Startup Get a Primary Public IP – repeat until successful Allocate Network Interfaces and Private IPs (based on instance type) Notify application of all Public IPs acquired with a Network Interface
  • 35. EIP Pseudo-Code – Periodic Use DNS, EIP APIs to determine current pool for my region, intersect Validate my Primary Public IP – get one if required Validate configured Public IPs – release if no longer configured Check Scale Group, determine address count per instance (ROUND UP) Determine Public IP changes, and allocate/release with application’s help Release a Public IP if I have too many (application determines which) Allocate all required Public IPs if I have too few If there are nodes without an address, give one up Instances are ordered, and know who will give up an address Application picks the least used address
  • 36. EIP Pseudo-Code – Shutdown Release all additional Network Interfaces Release all Public IPs except my Primary Public IP (for logging) The instance then terminates, freeing the Primary Public IP
  • 37. IP1 .. IPn VPC (per AZ) User Data Instance Data Route 53 Bridge/Puppet Master Amazon S3 EIP Management
  • 39. Adding Back The 90% • Our configured instances play nice with AWS – – – – – Bootstrapping through AMI or Cloud Init Auto Scaling groups set user and instance data Load balancers managed with Auto Scaling groups Latency-based Route 53 address for TCP/HTTP Latency-based Route 53 address for UDP and whitelists • Internet access for remote logging • Amazon CloudWatch for monitoring
  • 40. AutoScale (per region) Instance Data Route 53 VPC (per AZ) User Data IP1 .. IPn Bridge/Puppet Master Amazon S3 Elastic Load Balancing Goal Achieved CloudWatch papertrail Route 53 Latency-based Lookups
  • 41. Please give us your feedback on this presentation CPN303 As a thank you, we will select prize winners daily for completed surveys!