VexorCI — свежий взгляд на continuous integration

    Привет, Хабр.
    Меня зовут Олег Балбеков, я хочу рассказать вам о нашем новом проекте Vexor CI.

    image

    Vexor CI – облачный continuous integration сервис для разработчиков, позволяющий эффективно тестировать проекты.

    Ежедневно разработчики используют CI-сервисы, однако большинство из них дорогие, медленные, неэффективные и накладывают большие ограничения на использование.

    Vexor:
    • для тех, кому надоело тратить время и деньги на поддержание тестовой инфраструктуры;
    • для тех, кому давно не хватает ресурсов локального сервера;
    • для тех, кто не решается на облачный CI потому, что дорого;
    • для тех, кто устал ждать очереди на просчёт тестов в обычном облачном CI;
    • для тех, кому действительно важна скорость.

    У нас справедливая цена (поминутная оплата) и безлимитные мощности для каждого. Всем подключившимся мы дарим $10 и не берём оплату, пока вы настраиваете сервис. У нас самая дружественная русскоязычная поддержка (в моём лице). Подключайтесь!


    Теперь обо всём и по порядку.

    Continuous integration – это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Обычно это автоматический запуск тестов после каждого вашего коммита.

    Вы справедливо возразите: ведь в данный момент существует много решений для непрерывной интеграции, зачем нужно было делать ещё одно? Давайте поговорим о них.

    Итак,

    Зачем мне Vexor, если я уже гоняю мои тесты на своём ноутбуке?


    Большинство разработчиков пишут тесты (юнит-тесты или интеграционные тесты) и запускают их локально на своём компьютере, но в этом подходе есть несколько проблем. Во-первых, ресурсы самого компьютера ограничены, а значит тесты начнут тормозить по мере увеличения их количества. Во-вторых, в какой-то момент можно просто забыть о тестах и перестать их запускать, особенно если тесты проходят более чем за 10 минут.

    Как результат, вы допускаете ошибки и баги попадают в продакшн. Vexor же запускает тесты автоматически при каждом коммите: вам не нужно помнить о тестах, они просто есть и работают. А если вы допустите ошибку, Vexor сообщит вам об этом. Используя сервис непрерывной интеграции, вы улучшаете качество вашей работы.

    Да, но...

    У меня уже есть open-source решение, установленное на нашем сервере


    Хорошо, давайте порассуждаем и посчитаем.

    Итак, для open-source решения, установленного на вашем оборудовании, вам необходим хороший сервер. Также сервер нужно администрировать и тратить на это время ваших разработчиков или нанять системного администратора.

    Всё это затраты, которые могут быть даже большими, чем стоимость облачного решения.

    Кроме того, вы потратите достаточно много времени на установку решения. Если, в случае с Vexor, вам лишь нужно настроить ваш проект под CI, то в других случаях вам нужно будет настроить не только ваш проект, но и сам CI.

    Далее...

    Open-source решение, установленное на вашем оборудовании, нужно обслуживать. Раз в месяц оно будет падать, а вы столкнётесь с отсутствием поддержки. Вы вынуждены будете тратить в месяц минимум 2 – 4 часа времени разработчика на обслуживание. Как только вашу команду покинет человек, который раньше занимался обслуживанием, его работу станет некому делать. Обычно с open-source решениями руководитель получает головную боль и лишние затраты.

    А что с финансами?

    Почему-то так получается, что за все Continuous integration сервисы нужно платить, даже если вы ими не пользовались.

    Вот смотрите, при использовании CI вы должны купить сервер и платить за него ежемесячно. Или купить подписку в облачном решении на ограниченное количество выделяемых ресурсов.

    Даже если вы были в отпуске и ничего не коммитили – вы платите за месяц, причем платите за оборудование круглосуточно. Задумайтесь, разве вы работаете по ночам? А по выходным? Но вы платите за сервер или ресурсы, на котором будет «крутиться» ваш CI.

    Vexor ­– это поминутная оплата за реальное использование ресурсов. У нас вы платите только за те минуты, которые мы используем для прогона ваших тестов. Не было коммитов в течение месяца – счёт равен нулю. Информация по среднему чеку есть у нас на сайте (Average monthly cost).

    Ну и наконец...

    Вы всегда ограничены мощностью вашего локального сервера, и в какой-то момент вам начинает не хватать скорости.

    Мы – облачный сервис, который умеет одновременно выделять вам столько мощности, сколько нужно. В случае, когда вы сделаете 10 коммитов подряд, ваш open-source CI будет выполнять их последовательно. Vexor же моментально выделит вам 10 серверов и сделает всё параллельно. При этом вы платите только за минуты, которые мы действительно потратили на работу с вашими тестами.

    Хорошо, но...

    Я уже использую облачный CI-сервис!


    Как я уже писал, скорее всего вы:
    — ограничены в ресурсах;
    — испытываете проблемы со скоростью;
    — оплачиваете подписку и платите за простой, даже если не используете сервис;
    — платите банально дорого, даже если ваш проект ещё на стадии роста.

    Друзья, подключайтесь к Vexor и избавьтесь от этих ограничений и несправедливой стоимости.
    Вы можете попробовать Vexor совершенно бесплатно. Мы дарим всем подключившимся пользователям $10 на счёт и не берём оплату до тех пор, пока вы не настроите свой проект.

    image

    image

    image


    Мы будем рады любому отзыву, совету или вашим идеям.

    Пишите мне на oleg@vexor.io и следите за нами в твиттере.
    RubyRussia
    45,00
    Конференция разработчиков на Ruby и RoR
    Поделиться публикацией

    Похожие публикации

    Комментарии 69

      +3
      Когда планируете добавить битбакет?
        +5
        Круто, что платишь только за время прогона тестов! Нафиг подписки!
          +6
          asci Честно говоря, уже сделали и тестируем. Я думаю, завтра выложим.
            +1
            Пользуюсь wercker.com и он отлично себя зарекомендовал. Бесплатный (по крайней мере пока), и можно закрытые проекты в нем запускать. И для Open source он будет оставаться бесплатным. Очень много готового. Ни одного из минусов описанного в статье
              0
              У Wrecker есть минус — он не работает с GitLab, но, зато, поддерживает нотификации в hipchat, что очень круто.
                0
                2 concurrent builds?
                на вексоре сколько угодно параллельных билдов
                  0
                  Тогда 2 минуса :)
                    0
                    Wercker еще в beta, и 2 параллельных билда это на период беты.
                      +1
                      Arilas, Wrecker хороший сервис. Полагаю, что существенное отличие – в приницпах ценообразования. Когда он перестанет быть «бета», он станет платным и «по подписке». Как думаете, сколько будут стоить те самые 2 concurrent builds, которые сейчас предлагают бесплано?

                      Как я уже описывал в статье, вы вынужденны будете платить фиксированную сумму в месяц в не зависимости от того использовали вы сервис или нет. Кого-то это устроит, кто-то захочет более справедливой цены.

                +2
                Молодцы!
                  0
                  Спасибо большое, стараемся!
                  +9
                  А вот если выбросить маркетинг из статьи, что там в техническом плане внутри? И еще кажется вы давно не обновляли бложик…
                    –1
                    vaniaPooh Спасибо за ваш вопрос. Это наш первый пост, ознакомительный. На будущей неделе обязательно расскажем о технических подробностях и о том, что внутри! Подписывайтесь на блог, ставьте лайки, не переключайте канал ;)
                    +2
                    Lxx, не могли бы вы привести сравнение функционала с travis-ci?
                      +1
                      ekho Честно говоря, мы начали разработку Vexor после того, как поняли, что тревис – оооочень дорогой. Начинающие проекты просто не могут себе позволить платить сразу 129 долларов в месяц, а проекты покрупнее влетают в $489 в месяц. В тревисе вы покупаете определенное количество «Concurrent Jobs». Вас ограничивают, вы платите за них даже тогда, когда ничего не разрабатываете.

                      В Vexor – молодые проекты, у которых не так много тестов, будут платить не больше $10 – $15, проекты у которых много тяжелых тестов, разумеется дроже, но мы не ограничиваем проекты ничем. Такого понятия, как фиксированное количество «Concurrent Jobs» у нас нет. Если вдруг у вас один билд считается в 5 параллельных потоков и ваша команда в пятницу вечером решила запостить одновременно 10 фич, Vexor развернет для вас 50 воркеров и все быстро прогонит.

                      Лимитов по ресурсам нет.

                      Если хотите, проконсультирую вас и расскажу подробности, пишите мне в skype: balbekov_oleh
                        +2
                        Ошибочка в моем скайпнейме: balbekov_oleg
                          0
                          Спасибо. Мне достаточно Вашего ответа. Для публичных репозиториев на гитхабе травис кстати бесплатен.

                          У себя мы используем Bamboo по многим причинам. И вполне довольны выбором.
                      +2
                      В чем идет запуск тестов? Докер?
                      Как конфигурить его?
                      Что с джангой?

                      PS скрины лучше делать не на ретиновом макбуке.
                        0
                        > $0.015 per minute

                        Это на воркера или на весь тест из 8 воркеров?

                        Поясню: у нас в 4 воркера билд идет 16 минут. Соотвественно ваши 8 воркеров могут нам встать в копеечку )
                          0
                          Azy Максим, спасибо за ваши вопросы. Для стандартных проектов, все работает «из коробки». Давайте я подключу вас в скайп чатик разработчиков. Сможете задать вопросы плюс максимально поможем с настройками.

                          Предлагаю вам просто попробовать! Кстати, не понял от куда вы взяли историю «8 воркеров». У вас может быть столько воркеров, сколько вам нужно.

                          Напишите мне в скайп: balbekov_oleg, подскажем, поможем, настроим ;) Уверен, вам понравится.
                            0
                            Прочитал «If you've set up 8 parallel jobs per build» как «you could set up to 8 parallel jobs» :)
                              0
                              ойой, я понял! спасибо большое, мы перепишем, чтобы никто больше ничего не путал.
                                0
                                Да, будет полезно если укажете что нет лимита)
                            0
                            у вас 16 минут тестируется рельсовый проект?
                              0
                              Джанга
                                0
                                а чего так долго то?

                                У нас 3000 тестов эрланговского проекта гоняются минуту
                                  0
                                  Тут надо померяться количеством генерируемых фикстур
                            0
                            попробовал SignUp with Github с главной
                              +4
                              bormotov Добрый вечер, действительно какая то ошибка. Бужу команду, сейчас пофиксим!
                                +1
                                ради одного меня будить не нужно, я любопытствующий. Нам в ближайшее время SaaS не светит
                                  0
                                  Я тоже не могу зайти =(
                                    +1
                                    bormotov m00t Ребята, все починили. Как говорится «мопед не мой», упал сервис intercom и уранил нам регистрацию. Все уже заработало, проверяйте.
                                      0
                                      да, пустило.
                                      спасибо
                              0
                              Всегда пугает при логине через github, что такие приложения просят сразу же абсолютный доступ ко всем приватным репозиториям.
                                +1
                                Helsus Нам нужно реагировать на пуши в ваших ветках и комментировать статус прогона тестов. Для этого требуются права. В планах укультурить диалог добавления проектов, будет удобнее и не так страшно ;)
                                +3
                                Извиняюсь за немного оффтопик, а кто что может посоветовать такое же крутое, как Vexor или Travis, но для установки на своё железо? У нас есть ограничение — код пределов нашей сети покидать не должен, поэтому облачные сервисы для нас закрыты.
                                  +3
                                  Envek Давайте пообщаемся? Мы готовы предложить коробочную версию Vexor'a, пишите в скайп: balbekov_oleg
                                    +5
                                    Используем TeamCity от JetBrains. Отлично работает.
                                      –2
                                      у них нет SaaS
                                        0
                                        А как вы представляете СааС на своем железе? Если ставите себе это уже априори коробка, а не саас
                                    +2
                                    Я могу один билд запустить в 10 потоков для того чтобы быстрее получить фидбек? Скажем у меня есть пак достаточно тяжелых тестов, для которых надо кучу всего поднятого — бд, сервер очередей, несколько vhost-тов в nginx, этот пак выполняется достаточно долго. Поэтому я арендую несколько дроплетов на digitalocean и запускаю на них тесты параллельно, чтобы время билда держать в пределах 10-15 минут. Я могу что-то подобное сделать на вашей системе? К сожалению, логин не работает сейчас, не могу сам посмотреть это в UI.
                                      +2
                                      moot Вы можете запустить один билд в 10 потоков. Мы умеем ставить в тест образы нужный софт, кешировать это, работать с кастомным ПО для тестирования.

                                      Пожалуй, у вас не обычный проект. Давайте обсудим это, как говориться, в кулуарах. Пишите мне в скайп: balbekov_oleg, мы сможем все рассказать, показать, помочь настроить.
                                      +1
                                      Поддерживается ли docker?
                                      Если да, то можно ли билдить и запускать свои приватные докерфайлы?
                                        +3
                                        bibendi Добрый вечер, Михаил. Мы поддерживаем работу с docker'ом. Запускать приватные докерфайлы чуть сложнее и нужно покурить конфиг. Давайте мы вам поможем с этим? Пишите мне в скайп: balbekov_oleg
                                        0
                                        Планируете ли добавить поддержку .Net?
                                          0
                                          Добрый день, Игорь.

                                          Пока мы отлаживаем и внедряем другие технологии. Про .Net вы первый упоминаете, будем держать в уме, если количество обращений за .Net'ом возрастет – добавим поддержку.
                                          +1
                                          У поминутной оплаты есть следующий недостаток: отличающаяся стоимость за один и тот же набор действий при разной нагрузке на сервер. А как вы планируете бороться с затянувшимися тестами клиентов в часы пик?

                                          Сейчас я для личных целей использую инстанс jenkins в jelastic. Виртуалка включается при необходимости и тушится в отсутствии нагрузки. Ценник получается минимальный (можно даже сказать, сравнимый). Да, настройка дженкинса ложится на собственные плечи (как, в прочем, и настройка любого сборщика), но в плюсе — приватное окружение.
                                            0
                                            nitso Спасибо за ваш вопрос.
                                            А как вы планируете бороться с затянувшимися тестами клиентов в часы пик?

                                            Мы используем облачный хостинг. Он дает нам возможность получать неограниченное количество мощностей в любой момент времени, поэтому такого понятия, как «часы пик» нет. Если наши клиенты вдруг захотели очень много считать тестов, мы автоматически купим столько серверов, сколько потребуется, чтобы обработать всех.
                                            настройка дженкинса ложится на собственные плечи

                                            Разумеется, есть категория наших коллег, кто с удовольствием ковыряется с настройкой тестового окружения. Но есть и те, кто с удовольствием переложит заботы по поддержке тестовой инфраструктуры на облачное решение (сопоставимое по цене, как вы упомянули).
                                            0
                                            Правильно ли я понял, что основная разница у VEROX с конкурентами типа Baboo Cloud это политика ценообразования?
                                              +1
                                              minime У нас два основных преимущества: 1. Политика ценообразования (платишь за реальное использование, а не за месяц), 2. Неограниченные ресурсы, без лимитов. 3. Автоматические масштабирование от нуля… до реально необходимых вам в данную секунду мощностей.

                                              У Baboo Cloud, как вы знаете, есть определенный тариф и лимиты на ресурсы. Вы покупаете фиксированнанное количество «Агентов» и платите за них ежемесячно, в не зависимости от того хвататет вам их или нет или использовали ли вы их в этом месяце вообще или нет.

                                                +1
                                                Большое спасибо за ответ.
                                              0
                                              Расскажите как определяется, что моему проекту не хватает ресурсов? Грубо говоря в одной «линоде» запущено много клиентов с разными джобами, если я убью диск, что будет с соседями? А, если я его убью на пол часа? Как и чем вы масштабируетесь?
                                                +1
                                                astlock Все очень просто. На этапе инсталяции вашего проекта в Vexor, вы заранее определяете как именно мы будем «гонять» ваши тесты. Если вам на один прогон тестов нужно 4 потока (4 виртуалки, грубо говоря), вы сможете указать это в Vexor'е и вам это будет предоставлено.

                                                Далее, например, ваша команда сделала 5 одновременных коммитов в репозиторий и нужно прогнать ваши тесты для 5 различных ветках/бренчей одновременно (никому же не хочется ждать очереди, всем нужно кодить дальше). Окей, это значит мы запустим для каждого коммита 4 воркера («виртуалки») и прогоним тесты. Всего для этого примера вам будет автоматически предоставлено 20 воркеров («виртуалок») на то время, пока гонятся ваши тесты. Все это, разумеется, автоматически.

                                                Готовы рассказать глубокие технические детали ;) пишите мне в скайп: balbekov_oleg
                                                  0
                                                  Спасибо за ответ. Так как я точно не ваш потенциальный клиент, то логичнее попросить бы вас оформить технические детали в виде статьи. Вы столько раз упомянули «облако» и «масштабирование», что техническая статья просто необходима:)
                                                    0
                                                    Сделаем ;)
                                                +5
                                                Ох, сколько маркетингового шума. Может продукт и достойный, но меня доводы «как все плохо без него, но как хорошо с нами» не убедили. Я не понимаю, что такого сложного в развертывании TeamCity в облаке и на что там «Вы вынуждены будете тратить в месяц минимум 2 – 4 часа времени разработчика на обслуживание». Вообще там много такого… странного, например «В случае, когда вы сделаете 10 коммитов подряд, ваш open-source CI будет выполнять их последовательно» — это тоже, мягко говоря, неточно. Даже в бесплатном TC дают 3 агента которые будут запускать билды как пожелаете. Что касается выделения облачной мощности по необходимости, то и это прекрасно решается в TC и любом современном облаке. И цена вопроса не так, чтоб уж заоблачная. При вашем плане на 20 коммитов в день за $80 (на мой взгляд он совсем не «гигантский», но скорее «начальный») в виде более вменяемой альтернативы я бы поднял мелкий, но «разгоняемый» инстанс t2.medium, который обойдется в $37/м даже если его не тушить по ночам и не использовать reserved план. А на практике это будет ближе к $15/мес и коммить сколько влезет.

                                                Конечно, когда не хватит бесплатного TC и за него придется платить, то там немалые $$$, но оно того стоит. Из вашего описания я не понял, что именно этот сервис умеет делать, а чего не умеет, но про TC все как раз понятно — он умеет много чего полезного. Ну и кроме того, нацеленность вашего продукта на рынок мелких/свежих компаний вполне позволяет его сравнить с бесплатной версией TC, который целится в ту же нишу.
                                                  +1
                                                  Поддерживаю про маркетинговый шум.
                                                  Конечно, когда не хватит бесплатного TC и за него придется платить, то...
                                                  можно пойти и посмотреть на Jenkins.
                                                    0
                                                    можно пойти и посмотреть на Jenkins

                                                    Очень нестабильно работает git-plugin, багтрекер постоянно заваливается идентичными тикетами, дескать git scm polling не в себе — и вроде фиксят, а вроде и опять не работает.
                                                    +2
                                                    Добрый день, umputun.

                                                    Спасибо за ваши вопросы и фидбек, я постараюсь прокомментировать.

                                                    Извиняемся за маркетинговый шум. Это наш первый пост и хотелось, чтобы все поняли о чем идет речь. Немного перебрали с маркетингом, согласен, исправимся.

                                                    Итак, вы совершенно справедливо говорите о том, что на рынке существуют альтернативы. TeamCity очень крутая штука, без вопросов (кстати, вроде бы не open-source’ная). Также я соглашусь с вашим аргументом, что некоторым разработчикам просто интересно решить такую инженерную задачу, как «организовать тестовую инфраструктуру своими руками». Многим даже интересно будет сделать автомасштабирование своими руками. Поверьте, мы ведь сами с этого начали. Пару лет назад, нам просто было интересно сможем мы сделать такую «штуку» или нет. Сделали ;)

                                                    Но! На рынке есть разработчики, которые хотят разрабатывать, а не заниматься «развертыванием». Они уже используют GitHub и Heroku, и им не приходит в голову, что нужно поднять свой git на своей машине, например. Многие хотят делать свою работу, программировать, и вообще не тратить силы на поддержание тестовой инфраструктуры.

                                                    Поверьте, очень многие понятия не имеют, что такое AWS, что это за «t2.medium» и как его «разгонять» и так далее. При этом они продолжают быть отличными программистами и они продолжают создавать крутые проекты.

                                                    Вы – очень опытный, для вас нет сложности развернуть все это и саппортить, вам это просто интересно. Но, поверьте, есть огромная доля тех ребят, кто хочет это просто получить и использовать. Без необходимости даже думать о том, как это работает.

                                                    Их задача — программировать, задача Vexor «гонять» их тесты и помогать им делать их продукты качественными.
                                                      +4
                                                      А вы зашлите бойца к нам в радио-т, мы с ним предметно все обсудим. Только не маркетингово специалиста, но технического. Обещаю сильно не ругать, только справедливо громить :)
                                                    0
                                                    Сделайте плиз поддержку Selenium, как это сделано у CircleCI.
                                                    И еще, если перед запуском тестов нужно выполнить некоторые команды (например bower install), как это сделать?
                                                      +1
                                                      gryphon У нас поддерживается Selenium, если у вас «что-то пошло не так», пишите мне: balbekov_oleg
                                                      Запуск любых команд можно прописать в конфиге. Многое описано тут: vexor.io/help/, или пишите в скайп, поможем и подскажем.
                                                      0
                                                      Проблема с облачными CI системами всегда одна: в большинстве случаев нужна тонкая настройка конфигураций систем, которые тестируешь. Например, у меня компиляция и прогон моделей — распределенные, в них участвуют сотни машин и тысячи ядер. Каждая из них тюнингуется так, чтобы идеально взаимодействовать как с общими шинами на которые кладутся задачи для вычисления, так и агенты CI системы, которые поднимаются динамически чтобы решить ту или иную CI задачу.
                                                        +1
                                                        Определенно точно, что в природе существуют обычные проекты и более сложные проекты. Возможно вам, с учетом всех вышеописанных сложностей, действительно сложно будет использовать какое либо облачное решение для CI.
                                                        +2
                                                        Отличный сервис, отличная команда. Желаю вам удачи и быстрого взятия новых высот!
                                                          0
                                                          А что если случайно написать тест, который загонит сервер в вечный цикл? Приходишь утром в понедельник, а тут счет набежал на тысячу долларов за while(true); случайный
                                                            0
                                                            Сделать запускалку-враппер, пришибающую прогоняющий процесс по таймауту (например, если известно, что тесты обычно идут 5 минут, выставить таймаут в полчаса).
                                                              0
                                                              TheIseAse Отличный кейс! ;)))))) Кстати, в беклоге висит задачка, сделать возможным пользователем установить дневные лимиты и месячные лимити, а также увдомлять пользователей о приближении к лимитам. Я думаю это решило бы ваш пример. Скоро реализуем.
                                                                0
                                                                А разве теперешние лимиты на время билда не решают этот кейс?

                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                            Самое читаемое