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

Сначала мы использовали Amazon EC2 как облачный сервис, но нам нужны были серверы, физически расположенные на одном хосте, и мы решили использовать Rackspace. Мы также использовали RabbitMQ, так как он имеет возможность строить топологии разветвленных очередей и точек обмена, а также настраивать маршрутизацию между ними.

Более того, мы интегрировали ряд предустановленных пакетов, таких как Xvfb, Postgresql, Mysql, MongoDB, Redis, Elasticsearch, PhantomJS и SphinxSearch, что делает Vexor невероятно удобным в использовании. Пользователи Vexor могут выполнять тесты на таких языках, как Ruby, Clojure, Scala, Python, Haskell, React, Elixir, Solidity, Node.js, Go, Rust, а работа разработчиков значительно упрощается и ускоряется. . Исходный код проекта можно хранить на GitHub, Bitbucket или в GitLab.

Vexor использует Docker, так как он стабилен и доставляет минимальное количество проблем. Тесты в Vexor запускаются в контейнере на базе Ubuntu, где предустановлены все популярные сервисы и необходимые библиотеки. Более того, Vexor может автоматически определить, какие технологии вам нужны. Следовательно, для нераспознанных случаев приложение просит пользователей создать файл конфигурации для проекта. Vexor использует множество серверов и такие инструменты, как Ansible, Packer и Vagrant.