Rehber

Size özel Mac mini'lerde bir Mac CI çiftliği işletmek

Ekipler 5 ila 20 dedike Mac mini'yi CI çiftliği olarak nasıl işletir: proje başına runner, tek hesap, tek fatura, yanıt veren mühendisler.

Güncelleme: 2026-09-20

Tek bir Mac mini bir ekibin iOS build'lerini rahatça kaldırır. Üç uygulamanız, paralel build alan iki branch'iniz ve bir sürüm treniniz olduğu anda bir çiftliğe ihtiyacınız olur. Onu nasıl kurguladığınız da CI'ın hızlı mı kalacağını yoksa herkesin şikâyet ettiği şey mi olacağını belirler.

Ekiplerin MacDuty'de 5 ila 20 dedike Mac'i nasıl işlettiği aşağıda.

Kişi sayısından değil, eş zamanlı build sayısından başlayın

Önemli olan tek sayı, en yoğun saatinizde aynı anda kaç build'in çalışması gerektiğidir. Geliştirici sayısı değil, repository sayısı değil: eş zamanlı build'ler.

Çoğu iOS ekibi için geçerli kaba bir tablo:

DurumMakine
Tek uygulama, tek ekip, PR build'leri1 ila 2
İki ya da üç uygulama, paralel PR ve gece build'leri3 ila 5
Sürüm treni, cihaz matrisinde UI testleri6 ila 10
Birçok ürüne hizmet veren ajans ya da platform ekibi10 ila 20 ya da daha fazla

Sinyal kuyruk süresidir. Build'ler yoğun saatte birkaç dakikadan fazla bekliyorsa bir makine ekleyin. Bu, her geliştiricinin beklerken harcadığı saatten daha ucuzdur.

Makine başına tek runner mı, birkaç tane mi?

Her Mac mini'de makinenin tamamı sizin için çalışır: hypervisor yok, gürültücü komşu yok. Bu da size iki geçerli düzen verir.

Makine başına tek runner

En temizi. Bir build CPU'nun, GPU'nun ve belleğin tamamını alır. Bunu, build'in verdiğiniz her çekirdeği seve seve tükettiği Xcode build'leri ve UI testleri için kullanın.

Makine başına iki ya da üç runner

İşleriniz küçük ve I/O ağırlıklıysa işe yarar: unit testler, lint, paketleme. 32 GB'lık bir M4 ya da M6'da iki paralel hafif iş rahat çalışır.

İkisini karıştırmak normaldir: ağır makineler sürüm build'lerine ayrılır, daha hafif makineler hızlı işlerle doldurulur.

Çiftliği ekiplere ve projelere bölmek

Makinelerinizi etiketleyin ve pipeline'ın işleri onlara yönlendirmesine izin verin. İşe yarayan ayrımlar:

Projeye göre

ios-app, sdk, internal-tools. Her repository kendi etiketini hedefler, böylece bir üründeki bozuk build hiçbir zaman diğerini engellemez.

Amaca göre

hızlı ve her zaman sıcak duran pr makineleri, her imzalı build'den önce silinen release makineleri.

Müşteriye göre

Ajanslar her müşteriye kendi kimlik bilgileri ve sertifikalarıyla kendi makinelerini verir. Paylaşılan hiçbir şey yok, hesaplar arasında sızacak hiçbir şey yok.

Hepsi tek bir MacDuty hesabında, ay sonunda tek bir faturayla.

Çiftliği sağlıklı tutmak

Yeniden yüklemeyi atlamayın, projeler arasında yapın

Bir yıldır build alan bir Mac'te Xcode sürümleri, simülatörler ve önbellekler birikir. Bir makineyi yeni bir projeye aktardığınızda destekten temiz bir yeniden yükleme isteyin. Mac'i sildiği için bunu yalnızca sizin onayınızla yaparız.

Araç zincirinizi sabitleyin

Bir havuzdaki her makinede aynı Xcode sürümü, bilinçli olarak yükseltilmiş. Makinelerin birbirinden uzaklaştığı bir çiftlik, bir runner'da geçip diğerinde patlayan build'ler üretir.

CPU'yu değil, kuyruğu izleyin

