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:
| Situasi | Mesin |
|---|---|
| Satu aplikasi, satu tim, build PR | 1 sampai 2 |
| Dua atau tiga aplikasi, PR dan nightly paralel | 3 sampai 5 |
| Release train, UI test pada matriks perangkat | 6 sampai 10 |
| Agensi atau tim platform yang melayani banyak produk | 10 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
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