SlideShare a Scribd company logo
Scaling when you are not Google
Abel Muiño
Abel Muino
‣ Lead Software Engineer
‣ Tweets as @amuino
‣ In another life, co-owned
1uptalent.com, played with
Docker and used AWS for
everything.
Disclaimer
‣ Cabify is 5 years old
‣ I joined Cabify about 1.5 years ago to work on product
‣ What you will hear today might be
‣ 70% folklore / 30% experience
‣ Only about production
‣ Not applicable to other areas (data analytics)
Mad scalability: Scaling when you are not Google
Cabify
2011 2012 2013 2014 2015 2016
Completed Journeys
(Axis has no legend because NDA and stuff)
Backend committers
0
5
9
14
18
2011 2012 2013 2014 2015 2016
We are hiring!
(As if it wasn’t obvious from the charts)
Circadian rhythm
Prelude
???? - 2014
Cabify foundations
‣ Mostly Ruby, some Go
‣ Running on VPS
‣ No sysadmins (devops?)
‣ CouchDB
‣ Redis
‣ Home-grown metrics &
monitoring (limited)
Servers
‣ 3 ⨉ Host servers
‣ Horizontally scalable
‣ Most services included (sidecars)
‣ Front + Back + Queue workers
‣ 1 ⨉ Realtime server
‣ Single Point of Failure
‣ Ansible for setting them up
VPS
Provider
LB
web1 web2 web3
worker1
LBLB
redis1 redis2elastic
realtime osrm
websock
CouchDB
‣ Used to be run in-house → Unreliable
‣ Moved to Cloudant
‣ Managed
‣ Bare metal servers
‣ Requisite for everything else: to run on the same datacenter
‣ …because the network matters
Database of choice for Cabify
Pros
‣ Cheap servers
‣ Profesional DB management
‣ Still cheaper than in-house staff
‣ Scales up by either
‣ Emailing Cloudant
‣ Deploying new VPSs
‣ Datacenter lock-in
‣ Scarce visibility on load
‣ Low VPS utilization (for some
services)
Cons
Tl;dr: everything was fine
Until it wasn’t
2015 Road to bare metal
In 2014 we handled
7 times the load of 2013
Installed NewRelic
‣ Monitors our ruby stack
‣ Built custom adapters for API toolkit and CouchDB
‣ Golang not supported 😭
‣ Low hanging fruit for increasing performance
‣ Hint: Always contact a Sales Rep
‣ Bye bye home-grown monitoring! 👋
VPS provider
DDoSed
‣ Several times a week
‣ Cabify was unreachable
‣ VPSs where unreachable 