Build makinelerindeki CPU grafikleri her zaman alarm verir ve nadiren işe yarar bir şey söyler. Ne zaman donanım eklemeniz gerektiğini kuyrukta bekleme süresi söyler.

Bir yedek tutun

On makinede birinin çökmesi bir olay değil, bir aksilik olmalı.

Orkestrasyonlu Mac bulutlarıyla karşılaştırma

Orkestrasyon platformları sanallaştırılmış macOS'in üzerine Kubernetes tarzı bir zamanlama katmanı koyar ve o katmanın parasını siz ödersiniz. Büyük ölçekte her iş için ayağa kalkan geçici VM'lere ihtiyacınız varsa gerçekten işe yarar.

Yirmi makinenin altındaki çoğu ekibin buna ihtiyacı yoktur. Onlara ayakta kalan, önbelleklerini sıcak tutan ve her ay aynı tutara mal olan birkaç hızlı, dedike Mac gerekir. Dedike çiftlik tam olarak budur: sabit fiyatla bütün olarak kullanılan fiziksel makineler; build önbelleği VM ile birlikte çöpe gitmek yerine bir sonraki iş için yerinde durur.

Bir sürümden önce gece 2'de ortaya çıkan farkı da elde edersiniz: e-postayı kabinleri işleten insanlar yanıtlar.

Çiftliği kurdurmak

Yapıyı bize anlatın: kaç makine, hangi modeller, üzerlerine ne kurulması gerekiyor. İsterseniz makineleri sizin Xcode sürümünüz, runner ajanınız, anahtarlarınız ve sertifikalarınızla yapılandırırız. Yeniden yüklemeleri ve filo değişikliklerini de ilerledikçe, her birini sizin onayınızla biz hallederiz.

Bugün stokta

Bunlar şu anda kabinde. Birini seçin, neyle geldiğine bakın ve hesabınızı yalnızca sipariş verirken oluşturun.

Kabinler kontrol ediliyor

Size ait bir Mac mini

Bir yapılandırma seçin. Stokta yoksa e-postanızı bırakın, kabine girdiği gün size yazalım.

Yıllık: aylık ödemeye göre en az %19 daha az

  • 16GB

    Birleşik bellek, 120 GB/s

    Çekirdek
    10 CPU, 10 GPU
    Depolama
    Mevcut
    Stokta
  • En çok seçilen
    24GB

    Birleşik bellek, 120 GB/s

    Çekirdek
    10 CPU, 10 GPU
    Depolama
    Mevcut
    Stokta
  • 32GB

    Birleşik bellek, 120 GB/s

    Çekirdek
    10 CPU, 10 GPU
    Depolama
    Mevcut
    Stokta
Visa Mastercard SEPA havalesiFiyatlar EUR cinsinden; KDV, uygulandığı durumlarda ödemede eklenir. En az bir ay, sonra istediğiniz ay iptal edin.

Sorular

Tek bir MacDuty hesabında birden çok Mac mini çalıştırabilir miyim?
Evet. Tek bir hesapta ihtiyacınız kadar makine olabilir, tek bir faturayla, kendiniz için ya da şirketlerinizin her biri için.
iOS CI için kaç Mac mini gerekir?
Ekip büyüklüğüne göre değil, yoğun saatteki eş zamanlı build sayısına göre boyutlandırın. Tek uygulama için bir ila iki makine, paralel build alan birkaç uygulama için üç ila beş, bir sürüm treni ya da ajans için altı ila yirmi.
Tek bir Mac mini'de birkaç CI runner çalıştırabilir miyim?
Evet. Makine tamamen sizindir. Ağır Xcode build'leri için makine başına bir runner; 32 GB'lık bir makinede hafif, I/O ağırlıklı işler için iki ya da üç.
Farklı ekiplerin ya da müşterilerin ayrı makineleri olabilir mi?
Evet. Makineler proje ya da müşteri başına etiketlenir ve ayrılır, kendi kimlik bilgileriyle, tek hesap ve tek fatura altında.
Dedike Mac çiftliği orkestrasyonlu Mac bulutundan daha ucuz mu?
Sabit CI yükü için evet: fiziksel makine başına sabit aylık fiyat, saatlik faturalama yok ve parasını ödeyeceğiniz bir orkestrasyon katmanı yok.

Sıradaki