Hopefully most of us have just enjoyed an exciting summer holiday. According to Travel Weekly Magazine, 9 out of 10 of us searched online before booking our trip. With the number of us booking airfare, hotels and events online increasing every year, it’s no wonder that OneTwoTrip is experiencing great growth. (Source: http://bit.ly/1MNwB2K).
The travel industry has been revolutionized by the web and powerful connected customers are demanding more from their providers than ever before. Turning the industry on its head, new nimble, digital first players have emerged using technology as a differentiator for competitive advantage.
For Leonid Ryaboshtan, co-founder and former CTO of OneTwoTrip, helping customers book the best holiday possible is a passion. The OneTwoTrip team believes that there is a lot more to be done to help travelers across the world travel smarter, easier and faster. The best flight booking experience is just the start.
OneTwoTrip.com is a new and innovative travel booking website with a patented method of ticketing that saves travel bookers money and time. Launched in 2011, the website already has millions of users globally, and presently has a team of just under 100 employees based in Europe, the USA, and Russia.
OneTwoTrip is a Basho customer and a fan of Riak KV.
How is Riak KV empowering your business?
It is pretty valulable in any business to have the ability to focus on the growth but at the same time not to lose control over basic processes. For us, RIAK KV provided control over a number of processes such as scalability and reliability. Not a single byte of data was lost during numerous failures (even having SLA 99.99, anything can happen in 5 years); we did not have any problems with the database growth, we used to settle everything by adding a node to the cluster or by upgrading the existing one keeping 100% uptime. At the same time, the administrative simplicity prevents us from wasting too much time on cluster automation.
First, as a digital business where technology is a differentiator against the competition, what was the key in building the solution?
Our goal was to build a scalable solution. We were trying to build a system with the fewest single points of failure possible (yeah, there are still some), so we had the same request for every system component – easy and transparent scalability. The database was not an exception. We wanted to exclude possible problems that would come from fast business growth, and that was a main driver of our architecture decisions.
Starting a business that is only as good as the technology it runs on from scratch must have been quite a challenge. Where did you start?
When we started, we didn’t have much experience with any technology that would give us what we needed. We kept our focus on solutions that were fast, reliable, and scalable. When we discovered Riak KV, the core development team spent days doing write/read tests using the Basho Bench test tool in different environments. We wanted to make sure that the solution would do well in virtual environments as well.
We quickly found that Riak KV was just what we needed. For us it was like a black box with plain interface and these always make good integrations in our experience.
You’ve been on Riak KV since 2011, what does your current deployment look like?
At different points of time we had from 1-3 Riak KV clusters running for different purposes. First we began with three node clusters, but we’ve ended up with six. Currently there’s one active cluster working in a virtual environment (6 nodes with 32 GB Ram, 12 Cores and 768 GB SSD).
The dataset is not that big, but with all copies we end up with some hundreds of gigabytes of data – closing in on a terabyte. It’s growing steadily, most of the data is related to sales, and we have a steady demand all year. By adding new features, sizes of some keys are growing as well, and more of them are added in terms of sales X keys ratio. We find that Riak KV works best for persistent data, not for rapid create-delete objects.
What Return on Investment has Riak KV provided you?
I think we saved a lot of DevOps hours that we didn’t spend on database management. We didn’t have to take care of or build an architecture that would suit our needs, we just had it out of the box. Riak KV also stores data perfectly, we never lost a single byte of data because of Riak KV. I don’t think there’s something else with comparable quality of support for the given money.
The community also was of a huge help as we were evolving our use.
What’s the future hold?
Riak KV is at our core and that won’t change. But we keep investing and evolving our solution to take advantage of new capabilities. We are excited to be exploring and utilizing the new services as they come on board on the Basho Data Platform. Obviously querying the data is critical for our business so the more effective we can be the better. Currently we’re redoing the reporting system to take advantage of 2i (Secondary Indexes)
I’m sure you’ve got lots to share with others going through their implementations. What would you tell everyone to save time or energy?
I would say that you should try to avoid pre-optimization as much as possible, you should always run idea-implementation-measure cycles and make them efficiently short. It‘s actually a common advice, but works well here. You shouldn’t avoid new technologies that are offered by new versions of products you use as we’ve found it can save you a lot of time.
What advice would you give anyone currently evaluating NoSQL databases?
You should be very strict on defining the use-cases your business will have with databases you are evaluating. That should be your starting point. After most of the things are fulfilled, you begin to drop one thing or another to fit to the chosen technology.