Tinder is Scaling with MongoDB and Some Help from ObjectRocket
Tinder is an example of a company that is outsourcing some of its most complex database management to focus on the product and what it knows best: matchmaking via geolocation. It’s an example of how even the most sophisticated Internet-scale companies need the expertise so they can manage the databases that power their service. It’s especially true when scaling, and performance starts to have equal or even more importance than the product itself.
Tinder is different than a lot of apps, said Ryan Ogle, CTO of Tinder, speaking at Rackspace::Solve this week at the Palace of Fine Arts in San Francisco. They want people to get off the app and meet people. It made it a funny thing to understand Tinder and what it offers. But in the end, if people were meeting, then they’d tell their friends. It worked: Tinder is scaling. They recently added Tinder Plus, with such features as “passport capability” for people who may want to look people up they have met through the Tinder service. Tinder started with three developers. They then started hiring people with DevOps and mobile app development experience. They now have 35 developers, and want to have 75 on staff by the end of 2015.
Today, the company does 1.7 billion ratings per day (users rate other users), which translates to 25 million matches. They have one million app installs per week.
To move forward, the company needed its app to perform well. To scale, the company needed to do it horizontally. It came to a point that Tinder had to move its focus from the product to scaling the service.
That’s where ObjectRocket enters the picture. ObjectRocket is the Rackspace service that helps companies manage MongoDB and Redis environments.
ObjectRocket started when its co-founder, Chris Lalonde, built his own wine tasting app. He did it for fun. It worked, but he lost the database when using a cloud service. He painstakingly started to build back the database.
But then he realized — why not just use Twitter?
With Twitter it just meant the service could only push back messages to the user in 140 characters or less. But the database behind Twitter was solid. Then it came to him at a Boston Bruins game, when with a friend, he thought about how they might develop a very simple database service that could also scale. Lalonde had worked at eBay when the company was taking servers off of trucks, lighting them up on the racks and almost immediately seeing them working at full capacity due to the data load.
But at eBay, the company had the benefit of time, Lalonde said. It took eBay three years to get to a million users. Now, services can get to a million users over the span of six months.
“I know a dozen startups that failed from their own success,” Lalonde said. “These problems are only going to get bigger.”
Lalonde co-founded the company with Erik Beebe and Kenny Gorman. Rackspace acquired ObjectRocket about two years ago, and has since made it part of its data services group, which helps companies like Tinder scale out.
Tinder’s issues are a reminder of the balloon analogy that Battery Ventures’ Adrian Cockcroft talks about. Squeeze a balloon and the air just gets pushed to another part. The same is true when there is a quest for app simplicity, both for the end user and the developer building it. The complexity shifts to the distributed infrastructure and the people managing it, so it is fast, seamless and performs well. It requires skills that often companies do not have. That’s true for companies like Tinder.
Tinder worked with ObjectRocket to scale and grow into the app it is today. MongoDB, the NoSQL database, has part of the architecture since day one. Mongo is simple to set up, Ogle said. It just works. But it is one thing to work, and another thing entirely to work in a production environment. They knew how to use it, but using and maintaining it are different things. Tinder needed help. They hired ObjectRocket to help with the performance on MongoDB. Today, ObjectRocket hosts MongoDB databases, such as the one that matches people. They connect to the databases via Amazon Web Servies. They run Node.js with the native driver and connect into ObjectRocket with it. At some point, Tinder will have to move out of the cloud due to costs and such. ObjectRocket offers on-premise offerings, which they hope will ease that transition if that day ever comes.
Object Rocket has also helped Tinder find the best database administrators (DBAs), something that is hard to do in this world. Mongo prototyping is easy, but scaling and maintaining it is pretty complex, Ogle said.
It’s not just Mongo that is complex. Distributed architectures are generally difficult to manage and scale. There are countless examples of the pains that have come to companies that have not planned correctly for scaling. That’s true for large enterprise operations and savvy startups, like Tinder.