How does a well-known startup Bookmate use Vexor CI?

Oleg Balbekov, Vexor' CEO, visited the Bookmate Company. Their developer team is constantly using Vexor for the testing process
26 May 2017   1659

CTO Ilya Mikheev and developers Vlad Syabruk and Alexey Nikitin had a chat with Oleg.


Cloud Continuous Integration service.

Oleg Balbekov: Could you tell me about the project? What exactly is it?
Alexey Nikitin: Bookmate is the easiest way to read and find new books. It is convenient and quite cheap to read there. Also there’s an opportunity to make money on your own art. Now there arises a new aim of the project: the socialization of the readers. We want the readers to be able to ‘meet’ each other, to create a content in the form of shelves, quotations and impressions of some books.

Bookmate teamBookmate team

Oleg Balbekov: Do you have a subscription business model?
Ilya Mikheev: Yes, this is the main difference from traditional shops where you have to pay for each book separately. We, on the other hand, give access to the whole library.

Oleg Balbekov: What do you need socialization for? To enhance presence in social networks?
Ilya Mikheev: We ourselves want to become a social network for readers. Users browse through their friends’ feed, see what they read, share their impressions, like their posts.

Vlad Syabruk, developer Vlad Syabruk, developer

Oleg Balbekov: I thought that the era of social networks was coming to an end. There are no new ones made.
Vlad Syabruk: It’s interesting for readers to discuss some books. Besides, as it happens, you look through a profile of some girl or a guy, you see what they read and then you form an impression about them. I saw some twits that a guy hit on a girl via a Bookmate profile. It means that the site also helps to make new friends.

Oleg Balbekov: How many users do you have?
Ilya Mikheev: We’ve recently had the 3-millionth user. He is from Indonesia; we sent him a gift. We have launched there a while ago, got to hear the unusual Indonesian language. Most users are from Russia but if you look through the new users, there it’s fifty-fifty.

Oleg Balbekov: What technologies do you use?
Alexey Nikitin: We have chosen the regular way. It means relational databases, and since we started a long time ago, under the hood, we’ve got MySQL. Besides that, we use Rails, Sidekiq, Redis, Memcache, MongoDB, ElasticSearch (changed from Sphinx to it).

Oleg Balbekov: Memcache and Redis at the same time?
Alexey Nikitin: We use Redis not that much, only for caching.

Oleg Balbekov: What is MongoDB for?
Alexey Nikitin: For right holders’ statistics and friends’ activity page.

Oleg Balbekov: Is it true that ElasticSearch is much worse than Sphinx? I’ve read that Elastic uses too much memory.
Vlad Syabruk: When starting, we used Elastic only for the statistics. Then we thought: what do we need Sphinx for then? There’s not so much data for ElasticSearch to die. Besides, there are two of them. The one with statistics struggles. The other one with a search works easily.

Oleg Balbekov: Is there a search through the texts of the books?
Vlad Syabruk: No, not yet. There’s search through the titles, the descriptions, the authors with a bunch of filters and sortings.

Ilya Mikheev, CTO Bookmate 

Ilya Mikheev, CTO Bookmate

Oleg Balbekov: How many developers work in your team?
Ilya Mikheev: There are 25 members in our team. About 8 people work with Ruby. In addition, we have front-end, iOS, Android, WP, QA and mobile web.

Oleg Balbekov: How do you test your project?
Vlad Syabruk: Basically, we write tests for models and controllers, more rarely, integration tests. The testing department makes tests on Watir that are clicked in a browser; they are not carried out in Vexor. And manual testing. Therefore, there are 3 types: automatic developers’ tests, automatic testers’ tests and manual clicking.

Oleg Balbekov: How is your work process organized?
Ilya Mikheev: Our product manager comes up with a feature and gives it to the head manager. Then the head manager places it at the top or at the bottom of some board depending on its priorities. It’s planned for each iteration whether to work on the feature or to put it aside.

Oleg Balbekov: Sounds like Scrum.
Ilya Mikheev: It’s more like Scrumban. There are two-week iterations within which developers are supposed to complete the planned tasks and to put out a number of ‘fires’. After carrying out the testing successfully, we merge a pull-request and release the code in production. The testing process falls behind the development process, as there are 3 testers and 25 developers. That’s why we want to stop manual back-end testing.

Bookmate officeBookmate office

