Сегодня мы хотим рассказать о партнере конференции RailsClub – стартапе Vexor.io. Это быстрое и дешёвое решение для автоматизированного тестирования (Continuous Integration). В этом посте: немного о Vexor, кейс о тестировании большого проекта и крутой конкурс, в котором можно выиграть квадрокоптер! Вот такой:
Vexor – continuous integration сервис. Это облачное решение для разработчиков, позволяющее эффективно тестировать и моментально доставлять пользователям фичи. Сервис берет плату только за фактическое время прогона ваших тестов (поминутная тарификация) и при этом умеет эффективно ускорять тестирование, распараллеливая процессы без лимита на выделяемые ресурсы.
Получается быстрее, чем в других популярных CI, да и платить поминутно очень удобно.
Vexor умеет запускать столько билдов, сколько нужно в конкретный момент. В каждом билде тесты можно распараллелелить на неограниченное количество потоков. Если вы сделали несколько пушей подряд, то для каждого из них развернутся отдельные виртуальные машины (под каждый поток). Все тесты пройдут параллельно, а не последовательно, что намного быстрее.
В Vexor’e нет традиционной подписной модели, когда вы платите фиксированную сумму в месяц вне зависимости от интенсивности использования. У нас платить нужно только за количество действительно потраченных минут. Стоимость минуты – $0.015.
Например, за 300 тестов длительностью от 3 до 5 минут получится в среднем $10 в месяц. Это дешевле, чем оплачивать регулярную подписку, особенно для маленьких и средних проектов. А еще каждый месяц мы даем 100 бесплатных минут для всех пользователей :)
Подробнее о проекте читайте в нашем блоге на Medium.
Vexor хорош и для больших проектов. Мы поговорили с клиентами из компании Scalex, проектом по автоматизации работы автодилеров. Проект написан на Ruby, состоит из 382 контроллеров и 261 моделей. Вот небольшая выдержка из интервью с CTO проекта Алексеем Блиновым и CEO Юрием Семенчуком.
Как вы организовали тестирование такой сложноустроенной структуры?
У нас Rspec, тестируются не модели и не контроллеры, а бизнес-логика, которая хранится в ServiceObjects. Тестов 6395. На средней машине разработчика они выполняются 48 минут. Поэтому однажды их перестали локально прогонять. Процесс сейчас выглядит следующим образом: ты написал новый код и тесты, сделал пул-реквест. Vexor запускается сам, выполняет тесты сильно быстрее и при этом публично показывает, насколько удачно ты написал код.
Сколько времени уходит на прогон тестов?
Около 10 минут в 6 потоков. Даже когда пул-реквесты идут десятками, Vexor все прогоняет каким-то чудом за 10 минут, и ничего не ломается. Предыдущее технологическое решение в такие моменты ставило нас в очередь и говорило: «Тестирование начнётся часов через 8-12». Максимально было 18 часов. И это время начала, еще час они будут идти.
Полное интервью с техническими подробностями читайте тут.
Для посетителей RailsClub мы приготовили конкурс, в котором можно выйграть квадрокоптер AR.Drone 2.0.
Что нужно сделать:
- Зарегистрируйтесь на vexor.io.
- Добавьте свой проект и прогоните первый билд (все тесты должны пройти успешно).
- Привяжите кредитную карту.
Среди тех, кто сделает это и будет на RailsClub 26 сентября, мы выберем счастливчика и вручим квадрокоптер на сцене.
Пробуйте Vexor и приходите на конференцию! Мы будем рады ответить на все вопросы о сервисе там, в комментариях или в почте max@vexor.io.
Комментарии (5)
vseorlov
22.09.2015 20:580.015$ это же за минуту за один контейнер? У нас сейчас тесты идут 50 минут на 6 контейнерах на CircleCi, билдов в день около 50, получается 0.015$ * 50 минут * 6 контейнеров * 50 билдов = 225$ в день. Я правильно понимаю? Это получается гораздо дороже, чем у нас на CircleCi, там это стоит 850$ в месяц.
Lxx
23.09.2015 02:08+2Добрый вечер, Всеволод.
Спасибо за комментарий. Вы даже поставили меня в тупик на первые 10 минут, но потом я начал «подозревать».
Скажите, вы уверены в том, что у вас 50 билдов в день по 50 минут общей длительности и каждый такой билд проходит в 6 параллельных потоков? Другими словами, в день вы тестируете 2500 минут – это 41 час в сутки непрерывного тестирования (в 6 параллельных потоков)?
Вы рассказываете о 50 билдах за 8 рабочих часов! У вас правда делается один пуш/билд один раз в 9 минут?
Вижу, что вы купили в CircleCI возможность делать по 3 билда параллельно. Это значит, что за рабочий день CircleCI сможет просчитать для вас: (8 часов * 60 минут * 3 билда одновременно) / 50 минут длительности каждого вашего билда = 28,8 билдов. Ну а у вас их 50.
Если первые 3 программиста сделают по одному пушу за первые пол часа рабочего дня, то четвертый программист ждёт в очереди 20-50 минут. При таком потоке после 3х первых часов работы, можно забыть о том, что билды досчитаются до конца рабочего дня.
Скорее всего, у вас огромные проблемы с тем, что билды разработчиков встают в очереди на просчет. Мы это проходили у наших клиентов. Именно очереди на просчет являются недостатком наших конкурентов. У нас нет очередей, ибо мы выделяем для каждого клиента столько ресурсов, сколько необходимо ему в данную минуту времени.
Теперь по существу:
Выглядит так, что ваш проект в 4 раза больше самого большого тестируемого проекта на Vexor’e. Для вас мы гарантировано сделаем индивидуальный тариф, существенно меньший чем $0.015!
Далее …
Мне кажется, что прогон тестов в 50 минут — это очень долго. В Vexor’e вы платите за минуты, поэтому сможете за ту же стоимость сделать не 50 минут на 6 потоках, а 25 минут на 12 потоках или 15 минут на 20 потоках. Вы будете тестировать в 2 или 3 раза быстрее при той же цене.
Повторюсь, что у нас нет лимитов на выделяемые ресурсы. Сколько бы у вас не случилось одновременных билдов и сколько бы в них не было параллельных потоков — мы посчитаем все параллельно.
Давайте знакомиться? Как я могу с вами связаться? Мы с удовольствием сделаем для вас индивидуальный тариф, который будет существенно выгоднее, чем у конкурентов.
vseorlov
24.09.2015 23:11Здравствуйте, Олег
У нас около 20 разработчиков и не все в одной временной зоне, поэтому рабочий можно считать больше 8 часов :)
Плюс иногда мы делаем бэкмёржи в несколько бранчей и на каждом идут тесты. Так что да, около 50 билдов по 3 била параллельно и каждый в 6 потоков :)
50 минут это очень долго, но пока мы не придумали как ускорить тесты. В основном время занимает cucumber. Я напишу вам в личные сообщения.
Temirkhan
Эзотерика — это классно, но подозрительно) Что значит «каким-то чудом»?
Lxx
Добрый день,
Действительно Эзотерика :) но это цитата клиента. Думаю Алексей просто впечатлен скоростью работой Vexor'a, поэтому посчитал это чудом ;)