Growing from 0 to 1 million users
Devops Citytaxi, Docente catedrático Tecnología sistemas informáticos.
Contact : jhon.castro@ucaldas.edu.co
Twitter : @edisoncast
Github : edisoncast
Who am I ?
Monolithic Application
Source: https://dzone.com/storage/temp/570495-slide1.png
Decide which language is best for you!
Not all languages work in the same way, and perhaps their approach is more specialized is certain aspects.
Prototype.
Speed.
Mathematical Processes.
Access to database.
Processing of queues.
Synchronous.
Asynchronous.
RAM or CPU
Response Time
Kind of hosting?
Source:
https://www.gigsgigs.com/wp-content/uploads/2015/05/compare3-1080px.png
Bottleneck
Source: http://www.fredberinger.com/images/bottleneck.jpg
Sympthoms
Vertical Scaling vs horizontal scaling
First steps
Source: https://homes.cs.washington.edu/~mernst/advice/version-control-fig3.png
https://assets.digitalocean.com/articles/architecture/separate_database.png
Load Balancer
Source: https://www.ricohidc.com/images/load-balancing-diagram.png
Caching Reverse Proxy
Source: https://cdn-1.wp.nginx.com/wp-content/uploads/2016/08/Garrett-Content_Caching-9_Caching-Process-11-14.jpg
Master-Slave Database Replication
Source: https://mariadb.com/sites/default/files/pictures/Images/dbreplication173.png
Our Case
36.000 Transactions per minute
52.000.000 Transactions per day
Our solution
Auto Scaling
Microservices
RDS
Http to Web sockets
Auto scaling
“ Auto Scaling le permite mantener la disponibilidad de la aplicación y aumentar o reducir automáticamente la capacidad de Amazon EC2, según las condiciones que defina. Puede utilizar Auto Scaling para asegurarse de que está ejecutando la cantidad deseada de instancias de Amazon EC2. Auto Scaling también puede incrementar automáticamente el número de instancias de Amazon EC2 durante los picos de demanda para mantener el desempeño y reducir la capacidad durante los periodos de calma en la demanda para minimizar los costos. ”
Auto scaling
Microservices
RDS
“ Con Amazon Relational Database Service (Amazon RDS), es sencillo configurar, utilizar y escalar una base de datos relacional en la nube. Proporciona capacidad rentable y de tamaño modificable y, al mismo tiempo, administra las tediosas tareas de administración de la base de datos, lo que le permite centrarse en sus aplicaciones y en su negocio. “
RDS
Protocols
NoSQL database inclusion
Our Goal
1 million users
Costs
Micro deploy (Devops Culture)
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.
Continuous integration
Application load balancer
Maintaining Quality at Scale
Real cases
Netflix Bandwidth Usage Climbs to Nearly 37% of Internet Traffic at Peak Hours
Trend of global User Numbers
Questions
Preguntas?