RailsClub 2015: Competition from Vexor'a and the story of the CI-service in a large project
Hi, Habr!
Today we want to tell about the partner of the RailsClub conference - the startup Vexor.io . This is a fast and cheap solution for automated testing (Continuous Integration). In this post: a little about Vexor, a case about testing a large project and a cool contest in which you can win a quadcopter! Here is this:
')
Vexor - continuous integration service. This is a cloud-based solution for developers that allows you to effectively test and instantly deliver features to users. The service charges only for the actual run time of your tests (per-minute billing) and at the same time is able to effectively speed up testing, parallelizing processes without a limit on the allocated resources. It turns out faster than other popular CI, and it is very convenient to pay by the minute.
Vexor can run as many builds as needed at a particular moment. In each build, tests can be parallelized to an unlimited number of threads. If you have done several pushing in a row, then for each of them separate virtual machines will be deployed (for each stream). All tests will be held in parallel, rather than sequentially, which is much faster.
There is no traditional subscription model in Vexor when you pay a fixed amount per month regardless of the intensity of use. We only need to pay for the number of minutes actually spent. The cost per minute is $ 0.015. For example, for 300 tests with a duration of 3 to 5 minutes, an average of $ 10 per month will be obtained. It is cheaper than paying a regular subscription, especially for small and medium-sized projects. And every month we give 100 free minutes for all users :)
Vexor is good for large projects. We talked with customers from Scalex , a car dealership automation project. The project is written in Ruby, consists of 382 controllers and 261 models. Here is a short excerpt from an interview with the CTO project Alexey Blinov and CEO Yury Semenchuk .
How did you organize the testing of such a complex structure? We have Rspec, not models and controllers are being tested, but the business logic that is stored in ServiceObjects. Tests 6395. On the average developer machine, they run 48 minutes. Therefore, once they stopped locally chased. The process now looks like this: you wrote a new code and tests, made a pull request. Vexor runs itself, performs tests much faster and at the same time publicly shows how well you wrote the code.
How long does it take to run the tests? About 10 minutes in 6 threads. Even when the pool-requests come in dozens, Vexor drives everything miraculously in 10 minutes, and nothing breaks. The previous technological solution at such moments put us in a queue and said: "Testing will begin in 8-12 hours." The maximum was 18 hours. And this is the time of the beginning, another hour they will go.