on the internal network
‣ Slow & bad support
‣ Reputation
‣ Solution: Level up!
Nobody ever got fired for choosing IBM
Moved to Bare Metal @ Softlayer
Same guys hosting our Cloudant cluster 👍
Mindset
Control the core, minimise work for everything else
Everything must go
VPS
Provider
web1 web2 web3
worker1realtime
LBLBLB
redis1 redis2elastic
osrm
subscriber
Load Balancer
‣ Multiple PoP (starting operations in several countries)
‣ CDN
‣ Supporting websockets
‣ … and Load Balancing
‣ Low TCO
‣ https://www.incapsula.com
Redis, ElasticSearch
‣ Same datacenter
‣ Completely managed
‣ Clustered / reliable
‣ RedisLabs
‣ Bonus: Memcached
‣ Qbox
OSRM
‣ Same datacenter
‣ Completely managed
‣ Enhanced dataset
‣ Google Maps & Places (with enterprise license)
‣ 2 / 3, good enough
Can do better?
Can we manage less infra?
Softlayer
web1 web2 web3
worker1realtime
Google
subscriber
Incapsula
RedislabsRedislabsRedislabs
qboxqboxQbox
RedislabsRedislabsCloudant
Subscriber
‣ Felt like reinventing the wheel
‣ Looked for battle-tested bus / queue / broker
‣ In the same datacenter
‣ Had previous experience with RabbitMQ
‣ CloudAMQP
Homebrew message bus / queue
Sidecars
‣ Every server could run Cabify
‣ All services installed
‣ Except Realtime (SPOF)
‣ Horizontal scaling
‣ Good server utilisation (bare metal servers are larger)
Make each host self-sufficient
Cut own servers in 50%
Served 5 times more requests
Softlayer
host01 host02 host03
realtime
Google
Incapsula
RedislabsRedislabsRedislabs
qboxqboxqbox
RedislabsRedislabsCloudant
CloudAMQPCloudAMQP
Pros
‣ Same-datacenter latencies
‣ Only care about our product
‣ Still cheaper than in-house staff
‣ Scales up by either
‣ Emailing a provider
‣ Deploying new Servers
‣ Good visibility on perf
‣ Datacenter lock-in
‣ Still no visibility on Golang perf
‣ Competing services on each
server with different needs
‣ Fast & light http requests
‣ Slow & heavy queue workers
‣ Debugability
Cons
Tl;dr: everything was fine
Until it wasn’t
2016, pushing to
the limit
In 2015 we handled
5 times the load of 2014
In 2016 we would invade LatAm
(new countries, cities, marketing…)
Bumps on the road
‣ Start seeing intermittent latency spikes on Cloudant
‣ Disable some services, get back on track
‣ Tied to peak hours
‣ We lived through these, but was stressful
Be easy on the database
‣ Removed frequent N+1 queries patterns
‣ Moved some queries to ElasticSearch
‣ Started caching more on Memcache
‣ Grew the cluster
‣ From 200ms to 100ms (average) 👏
(trying to sleep better)
RabbitMQ can’t cope
‣ We saturated the cluster CPU with moderate load
‣ Tied to us using tag-based routing
‣ Messages were delivered much later than expected
‣ Made changes to use simpler routing
‣ Is there anything simpler than RabbitMQ for simple routing? 🤔
Interlude
DynDNS goes down, Cloudant uses them
We lose access to our databases cluster load balancer
Patched /etc/hosts with the actual ips in 30 minutes
The right tool for the job
‣ Clouchdb / Cloudant, not the best database for frequent updates
‣ Looking for alternatives to store fast-changing models
‣ RethinkDB
‣ Fast, easy to use, hosted options in same datacenter
‣ Streaming query updates
Expecting growth in line with previous years
Broke RethinkDB load balancer
Database stats were OK, but the LB couldn’t handle our rate
Slow support, no “enterprise” option
Decided to phase out RethinkDB
Wrote our first «database»
Simple in-memory store, backed by Couchdb
Update indexes on writes. All queries are indexed
Implemented in Golang, consumed from Ruby
Replaces RethinkDB, which replaced CouchDB
Cloudant latency spikes fixed!
Grow the cluster for the second time in the year
Load balancers hardware upgraded, problems gone
Also reduced the number of connections from ruby
Relax the Sidecars
‣ Load on background workers interfering with serving http
‣ Split the servers:
‣ Front (ruby/golang http interface)
‣ Workers (ruby job queues, ruby background)
Remove RabbitMQ
Replace with NSQ
Nice mix of sidecar and discovery
Softlayer
Multiplied own servers by 3
Served 4 times more requests
Google
Incapsula
RedislabsRedislabsRedislabs
qboxqboxqbox
RedislabsRedislabsCloudant
CloudAMQPCloudAMQP
host01-09host01-09host01-09host01-09
rt01-02rt01-02
work01-03work01-03work01-03
Pros
‣ Despite the problems, we had
top-notch support from
Cloudant
‣ Easy to scale out
‣ In-process database opened
doors to new features
‣ Datacenter lock-in
‣ Still no visibility on Golang perf
Cons
Cabify @ 2017
In 2016 we handled
4 times the load of 2015
Hired our first
full-time sysadmin!
Taking ownership
Improve our infra
Own load balancers
‣ Still use Incapsula for its PoP
‣ Achieved much better load balancing
‣ 3 new dedicated servers
Better control & traceability
Plans for the future
Own redis cluster
‣ Migrating from Redislabs hosted to Redislabs Enterprise
‣ hosted used virtual servers
‣ we rely heavily on redis (and memcached)
‣ 3 new dedicated servers
‣ WIP
Better control & traceability
Ruby → Elixir
‣ Fun to code with
‣ Higher performance
‣ Less memory
‣ Investment, about to release first service to production
Extract from Product
Dedicated teams and resources for specific components
Make the core of Cabify leaner
Thanks!
And sorry for the 60 slides
Questions?
Abel Muiño
@amuino

