Kami ingin menyiapkan layanan integrasi berkelanjutan (CI) untuk proyek kami. Layanan CI itu harus mengendalikan semua aspek kehidupan proyek, termasuk penyebaran.
Artinya, kami ingin agen CI di setiap iterasi mengambil sistem yang bersih (khususnya Ubuntu Server), menyebarkan proyek kami di sana dan menjalankan tes.
Kami mungkin akan menulis sendiri layanan CI, dari awal, karena ekosistem kami agak tidak biasa. Pertanyaannya adalah: bagaimana cara efektif menyediakan sistem batu tulis bersih untuk setiap iterasi CI?
Penyebaran proyek menginstal beberapa paket Debian, mengkonfigurasi beberapa situs nginx, dan juga menginstal beberapa paket dalam implementasi manajer paket khusus bahasa (LuaRocks), di seluruh sistem. Tidak ada yang lebih mengganggu dari itu (saya percaya). Jadi, lebih penting untuk dapat mengatur cepat sabak bersih (dalam satu menit pada perangkat keras modern, lebih cepat - lebih baik) daripada memastikan isolasi dan kebersihan mutlak.
Saya melihat dua cara bagaimana melakukan apa yang kita butuhkan:
- Entah mengatur semacam penjara (seperti lxc, mungkin).
- Atau instal beberapa mesin virtual yang dapat melakukan snapshot, dan gunakan itu.
Tetapi pada titik ini saya tidak memiliki cukup informasi untuk memutuskan.
Apa yang akan Anda sarankan? Ada opsi lain? Adakah nama alat khusus?
Catatan: Layanan CI akan dijalankan di dalam tamu Citrix XenServer. Solusi berbayar OK jika harga wajar. (Biasanya mereka tidak masuk akal dalam bidang ini.) Solusi CI jarak jauh tidak OK.