Ana içeriğe geç
Bulut & Altyapı

Artan GitHub Actions maliyetine karşı tek sunuculu CI çözümü geliştirildi

Öne çıkanlar

  • GitHub Actions çalıştırıcıları tek bir Linux sunucusu üzerinde izole şekilde konumlandırıldı.
  • Her çalıştırıcıya özel takas alanı ve geçici dizin tanımlanarak bellek tükenmesi önlendi.
  • Paylaşımlı PostgreSQL örneğinde her iş için geçici şema açılarak konteyner yükü azaltıldı.
  • 8 GB RAM kapasiteli referans sunucuda azami 2 eşzamanlı iş yükü sınırı önerildi.

GitHub Actions kullanım maliyetlerinin yükselmesi üzerine, sürekli entegrasyon (CI) iş yüklerini tek bir Linux sunucusunda barındırmayı sağlayan açık kaynaklı bir proje yayımlandı. self-hosted-ci-runner isimli çalışma, kaynak kısıtlı tek bir sanal makinede birden fazla GitHub Actions çalıştırıcısını (runner) bellek ve disk tükenmesi yaşamadan çalıştırmayı amaçlıyor. Sistem, hazırlık betikleri ve tek bir yapılandırma dosyası üzerinden yönetiliyor.

Proje mimarisi, referans olarak Hetzner Cloud üzerindeki 4 vCPU ve 8 GB RAM kapasiteli paylaşımlı bir sunucuyu temel alıyor. Yapılandırma kapsamında her çalıştırıcı için ayrı takas alanı (swap) oluşturuluyor, sistem genelinde düşük swappiness değeri tanımlanıyor ve geçici dizin çakışmalarını önlemek için bağımsız çalışma alanları tahsis ediliyor. Ayrıca sistemd tabanlı bir temizleyici araç, disk dolmasını engellemek amacıyla eski geçici dosyaları belirli aralıklarla siliyor.

Test süreçlerinde veritabanına ihtiyaç duyan projeler için paylaşımlı PostgreSQL yapılandırması da sunuluyor. Her CI görevi için ayrı bir şema oluşturulup işlem bittiğinde silinerek veri izolasyonu sağlanıyor ve her görev için ayrı konteyner başlatma zorunluluğu ortadan kalkıyor. Proje, donanım kaynaklarını aşmamak için 8 GB RAM'e sahip bir makinede en fazla iki eşzamanlı görevin çalıştırılmasını tavsiye ediyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.