More Related Content

PDF
Cachopo - Scalable Stateful Services - Madrid Elixir Meetup
PDF
Faster PHP apps using Queues and Workers
PPT
Gearman - Job Queue
KEY
Perl in Teh Cloud
KEY
Gearman and CodeIgniter
PPTX
Gobblin on-aws
PDF
Queue your work
PDF
High Concurrency Architecture and Laravel Performance Tuning
Cachopo - Scalable Stateful Services - Madrid Elixir Meetup
Faster PHP apps using Queues and Workers
Gearman - Job Queue
Perl in Teh Cloud
Gearman and CodeIgniter
Gobblin on-aws
Queue your work
High Concurrency Architecture and Laravel Performance Tuning

What's hot (20)

PDF
Developing Java based microservices ready for the world of containers
PDF
Altitude SF 2017: Advanced VCL: Shielding and Clustering
PDF
Fluentd - road to v1 -
PPTX
pgWALSync
PPTX
Resources, Providers, and Helpers Oh My!
KEY
Php resque
PPTX
ApacheCon EU 2016 - Apache Camel the integration library
PDF
Integrating systems in the age of Quarkus and Camel
PDF
Distributed Queue System using Gearman
PDF
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 People
PDF
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
PDF
I can't believe it's not a queue: Kafka and Spring
PDF
Communication in Python and the C10k problem
PPTX
Introduction to Apache Camel
PDF
Embulk at Treasure Data
PPTX
Distributed Applications with Perl & Gearman
PDF
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
ODP
Using Apache Camel connectors for external connectivity
PPTX
Integrating microservices with apache camel on kubernetes
PPTX
Serverspec and Sensu - Testing and Monitoring collide
Developing Java based microservices ready for the world of containers
Altitude SF 2017: Advanced VCL: Shielding and Clustering
Fluentd - road to v1 -
pgWALSync
Resources, Providers, and Helpers Oh My!
Php resque
ApacheCon EU 2016 - Apache Camel the integration library
Integrating systems in the age of Quarkus and Camel
Distributed Queue System using Gearman
Kafka Summit NYC 2017 - Running Hundreds of Kafka Clusters with 5 People
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
I can't believe it's not a queue: Kafka and Spring
Communication in Python and the C10k problem
Introduction to Apache Camel
Embulk at Treasure Data
Distributed Applications with Perl & Gearman
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Using Apache Camel connectors for external connectivity
Integrating microservices with apache camel on kubernetes
Serverspec and Sensu - Testing and Monitoring collide
Ad

Viewers also liked (20)

