Vexor In Big Business

In this article we will show you how Vexor helps developers to test code in a fast, convenient and rather cheap way
26 May 2017   1293
Vexor

Cloud Continuous Integration service.

The representatives of the Scalex Company have told us about their project, their daily work and about the reasons they have chosen Vexor.

The company’s CEO Yuri Semenchuk and its CTO Alexey Blinov managed to talk to us, which we would like to thank them for.

Oleg Balbekov: At first, could you tell us about the company, the project, and about yourself?
Yuri Semenchuk: We are working on Scalex which is a big management system for our partner’s car dealership that conducts selling new and used cars, spare automobile parts, provides service and practices CRM and marketing. The mode of the program is originally scalable, i.e. it will be suited to both a garage and a gigantic corporate group with dozens of dealerships in different cities. Besides, it’s a SaaS-product.

Yuri Semenchuk, CEO ScalexYuri Semenchuk, CEO Scalex

We established the company in the beginning of 2013. The main crew consisted of guys who had worked in the automotive industry. They know the business inside out and are able to automate it.

Now we have 16 members in our team. Business analysts, front-end and back-end developers, UX and software testers are among them. We are very active in attracting new talented workers, so if someone is interested in our project, welcome to our team.

Oleg Balbekov: And what about the situation on the automation market in the automotive industry?
Yuri Semenchuk: The market isn’t young. Official car dealerships appeared 25 years ago. After that, the ‘big guys’ developed certain projects which they invest in a lot. The smaller business enterprises are introducing software systems based on 1С. The restrictions of the platform make people use custom settings, which is not that far from rewriting the whole thing to make it meet their requirements. The big corporate groups are struggling as well, since their products use technologies, created 25 years ago. They are faced with sheer technological restrictions. Imagine that everything is written in Delphi. It’s difficult to find developers who would support such a product. And as a result, the entrepreneurs have to either buy a new project or invest comparable sums in the development of the existing one.

Alexey Blinov, CTO ScalexAlexey Blinov, CTO Scalex

Oleg Balbekov: Would you tell us about the technologies you use?

Alexey Blinov: Under the hood, we’ve got a standard stack for the people, who chose Ruby On Rails: Postgres, Sidekiq. Likewise, Redis for Sidekiq. We aren’t using Redis in the raw yet, though perhaps we will. On the horizon, there is probably ElasticSearch.

Oleg Balbekov: So you’re saying your project is ‘big’. Tell me then, how many controllers and models have you got?

Alexey Blinov: 382 controllers and 261 models.

Oleg Balbekov: Wow. You’ve got 260 tables in the database?

Alexey Blinov: Yup. But it doesn’t include the many-to-many associations. And yet it’s one third of the work planned.

Oleg Balbekov: How did you organize the testing of such a complicated structure?

Alexey Blinov: The testing is also standard for our crowd. We’ve got Rspec. Not the models and the controllers are tested, but the business logics that is stored on ServiceObject. There are 6395 tests. On an average developer’s machine, it takes 48 minutes to be completed. That’s why one day they just stopped being carried out locally. Now the process looks like this: you write a new code and tests, you make a pull request and then Vexor starts. It runs tests much faster and also publicly shows how successful your code is written.

Scalex officeScalex office

Yuri Semenchuk, CEO ScalexDuring the interview

Oleg Balbekov: How long does it take Vexor to complete the testing?

Alexey Blinov: About 10 minutes in 6 threads. Even when there are dozens of pull requests, by some miracle, Vexor does everything within 10 minutes and nothing breaks. In such a situation, the previous technical solution would enqueue us and say: “The testing will start in about 8–12 hours”. The maximum was 18 hours. But then it will only start and the testing itself will take an hour.

Oleg Balbekov: On the whole, at what point did you start using Continuous Integration?

Alexey Blinov: The tests didn’t exist since the very beginning of the project. But we realised it was wrong and started working on it. The first choice was Jenkins deployed on DigitalOcean. The second was TeamCity. But while the project was extending, both became unsuitable due to the slow work.

Alexey Blinov, CTO Scalex

Oleg Balbekov: Which system was the 8–10 hour waiting about?

Alexey Blinov: TeamCity. But we didn’t buy the agents there because the price ($200) seemed to us too high. And that was only the minimal license that wouldn’t solve the problems.

Oleg Balbekov: And, apparently, you’d still be faced with the power limit of the server that you bought on DigitalOcean?

Alexey Blinov: TeamCity would allow us to have 10 pull requests going on at the same time but the tests themselves would still be going in one thread. 7000 tests in 1 thread are those same 40 minutes. And at that point we started to seek an alternative. There wasn’t many cloud CI-services. In the other services, you had to pay for the amount of workers. In Vexor, you pay for the minutes spent; consequently, it’s much cheaper.

Oleg Balbekov: Do you use docker? If yes, how?

Alexey Blinov: We have a bot for a chat and a print server in it. But in the closest future, we’re planning to wrap the whole app up. We’ll make a fast and convenient deploy with it. Likewise, we have many assets, which you’d better build locally.

Oleg Balbekov: At Vexor, we’ve already written an experimental docker support and will soon present it. We’re testing it with anyone who’s willing to participate. So just tell us if you want it.

Oleg Balbekov: And the last question. Whom would you advise Vexor?

Alexey Blinov: If a project is open source, lives on GitHub and isn’t catastrophically huge, the free Travis will do. But if the tests of an open source project aren’t fast on Travis, moreover, if a project is private, you should use Vexor.

Oleg Balbekov: Thank you for the interview!

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?

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   3746

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.