Как мы создали облачный сервис непрерывной интеграции Vexor

April 2020

Задача

Это классическая проблема масштабирования. Когда компания одновременно работает над несколькими проектами, то сталкивается с рядом трудностей в непрерывной интеграции (CI). Выполнение собственной настройки CI в облаке обходится дорого, а расходы кажутся необоснованным — сервер используется только в течение нескольких часов, но платите вы, как если бы пользовались им весь день. Построить свой собственный дата-центр еще дороже. Это не только вычисления и хранение, размещение собственной цепочки CI: проекты должны быть сконфигурированы, тестовые серверы нужно создать, а затем мониторить, пакеты нуждаются в обновлениях. Требуется много времени и усилий, чтобы всё это работало. И что бы вы ни делали, ваши разработчики неизбежно будут просить увеличить количество ресурсов для непрерывной интеграции (CI).

Что такое Vexor?

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

С этим сервисом точно можно «догнать» двух зайцев. Vexor разумно масштабирует ресурсы, чтобы удовлетворить спрос: больше не нужно ждать очереди, чтобы начать работу.

Брендинг и UX

Мы разработали уникальную айдентику для бренда Vexor, центральный элемент которой — замкнутая спираль в вечном движении, и воплотили её с помощью CSS3, WebGL, SVG и Three.js. Для этого сервиса мы создали сайт с узнаваемым стилем, а также калькулятор для расчёта стоимости.

vexor screen

Что внутри?

Мы начали разработку, используя AWS, но Vexor нуждался в более тонком контроле над физическими вычислительными ресурсами, чем EC2, предназначенный для обеспечения рентабельности. После некоторых исследований мы установили, что Rackspace обеспечивает правильное сочетание масштабируемости, контроля и ценообразования.

vexor application

Vexor использует контейнеры Docker для выполнения заданий CI в постоянной среде, извлекая данные из исходных репозиториев, размещённых в Github, Bitbucket или Gitlab. Тестовые контейнеры сделаны на основе популярного дистрибутива Ubuntu Linux, и мы предоставляем несколько предустановленных пакетов, таких как Xvfb, Postgresql, Mysql, MongoDB, Redis, Elasticsearch, PhantomJS и SphinxSearch, что делает Vexor невероятно удобным в использовании.

vexor io pic

Vexor поддерживает целый ряд сред, в том числе Ruby, Clojure, Scala, Python, Haskell, React, Elixir, Solidity, Node.js, Go, Rust, и во многих случаях автоматически определяет команды, которые нужно вызвать для стандартного теста на выбранном языке. В более редких случаях, значения по умолчанию и методы обнаружения можно заменить, поместив файл Yaml в хранилище.

 
vexor io tablet

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

* * *

К сожалению, с 1 июля 2019 года Vexor больше не доступен. Если вы хотите разработать собственное CI/CD решение, заполните форму внизу и наша команда свяжется, чтобы обсудить детали и рассказать о нашем опыте, который может быть применён на вашем проекте.

Нам нужно было значительно ускорить процессы и мы решили создать свою собственную CI-систему. Мы назвали ее Vexor.
Александр Кириллов
CTO, Evrone
Мы любим Vexor и используем его для наших проектов с открытым исходным кодом на GitHub. Мы ценим эту платформу, так как она позволяет нам строить инструменты, а также нам нравится новая контейнерная инфраструктура для более быстрой сборки.
Антон Мозговой
CTO, Humaniq.com - Блокчейн платформа и финансовое мобильное приложение
Специалисты компании Evrone создали для нас отличный проект по автоматизации тестирования и доставки проектов на продакшн сервера. Продукт получился отличного качества, выполняет все необходимые задачи и работает без сбоев! Хочу выразить благодарность специалистам и руководству компании Evrone!
Влад Сябрук
Lead developer, Bookmate.com - сервис для чтения книг по подписке
Будем на связи
Прикрепить файл
Максимальный размер файла: 2 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.