Panduan

Menjalankan farm CI Mac di Mac mini dedicated

Cara tim menjalankan 5 sampai 20 Mac mini dedicated sebagai CI farm: runner per proyek, satu akun, satu faktur, engineer yang menjawab.

Diperbarui 2026-09-20

Satu Mac mini cukup nyaman menangani build iOS satu tim. Begitu Anda punya tiga aplikasi, dua branch yang di-build paralel, dan release train, Anda butuh farm, dan cara Anda menyusunnya menentukan apakah CI tetap cepat atau menjadi hal yang dikeluhkan semua orang.

Berikut cara tim menjalankan 5 sampai 20 Mac dedicated di MacDuty.

Mulai dari jumlah build bersamaan, bukan jumlah orang

Satu-satunya angka yang penting adalah berapa build yang harus berjalan bersamaan pada jam tersibuk Anda. Bukan jumlah developer, bukan jumlah repositori: build yang berjalan bersamaan.

Gambaran kasar yang berlaku untuk sebagian besar tim iOS:

SituasiMesin
Satu aplikasi, satu tim, build PR1 sampai 2
Dua atau tiga aplikasi, PR dan nightly paralel3 sampai 5
Release train, UI test pada matriks perangkat6 sampai 10
Agensi atau tim platform yang melayani banyak produk10 sampai 20 atau lebih

Waktu antre adalah sinyalnya. Jika build menunggu lebih dari beberapa menit saat puncak, tambahkan satu mesin. Itu lebih murah daripada satu jam yang dihabiskan setiap developer untuk menunggu.

Satu runner per mesin, atau beberapa?

Setiap Mac mini menjalankan seluruh mesin untuk Anda: tanpa hypervisor, tanpa tetangga yang berisik. Ini memberi Anda dua pola yang sama-sama valid.

Satu runner per mesin

Paling rapi. Satu build mendapat seluruh CPU, GPU, dan memori. Gunakan ini untuk build Xcode dan UI test, karena build akan dengan senang hati memakan setiap core yang Anda berikan.

Dua atau tiga runner per mesin

Cocok jika job Anda kecil dan terikat I/O: unit test, linting, packaging. Pada M4 atau M6 32 GB, dua job ringan paralel berjalan nyaman.

Mencampur keduanya itu wajar: mesin berat khusus untuk build rilis, mesin lebih ringan diisi job cepat.

Membagi farm antar tim dan proyek

Beri label pada mesin Anda dan biarkan pipeline mengarahkan job ke sana. Pembagian yang berguna:

Per proyek

ios-app, sdk, internal-tools. Setiap repositori menargetkan labelnya sendiri, sehingga build yang rusak di satu produk tidak pernah memblokir produk lain.

Per tujuan

mesin pr yang cepat dan selalu siap, mesin release yang dihapus sebelum setiap build yang ditandatangani.

Per klien

Agensi memberi setiap klien mesinnya sendiri dengan kredensial dan sertifikatnya sendiri. Tidak ada yang dipakai bersama, tidak ada yang bisa bocor antar akun.

Semuanya dalam satu akun MacDuty, dengan satu faktur di akhir bulan.

Menjaga farm tetap sehat

Instal ulang saat berpindah proyek, jangan dibiarkan selamanya

Mac yang sudah melakukan build selama setahun menumpuk versi Xcode, simulator, dan cache. Saat Anda memindahkan mesin ke proyek baru, minta dukungan untuk instalasi ulang yang bersih. Kami melakukannya hanya dengan persetujuan Anda, karena ini menghapus isi Mac.

Kunci versi toolchain Anda

Versi Xcode yang sama di setiap mesin dalam satu pool, di-upgrade dengan sengaja. Farm dengan mesin yang versinya bergeser menghasilkan build yang lolos di satu runner dan gagal di runner lain.

Pantau antrean, bukan CPU

Grafik CPU di mesin build selalu tampak mengkhawatirkan dan jarang bisa ditindaklanjuti. Waktu tunggu antrean memberi tahu kapan Anda perlu menambah hardware.

