Ми хочемо створити послугу безперервної інтеграції (CI) для нашого проекту. Ця служба CI повинна контролювати всі аспекти життя проекту, включаючи розгортання.
Тобто, ми хочемо, щоб агент CI на кожній ітерації брав чисту систему (зокрема Ubuntu Server), розгортав наш проект там і виконував тести.
Ми, мабуть, писали б сервіс CI з нуля, оскільки наша екосистема є досить незвичною. Питання: як ефективно забезпечити систему чистого шиферу для кожної ітерації CI?
Розгортання проекту встановлює декілька пакунків Debian, конфігурує кілька сайтів nginx, а також встановлює деякі пакунки в спеціалізованому для мови впровадження менеджері пакетів (LuaRocks), що використовується для всієї системи. Нічого більш нав'язливого, ніж це (я вважаю). Отже, важливіше вміти швидко встановлювати чистий шифер (протягом хвилини на сучасному обладнанні, швидше - краще), ніж забезпечувати абсолютну ізоляцію та чистоту.
Я бачу два способи зробити те, що нам потрібно:
- Або встановити в'язницю якогось типу (наприклад, lxc, можливо).
- Або встановити якусь віртуальну машину, яка може робити знімки, і використовувати їх.
Але на даний момент у мене недостатньо інформації, щоб прийняти рішення.
Що б ви порадили? Будь-які інші варіанти? Якісь конкретні назви інструментів?
Примітка: Служба CI буде запускатися всередині гостя Citrix XenServer. Платні рішення в порядку, якщо ціни розумні. (Зазвичай вони не розумні в цій галузі.) Віддалені рішення CI не в порядку.