PDF
Hello elixir (and otp)
PDF
Maven 3… so what?
PDF
Chrome Extensions for Web Hackers
PDF
Computer Vision & Communities - State of The Map LatAm 2016 - Sao Paulo
PPTX
The Dementia Project: Innovation Driven by Social Challenges - As a example ...
PPTX
Google AMP 1 an après : quel bilan, quelles perspectives ?
PDF
Bio 3A POSTER- The effect of ethanol on CO₂ production in mice Mus musculus
PPTX
Biodegradable Materials, Biodegradable ink pens IDM10
PDF
Presentación Frumecar recicladores
PDF
Tfa_N-methylation
PPTX
Informatica y periodismo
PDF
Mary Ann Shaw Center for Public and Community Service Spring 2016 Newsletter
PPTX
ET2016 Smart Japan Alliance Llilum 161118
ODP
Los musulmanes
PDF
Fums Profums Salums 2017
PDF
Cloud Technology Ecosystems
PPTX
3. report writing
PDF
IBM DevOps Workshops at IBM InterConnect 2017
PDF
Storia dei rolex dal 1912
PPTX
Tipos de memoria
Hello elixir (and otp)
Maven 3… so what?
Chrome Extensions for Web Hackers
Computer Vision & Communities - State of The Map LatAm 2016 - Sao Paulo
The Dementia Project: Innovation Driven by Social Challenges - As a example ...
Google AMP 1 an après : quel bilan, quelles perspectives ?
Bio 3A POSTER- The effect of ethanol on CO₂ production in mice Mus musculus
Biodegradable Materials, Biodegradable ink pens IDM10
Presentación Frumecar recicladores
Tfa_N-methylation
Informatica y periodismo
Mary Ann Shaw Center for Public and Community Service Spring 2016 Newsletter
ET2016 Smart Japan Alliance Llilum 161118
Los musulmanes
Fums Profums Salums 2017
Cloud Technology Ecosystems
3. report writing
IBM DevOps Workshops at IBM InterConnect 2017
Storia dei rolex dal 1912
Tipos de memoria
Ad

Similar to Mad scalability: Scaling when you are not Google (20)

PDF
Five Years of EC2 Distilled
PDF
How a Small Team Scales Instagram
PDF
Highly scalable caching service on cloud - Redis
PDF
Server’s variations bsw2015
PDF
Comment choisir entre Parse, Heroku et AWS ?
PPTX
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
PPTX
Serverless at Lifestage
PDF
Scaling web application in the Cloud
PDF
OSDC 2018 | Migrating to the cloud by Devdas Bhagat
PDF
What is Amazon Web Services & How to Start to deploy your apps ?
PPTX
AWS re:Invent 2013 Recap
KEY
WebWorkersCamp 2010
PDF
Building and scaling a B2D service, the bootstrap way
PPTX
Serverlessusecase workshop feb3_v2
PPTX
Application design for the cloud using AWS
PPTX
Auto scaling websites in the cloud
KEY
Dibi Conference 2012
PDF
Scaling an invoicing SaaS from zero to over 350k customers
PDF
Scaling Up with PHP and AWS
PDF
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Five Years of EC2 Distilled
How a Small Team Scales Instagram
Highly scalable caching service on cloud - Redis
Server’s variations bsw2015
Comment choisir entre Parse, Heroku et AWS ?
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
Serverless at Lifestage
Scaling web application in the Cloud
OSDC 2018 | Migrating to the cloud by Devdas Bhagat
What is Amazon Web Services & How to Start to deploy your apps ?
AWS re:Invent 2013 Recap
WebWorkersCamp 2010
Building and scaling a B2D service, the bootstrap way
Serverlessusecase workshop feb3_v2
Application design for the cloud using AWS
Auto scaling websites in the cloud
Dibi Conference 2012
Scaling an invoicing SaaS from zero to over 350k customers
Scaling Up with PHP and AWS
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Modernizing your data center with Dell and AMD
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Machine learning based COVID-19 study performance prediction
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Network Security Unit 5.pdf for BCA BBA.
Modernizing your data center with Dell and AMD
Spectral efficient network and resource selection model in 5G networks
Understanding_Digital_Forensics_Presentation.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Machine learning based COVID-19 study performance prediction
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Monthly Chronicles - July 2025
Mobile App Security Testing_ A Comprehensive Guide.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Empathic Computing: Creating Shared Understanding

