Building the infrastructure for a mobile application that reaches millions of users is not an easy task and the folks at Zenly seem to know exactly what they are doing. I enjoy talking to experts in their field to learn how they do things and recently sat down with Jean-Baptiste Dalido of Zenly to learn more about his professional background and upcoming talk at Scylla Summit 2017. Let’s begin.
Please tell us about yourself and what you do at Zenly?
I am the Head of Infrastructure at Zenly, previously Appgratis and Batch.com, so I have almost 10 years of experience in mobile and startup environments. I started with Zenly two and half years ago and built the infrastructure from the ground up. It was quite a new experience compared to my previous jobs because Zenly has such a particular use-case. Instead of having to sustain high traffic on your infrastructure that is easily overcome with cache farms, I was facing a new problem because everything is live. We cannot display an old position, even if it’s one minute old because we might lose the live effect that the app produces for the user, and at the same time we may lose credibility because the product seems to be unusable. The use case for Zenly is by far closer to online video games than any other mobile app with seconds as a metric instead of ms. Other than that, you’ll find me on a motorcycle riding the nice road of France.
How did you get started working with databases?
I started working with heavy loaded databases at Appgratis, handling data for 10 Million Daily Active Users (DAU). It was my first move over to distributed databases on bare metal. We benchmarked at the time multiple solutions from sharded (and non-distributed) Postgres instances, Riak, and of course Apache Cassandra. We went for the last one for one main reason: the amazing distributed network design (multiple clusters over regions), and the overall concepts behind the database. I think Apache Cassandra is the software that made me understand and love distributed systems.
What types of issues or problems did you face when managing massive Apache Cassandra Clusters?
My main issue with Apache Cassandra from over three startups has always been garbage collection (GC). Cassandra is a database that you need to handle cautiously. When you are designing the data model, you cannot do any mistakes on your data distribution. If you do so and one or more of your nodes slowly became unavailable, you’re in for a long night every time. GC is a deal-breaker for a database, the distributed nature of Apache Cassandra and the high number of nodes you’ll deploy might transform it into a relatively small/hidden issue. But most of the clusters you are going to deploy in real life will be small and less than 15 nodes. You need to have so much knowledge of the do’s and don’ts of Apache Cassandra to be proficient and the database itself will become the problem on small clusters and impact your uptime.
What will you be talking about at Scylla Summit 2017?
Zenly’s journey from Elasticsearch to Scylla in production and our experiences eight months after.
Can you please tell me more about your talk?
This talk is going to be an overview of the reasons we chose Scylla, its deployment on Google Cloud, the performances we achieved, and the few hiccups we hit along the way. The real goal of the talk is to make people understand that Scylla is perfectly ready to use in production and can cover so many use cases. The side effect of Scylla’s performances is simple: it’s going to hide the fact you’ve done mistakes and still respond with incredible performances, becoming a human-production-ready usable database. And of course, if you have some experience of tuning your data models with Apache Cassandra and apply the same rules on Scylla, you are entering a brand new world.
How many transactions does Scylla process at Zen.ly?
We are right now handling over 600,000 requests per second on our clusters with very few nodes. Our clusters are split by functions to have a better overview of the load produced and to ensure the high availability of the application per feature. Everything at Zenly is built around the fact that anything can die instantly anywhere on the infrastructure and we apply the same principles for Scylla. Of course, we’ve done quite a few benchmarks and we’ve seen easily a million request per second with around 10 nodes in our clusters.
How do you use Elasticsearch and how does it interact with or compliment Scylla?
Elasticsearch has always been used as the main database at Zenly, handling everything from users to any data related to production. There are no interactions between the two. Scylla completely replaced Elasticsearch as our main database. In fact, Scylla is now the ONLY database in use at Zenly except for the cache which is still running with Redis, but it may not last long. Scylla has proven to be a good choice for so many use cases. We had a discussion not so long ago on why we should not use Scylla for a cache and why Redis was better. Contrary to Apache Cassandra where we had plenty of arguments to say it was crazy and useless but with Scylla, we started thinking it was not a bad choice at all due to the design and the amazing performances we see every day. It’s still an open subject and I’ll be glad to have some discussions about it at the summit.
How can the people get in touch with you?
Feel free to reach out to me on Twitter.
Thank you very much, Jean-Baptiste. We can not wait to see your talk in person and learn more. If you want to attend Scylla Summit 2017 and enjoy more talks like this one, please register here.
Scylla Summit is taking place in San Francisco, CA on October 24-25. Check out the current agenda on our website to learn about the rest of the talks—including technical talks from the Scylla team, the Scylla roadmap, and a hands-on workshop where you’ll learn how to get the most out of your Scylla cluster.
Apache®, Apache Cassandra®, are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. No endorsement by The Apache Software Foundation is implied by the use of these marks.