Projemiz için sürekli bir entegrasyon (CI) hizmeti kurmak istiyoruz. Bu CI hizmeti, dağıtım da dahil olmak üzere proje hayatının tüm yönlerini kontrol etmelidir.
Yani, her yinelemede bir CI aracısının temiz bir sistem (özellikle Ubuntu Sunucusu) almasını, projemizi oraya dağıtmasını ve testler yapmasını istiyoruz.
Ekosistemimiz oldukça sıra dışı olduğu için muhtemelen CI hizmetini kendimiz sıfırdan yazardık. Soru şudur: Her bir CI yinelemesi için nasıl etkili bir arduvaz sistemi nasıl sağlanır?
Proje dağıtımı birkaç Debian paketi kurar, birkaç nginx sitesi yapılandırır ve ayrıca sistem genelinde uygulama diline özgü paket yöneticisine (LuaRocks) bazı paketler yükler. Bundan daha müdahaleci bir şey yok (inanıyorum). Bu nedenle, mutlak izolasyon ve temizlik sağlamaktan daha hızlı (modern donanımda bir dakika içinde daha hızlı - daha iyi) temiz bir sayfa oluşturmak daha önemlidir.
İhtiyacımız olan şeyi yapmanın iki yolunu görüyorum:
- Ya bir tür hapishane kur (lxc gibi, belki).
- Veya anlık görüntü çekebilen bir sanal makine kurun ve kullanın.
Fakat bu noktada karar verecek kadar bilgim yok.
Ne önerirsiniz? Başka seçenekler var mı? Belirli araç adları var mı?
Not: CI hizmeti, Citrix XenServer misafirinin içinde çalıştırılır. Ücretli çözümler fiyatlar makul ise sorun yok. (Genellikle bu alanda makul değildirler.) Uzak CI çözümleri iyi değil.