Sediakan satu cadangan

Dengan sepuluh mesin, satu yang mati seharusnya hanya merepotkan, bukan menjadi insiden.

Perbandingan dengan Mac cloud yang diorkestrasi

Platform orkestrasi menambahkan penjadwalan ala Kubernetes di atas macOS yang divirtualisasi, dan Anda membayar lapisan itu. Ini memang berguna jika Anda butuh VM sementara yang dibuat per job dalam skala besar.

Sebagian besar tim dengan kurang dari dua puluh mesin tidak membutuhkannya. Mereka butuh beberapa Mac dedicated yang cepat, tetap menyala, menjaga cache tetap siap, dan biayanya sama setiap bulan. Itulah farm dedicated: mesin fisik utuh dengan harga tetap, dengan cache build yang masih ada untuk job berikutnya, bukan dibuang bersama VM.

Anda juga mendapat perbedaan yang terasa pukul 2 dini hari sebelum rilis: orang yang mengelola rak menjawab email Anda.

Menyiapkan farm

Beri tahu kami bentuknya: berapa mesin, model apa, apa yang harus diinstal. Atas permintaan, kami mengonfigurasinya dengan versi Xcode, agen runner, kunci, dan sertifikat Anda, serta menangani instalasi ulang dan perubahan armada seiring berjalannya waktu, masing-masing dengan persetujuan Anda.

Tersedia hari ini

Mac ini sudah ada di rak sekarang. Pilih satu, lihat apa saja yang termasuk, dan buat akun Anda hanya saat memesan.

Memeriksa rak

Mac mini milik Anda sendiri

Pilih konfigurasi. Jika belum tersedia, tinggalkan email Anda dan kami kabari pada hari Mac itu terpasang di rak.

Tahunan: setidaknya 19% lebih murah daripada membayar bulanan

  • 16GB

    Memori terpadu, 120 GB/s

    Core
    10 CPU, 10 GPU
    Penyimpanan
    Tersedia
    Tersedia
  • Paling banyak dipilih
    24GB

    Memori terpadu, 120 GB/s

    Core
    10 CPU, 10 GPU
    Penyimpanan
    Tersedia
    Tersedia
  • 32GB

    Memori terpadu, 120 GB/s

    Core
    10 CPU, 10 GPU
    Penyimpanan
    Tersedia
    Tersedia
Visa Mastercard Transfer SEPAHarga dalam EUR, PPN ditambahkan saat pembayaran jika berlaku. Minimal satu bulan, lalu sewa bisa diakhiri di bulan mana pun.

Pertanyaan

Bisakah saya menjalankan beberapa Mac mini dalam satu akun MacDuty?
Ya. Satu akun dapat menampung mesin sebanyak yang Anda butuhkan, dengan satu faktur, untuk Anda sendiri atau untuk setiap perusahaan Anda.
Berapa Mac mini yang saya butuhkan untuk CI iOS?
Tentukan berdasarkan jumlah build bersamaan saat puncak, bukan ukuran tim. Satu sampai dua mesin untuk satu aplikasi, tiga sampai lima untuk beberapa aplikasi yang di-build paralel, enam sampai dua puluh untuk release train atau agensi.
Bisakah saya menjalankan beberapa runner CI di satu Mac mini?
Ya. Mesinnya sepenuhnya milik Anda. Satu runner per mesin untuk build Xcode yang berat; dua atau tiga untuk job ringan yang terikat I/O pada mesin 32 GB.
Bisakah tim atau klien yang berbeda punya mesin terpisah?
Ya. Mesin diberi label dan dipisahkan per proyek atau per klien, dengan kredensialnya sendiri, dalam satu akun dan satu faktur.
Apakah Mac farm dedicated lebih murah daripada Mac cloud yang diorkestrasi?
Untuk beban CI yang stabil, ya: harga bulanan tetap per mesin fisik, tanpa tagihan per jam dan tanpa lapisan orkestrasi yang harus dibayar.

Berikutnya