Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to make your own Travis CI: Vagrant + KVM

How to make your own Travis CI: Vagrant + KVM

Talk from OmskIT 05/10/2013 about creating your own Travis-inspired CI using Vagrant and Linux KVM (Russian)

Alex Rodionov

October 05, 2013
Tweet

More Decks by Alex Rodionov

Other Decks in Technology

Transcript

  1. АЛЕКСЕЙ РОДИОНОВ • 7+ лет в тестировании • Paradev @

    Toptal • Code monkey @ Watir • (ex) Контрибутор @ Mozilla Thursday, October 3, 13
  2. ЧТО ТАКОЕ TRAVIS CI • Сервис непрерывной интеграции • Интеграция

    с Github • Тесты для каждого Pull Request • Интеграция с Campfire/HipChat/IRC • Изолированное окружение Thursday, October 3, 13
  3. В НАЧАЛЕ • Rails, RSpec • Cucumber + Watir-WebDriver •

    Github, Jenkins • Specs ➜ Smoke tests ➜ Sanity tests • Ghprb • parallel_tests, Selenium Grid Thursday, October 3, 13
  4. ПРОБЛЕМЫ • 1,5 тыс. спек • 2 тыс. фич •

    ~ 12 часов полный прогон • Глюки Selenium Grid • Shared resources (db, файлы, порты) • Масштабируемость и переносимость Thursday, October 3, 13
  5. VAGRANT • Создание виртуальных машин из basebox • Настройка машины

    через Puppet, Chef, Shell, etc. • VirtualBox, VMware из коробки • Плагины Thursday, October 3, 13
  6. ПЛЮСЫ • Окружение легко и быстро разворачивается • Версии софта

    в коде • “У меня не воспроизводится” • Обновляющиеся браузеры? Thursday, October 3, 13
  7. УЛУЧШЕНИЯ • Veewee (Packer) • Сделали полную копию production в

    VM (os, db, locale, date, ruby, libs, etc.) Thursday, October 3, 13
  8. ТЕПЕРЬ • 4 тыс. спеков • 3 тыс. фич •

    ~ 5 часов на полный прогон • Никаких проблем с Grid • Никаких хаков с shared resources Thursday, October 3, 13
  9. ТЕПЕРЬ • 11 параллельно работающих VM • 155 виртуальных машин

    • Масштабируемость и переносимость • Отказоустойчивость Thursday, October 3, 13
  10. • Параллельное создание VM (~8) • Stale NFS Error в1%

    билдов (who cares) НЕРЕШЕННЫЕ ПРОБЛЕМЫ Thursday, October 3, 13
  11. ЧТО ДАЛЬШЕ • Кастомный сервер с изменениями для каждого Pull

    Request • Миграция на Xen • Миграция на EC2, DigitalOcean Thursday, October 3, 13