Mad scalability: Scaling when you are not Google

  • 1. Scaling when you are not Google Abel Muiño
  • 2. Abel Muino ‣ Lead Software Engineer ‣ Tweets as @amuino ‣ In another life, co-owned 1uptalent.com, played with Docker and used AWS for everything.
  • 3. Disclaimer ‣ Cabify is 5 years old ‣ I joined Cabify about 1.5 years ago to work on product ‣ What you will hear today might be ‣ 70% folklore / 30% experience ‣ Only about production ‣ Not applicable to other areas (data analytics)
  • 6. 2011 2012 2013 2014 2015 2016 Completed Journeys (Axis has no legend because NDA and stuff)
  • 8. We are hiring! (As if it wasn’t obvious from the charts)
  • 11. Cabify foundations ‣ Mostly Ruby, some Go ‣ Running on VPS ‣ No sysadmins (devops?) ‣ CouchDB ‣ Redis ‣ Home-grown metrics & monitoring (limited)
  • 12. Servers ‣ 3 ⨉ Host servers ‣ Horizontally scalable ‣ Most services included (sidecars) ‣ Front + Back + Queue workers ‣ 1 ⨉ Realtime server ‣ Single Point of Failure ‣ Ansible for setting them up VPS Provider LB web1 web2 web3 worker1 LBLB redis1 redis2elastic realtime osrm websock
  • 13. CouchDB ‣ Used to be run in-house → Unreliable ‣ Moved to Cloudant ‣ Managed ‣ Bare metal servers ‣ Requisite for everything else: to run on the same datacenter ‣ …because the network matters Database of choice for Cabify
  • 14. Pros ‣ Cheap servers ‣ Profesional DB management ‣ Still cheaper than in-house staff ‣ Scales up by either ‣ Emailing Cloudant ‣ Deploying new VPSs ‣ Datacenter lock-in ‣ Scarce visibility on load ‣ Low VPS utilization (for some services) Cons
  • 15. Tl;dr: everything was fine Until it wasn’t
  • 16. 2015 Road to bare metal
  • 17. In 2014 we handled 7 times the load of 2013
  • 18. Installed NewRelic ‣ Monitors our ruby stack ‣ Built custom adapters for API toolkit and CouchDB ‣ Golang not supported 😭 ‣ Low hanging fruit for increasing performance ‣ Hint: Always contact a Sales Rep ‣ Bye bye home-grown monitoring! 👋
  • 19. VPS provider DDoSed ‣ Several times a week ‣ Cabify was unreachable ‣ VPSs where unreachable 
 on the internal network ‣ Slow & bad support ‣ Reputation ‣ Solution: Level up!
  • 20. Nobody ever got fired for choosing IBM Moved to Bare Metal @ Softlayer Same guys hosting our Cloudant cluster 👍
  • 21. Mindset Control the core, minimise work for everything else
  • 22. Everything must go VPS Provider web1 web2 web3 worker1realtime LBLBLB redis1 redis2elastic osrm subscriber
  • 23. Load Balancer ‣ Multiple PoP (starting operations in several countries) ‣ CDN ‣ Supporting websockets ‣ … and Load Balancing ‣ Low TCO ‣ https://www.incapsula.com
  • 24. Redis, ElasticSearch ‣ Same datacenter ‣ Completely managed ‣ Clustered / reliable ‣ RedisLabs ‣ Bonus: Memcached ‣ Qbox
  • 25. OSRM ‣ Same datacenter ‣ Completely managed ‣ Enhanced dataset ‣ Google Maps & Places (with enterprise license) ‣ 2 / 3, good enough
  • 26. Can do better? Can we manage less infra? Softlayer web1 web2 web3 worker1realtime Google subscriber Incapsula RedislabsRedislabsRedislabs qboxqboxQbox RedislabsRedislabsCloudant
  • 27. Subscriber ‣ Felt like reinventing the wheel ‣ Looked for battle-tested bus / queue / broker ‣ In the same datacenter ‣ Had previous experience with RabbitMQ ‣ CloudAMQP Homebrew message bus / queue
  • 28. Sidecars ‣ Every server could run Cabify ‣ All services installed ‣ Except Realtime (SPOF) ‣ Horizontal scaling ‣ Good server utilisation (bare metal servers are larger) Make each host self-sufficient
  • 29. Cut own servers in 50% Served 5 times more requests Softlayer host01 host02 host03 realtime Google Incapsula RedislabsRedislabsRedislabs qboxqboxqbox RedislabsRedislabsCloudant CloudAMQPCloudAMQP
  • 30. Pros ‣ Same-datacenter latencies ‣ Only care about our product ‣ Still cheaper than in-house staff ‣ Scales up by either ‣ Emailing a provider ‣ Deploying new Servers ‣ Good visibility on perf ‣ Datacenter lock-in ‣ Still no visibility on Golang perf ‣ Competing services on each server with different needs ‣ Fast & light http requests ‣ Slow & heavy queue workers ‣ Debugability Cons
  • 31. Tl;dr: everything was fine Until it wasn’t
  • 33. In 2015 we handled 5 times the load of 2014
  • 34. In 2016 we would invade LatAm (new countries, cities, marketing…)
  • 35. Bumps on the road ‣ Start seeing intermittent latency spikes on Cloudant ‣ Disable some services, get back on track ‣ Tied to peak hours ‣ We lived through these, but was stressful
  • 36. Be easy on the database ‣ Removed frequent N+1 queries patterns ‣ Moved some queries to ElasticSearch ‣ Started caching more on Memcache ‣ Grew the cluster ‣ From 200ms to 100ms (average) 👏 (trying to sleep better)
  • 37. RabbitMQ can’t cope ‣ We saturated the cluster CPU with moderate load ‣ Tied to us using tag-based routing ‣ Messages were delivered much later than expected ‣ Made changes to use simpler routing ‣ Is there anything simpler than RabbitMQ for simple routing? 🤔
  • 38. Interlude DynDNS goes down, Cloudant uses them We lose access to our databases cluster load balancer Patched /etc/hosts with the actual ips in 30 minutes
  • 39. The right tool for the job ‣ Clouchdb / Cloudant, not the best database for frequent updates ‣ Looking for alternatives to store fast-changing models ‣ RethinkDB ‣ Fast, easy to use, hosted options in same datacenter ‣ Streaming query updates Expecting growth in line with previous years
  • 40. Broke RethinkDB load balancer Database stats were OK, but the LB couldn’t handle our rate Slow support, no “enterprise” option Decided to phase out RethinkDB
  • 41. Wrote our first «database» Simple in-memory store, backed by Couchdb Update indexes on writes. All queries are indexed Implemented in Golang, consumed from Ruby Replaces RethinkDB, which replaced CouchDB
  • 42. Cloudant latency spikes fixed! Grow the cluster for the second time in the year Load balancers hardware upgraded, problems gone Also reduced the number of connections from ruby
  • 43. Relax the Sidecars ‣ Load on background workers interfering with serving http ‣ Split the servers: ‣ Front (ruby/golang http interface) ‣ Workers (ruby job queues, ruby background)
  • 44. Remove RabbitMQ Replace with NSQ Nice mix of sidecar and discovery
  • 45. Softlayer Multiplied own servers by 3 Served 4 times more requests Google Incapsula RedislabsRedislabsRedislabs qboxqboxqbox RedislabsRedislabsCloudant CloudAMQPCloudAMQP host01-09host01-09host01-09host01-09 rt01-02rt01-02 work01-03work01-03work01-03
  • 46. Pros ‣ Despite the problems, we had top-notch support from Cloudant ‣ Easy to scale out ‣ In-process database opened doors to new features ‣ Datacenter lock-in ‣ Still no visibility on Golang perf Cons
  • 48. In 2016 we handled 4 times the load of 2015
  • 51. Own load balancers ‣ Still use Incapsula for its PoP ‣ Achieved much better load balancing ‣ 3 new dedicated servers Better control & traceability
  • 52. Plans for the future
  • 53. Own redis cluster ‣ Migrating from Redislabs hosted to Redislabs Enterprise ‣ hosted used virtual servers ‣ we rely heavily on redis (and memcached) ‣ 3 new dedicated servers ‣ WIP Better control & traceability
  • 54. Ruby → Elixir ‣ Fun to code with ‣ Higher performance ‣ Less memory ‣ Investment, about to release first service to production
  • 55. Extract from Product Dedicated teams and resources for specific components Make the core of Cabify leaner
  • 56. Thanks! And sorry for the 60 slides