Oleg Balbekov: How did you start working with Continuous Integration services?
Vlad Syabruk: We were trying to find the first CI for quite a while and, eventually, chose CircleCI. We were using it for half a year. Then there was a period of using Circle and Vexor simultaneously, after which we had to choose one service because paying for both wasn’t a rational thing to do. Vexor worked faster, cost less and the interface was easier to use.

Oleg Balbekov: Your tests in 4 threads are completed in less than 9 minutes.
Ilya Mikheev: For us, it’s a lot. I remember the times when it was 4 minutes.

Oleg Balbekov: You’ve grown a lot since then.
Ilya Mikheev: Yes, we’ve written 2500 tests already. When starting using Vexor, we had 700. We also began working with Rubocop — another thread — a month ago.

Oleg Balbekov: What does Rubocop provide you with?
Vlad Syabruk: Lots of debate about brackets and quotes. Because of them, we don’t manage to do anything else :)

Oleg Balbekov: I remember meeting you at a DevConf where you said that Vexor was like a drug that is difficult to get off. What did you mean by it?
Alexey Nikitin: I was talking about the convenience. Tests last long? Make another thread and the testing will run as long as 2 months ago.

 Alexey Nikitin, Developer Alexey Nikitin, Developer

Oleg Balbekov: What is the main problem with the alternatives to Vexor?
Alexey Nikitin: Queues. You have to wait for the previous build to end. Not that long, still not that pleasant.

Oleg Balbekov: Could you recommend Vexor?
Vlad Syabruk: It’s a treasure for the small companies. You pay a few dollars a month and don’t worry. For the bigger ones, it is a way to significantly speed up testing for the same sum of money; also there are no queues for developers.

Which CI do you use?

In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. There are a lot of different continious integration solutions with strong and weak sides.
Take part in the survey of our portal. Which Continuous integration system do you use?

37% (11 votes)
23% (7 votes)
17% (5 votes)
10% (3 votes)
7% (2 votes)
3% (1 vote)
Atlassian Bamboo
3% (1 vote)
Apache Maven
0% (0 votes)
0% (0 votes)
0% (0 votes)
Total votes: 30

Vexor at HighLoad++ 2017

Alexandr Kirillov reported about how to build a cluster to calculate thousands of high-CPU / high-MEM tasks at one of the biggest Russian IT conferences
12 December 2017   4557

The HighLoad++ is professional conference for developers of high-load systems is the key professional event for everyone involved in the creation of large, heavily-frequented, and complex projects.

Main purpose of the event is to exchange knowledge and experience among leading developers of high-performance systems, which support millions of users simultaneously.

Agenda consists of all crucial web development aspects, such as:

  • Large scale architectures,
  • databases and storage systems,
  • system administration,
  • load testing,
  • project maintenance, etc.

This year the conference program will be dazzled with current trends: IoTBlockchainNeural networksArtificial Intelligence, as well as Architecture & Front-end performance.

The 11th HighLoad++ conference took place on the 7th and 8th of November 2017. 

  • 66% of participants work in large companies (of 30+ employees), 
  • 60% earn above the market, 
  • 55% hold leadership positions and have subordinates. 
  • 9% of conference visitors work as technical directors,
  • 12% work as heads of technical departments, and 29% work as lead developers and team leads.

Alexandr Kirillov, CTO at Evrone, had a speech at HighLoad++ 2017 "How to build a cluster to calculate thousands of high-CPU / high-MEM tasks and not go broke"

Alexandr Kirillov at HighLoad++ 2017
Alexandr Kirillov at HighLoad++ 2017
Alexandr Kirillov at HighLoad++ 2017
Alexandr Kirillov at HighLoad++ 2017
Alexandr Kirillov at HighLoad++ 2017
Alexandr Kirillov at HighLoad++ 2017

Our project is a cloud-based CI-service, where users run tests of developed projects.
This year the system of auto purchase of our project purchased 37218 machines (Amazon Instances). This allowed us to process 189,488 "tasks" (test runs) of our customers.

Tests are always resource-intensive tasks with the maximum consumption of processor capacities and memory. We can not predict how many parallel computations and at what point in time it will be. Before us was the task of building the architecture of the system, which can very quickly increase, as well as rapidly reduce the power of the cluster.

All this was complicated by the fact that the resource-intensive calculations did not allow us to use the classic tools AWS or GoogleComputeEngine. We decided to write our own system of automatic scaling, taking into account the requirements of our subject area.

Alexandr Kirillov
CTO, Evrone

At his report, Alexandr told about how they designed and built the architecture of the service, which is the system of automatic procurement of machines.

Additionally, he told more about the main architectural blocks of projects that solve similar problems.