Growing from 0 to 100 million users

Post on 13-Jan-2017

156 views 0 download

Transcript of Growing from 0 to 100 million users

Growing from 0 to 100 million

usersAndres Silva

Monolithic architecture

Decide which language is best for you!

Not all languages work the same way, and perhaps each approach specializes in certain aspects.

Prototype.Speed.Mathematical Processes.Access to database.Processing of queues.Synchronous.Asynchronous.RAM or CPU

Our first million users

Bottleneck

Microservices

Uber

“Postgres worked well for us at the beginning, but we ran into significant trouble scaling Postgres with our growth. Nowadays, we still keep Postgres at some instances, but the chunk of our databases are built on MySQL (typically using our Schemaless layer) or, in some specific cases, NoSQL databases like Cassandra. Overall, we are pretty happy with MySQL.”

Postgres

MySQL

Databases

Our case

36,000 Transactions per minute

52,000,000 Transactions per day

Microservice in Node js, with MYSQL

Our solution

Auto Scaling

Microservices

RDS

Http to Web Sockets

RDS

“ With Amazon Relational Database Service (Amazon RDS), it’s simple to configure, use

and scale a relational database in the cloud. It provides profitable capabilities of

customizable sizes and, at the same time, it manages the database’s tedious

administrative tasks, which allows for the focus to be placed on the app and the business.”

RDS

Protocols

Auto Scaling

“ Auto Scaling allows you to keep your app’s availability and automatically increase or reduce Amazon’s EC2 capacity, based on the defined conditions. You can use Auto Scaling to make sure that you are executing the desired amount of Amazon EC2 instances. Auto Scaling can also automatically increase the number of Amazon EC2 instances during demand peaks, in order to maintain the performance and reduce capacity during slower periods to minimize costs. ”

Auto Scaling

Our 10 million users

Costs

Lambda

AWS Lambda allows you to run code without supplying or managing servers. You will only pay for the computing time you use- there is no charge when the code is not running. With Lambda, you can run code for almost any type of application or back-end service, without having to manage a single thing. You only have to load the code. Lambda will take care of everything you need to run and scale the code with high availability. You can configure the code to activate automatically from other AWS services or do it directly from any web or mobile application.

Major Prosecutions

Major Prosecutions

Micro Deploy

50 million users and we continue to

grow.

Infrastructure as Code

Define infrastructure as code to increase operator productivity and transparency.

COLLABORATE & SHARE

Terraform configuration can be stored in version control, shared, and collaborated on by teams of operators.

EVOLVE YOUR INFRASTRUCTURE

Track the complete history of infrastructure versions.

AUTOMATION FRIENDLY

If it can be codified, it can be automated.

Application Load Balancer

Differences with elastic load balancer

Maintaining Quality at Scale

Maintaining Quality at Scale

Micro Deploy

Real Cases

Netflix bandwidth usage climbs to nearly 37% of internet traffic at peak

hours.

Questions?