self hosted github runner
CI ve derleme runner'ları
Sekmeyi değiştirmeden biten derlemeler.
Biz ne dağıtırdık
€44,03/ay
€62,90−30% yıllık
Barındırılan CI dakikaları ölçülür, sıraya girer ve yavaştır; ekip üretken olduğu anda maliyet eğrisi çirkinleşir. Hızlı NVMe'li bir çift adanmış çekirdek örneği, çoğu barındırılan katmanı geride bırakır ve ne sıklıkta push ettiğinizden bağımsız olarak her ay sabit bir maliyete sahiptir. İç içe sanallaştırma dahildir, böylece Docker-in-Docker ve KVM tabanlı test paketleri geçici çözüm olmadan çalışır.
Neden bu yapılandırma
TORQUE size çekirdek sayısını verir, Gen5 NVMe size yapıt çıktısını verir ve iç içe sanallaştırma hiçbir şeye mal olmaz. Runner'ları forge'unuza kaydedin ve barındırılan planı silin.
Biz ne dağıtırdık
Boyutlandırma
Eşzamanlı iş başına iki adanmış çekirdek ve 4 GB tabandır; derlenmiş diller 4 çekirdek ve 8 GB ister. Bu nedenle 32 çekirdekli bir TORQUE düğümü 8 ağır iş veya yaklaşık 14 hafif iş çalıştırır, 32 değil. Geçici disk her ikisinden de daha önemlidir - görüntü katmanları, bağımlılık ağaçları ve derleme çıktısı için eşzamanlı iş başına NVMe'de 30-50 GB ayırın. İşler iç içe sanallaştırma gerektiriyorsa düğüm başına bir çekirdek ekleyin. Kuyruk bekleme süresi, iş süresi değil, ne zaman düğüm ekleyeceğinizi söyler.
İç içe sanallaştırma ve ne zaman gerekir
Çoğu CI bir container'da sorunsuz çalışır. Üç durum, konuk içinde gerçek bir hipervizör gerektirir: VM görüntülerini ve cloud-init'i test etme, KVM hızlandırmalı Android veya gömülü öykünücüleri çalıştırma ve güvenilmeyen bir pull request'in runner'a ulaşmaması gereken kodu çalıştırdığı herhangi bir iş. TORQUE SVM'i konuğa sunar, böylece KVM VPS'inizde çalışır ve öykünücü yazılım öykünmesi yerine doğal hızda çalışır; bu, Android test paketlerinde yaklaşık bir büyüklük sırası farktır. Maliyet, dış hipervizör için bir çekirdek ve iç konukta biraz daha yavaş disktir. Her ikisi için de bütçe ayırın.
Yapıt yolu genellikle darboğazdır
Yavaş bir pipeline'ı profillerseniz, derleme adımı nadiren en büyük çubuktur. Temel görüntüleri çekme, önbellekleri geri yükleme, yapıtları yükleme ve sonucu itme, tipik derlemelerdeki duvar saati süresinin çoğunu oluşturur. Sırayla üç düzeltme: katmanların genel internet yerine yerel ağ üzerinden gelmesi için aynı özel VLAN'da bir kayıt defteri çekme önbelleği tutun; katman açmanın arama sınırlı olmaması için geçici alanı NVMe'ye koyun; ve önbellek anahtarını hassaslaştırın, böylece tek parça bir arşiv yerine ihtiyacınız olanı geri yüklersiniz. Yoğun Bergamo çekirdekleri ucuzdur. Ağda beklemek değildir.
Ne gibi sorunlar çıkar
- Docker-in-Docker için overlayfs üzerine overlayfs yığmak. İç içe overlay sürücüleri yavaştır ve bazen katmanları bozar. İşin içinde özel bir blok aygıtı kullanın veya builder'ı iç içe KVM üzerinde çalıştırın.
- Asla temizlememek. Başıboş görüntüler, derleme önbellekleri ve eski birimler geçici NVMe'yi haftalar içinde doldurur ve ilk belirti yıllardır çalışan bir adımda derlemenin başarısız olmasıdır. Hata üzerine değil, zamanlayıcıyla temizleyin.
- Önbellek aktarımının derleme süresini aşmasına izin vermek. İş başına çekilen ve gönderilen 3 GB bağımlılık önbelleği, sıfırdan derlemekten daha pahalıya mal olabilir. İkisini de ölçün ve önbelleği runner'larla aynı özel VLAN'da tutun.
Makineyi ayarlayın
- Diğer her şey — Nested virtualisation (VMX/SVM) · Dahil
- CPU zamanlaması — Pinned physical cores · €9
- Depolama ve şifreleme — ZFS with hourly snapshots · €7
Daha fazla
Belirli işler için üretildi
Oyun sunucusu barındırma
Tick rate tek iş parçacıklı bir sorundur. Gerisi gürültüdür.
Trading ve düşük gecikmeli VPS
Eşleştirme motoruna mesafe ve sizinle kablo arasında hiçbir şey.
Özel VPN ve proxy uç noktaları
Kendi çıkışın, bilerek seçtiğin bir yetki alanında.
Seedbox'lar ve toplu depolama
Ucuz kalan terabaytlar ve açık kalan bir port.
Kubernetes worker node'ları
Çekirdek başına ucuz, yoğun ve her seferinde aynı.
AI inference ve ince ayar
Tam bir GPU, passthrough ile ve matematiği çalıştıran bir taahhüt.