Guida
Gestire una farm CI per Mac su Mac mini dedicati
Come i team gestiscono da 5 a 20 Mac mini dedicati come farm CI: runner per progetto, un solo account, una sola fattura, tecnici che rispondono.
Aggiornato: 2026-09-20
Un Mac mini regge senza problemi le build iOS di un team. Appena hai tre app, due branch che compilano in parallelo e un release train, ti serve una farm, e il modo in cui la strutturi decide se la CI resta veloce o diventa la cosa di cui si lamentano tutti.
Ecco come i team gestiscono da 5 a 20 Mac dedicati su MacDuty.
Parti dalle build in parallelo, non dal numero di persone
L'unico numero che conta è quante build devono girare nello stesso momento nell'ora di punta. Non sviluppatori, non repository: build in parallelo.
Una stima indicativa che vale per la maggior parte dei team iOS:
| Situazione | Macchine |
|---|---|
| Una app, un team, build delle PR | Da 1 a 2 |
| Due o tre app, PR in parallelo e build notturne | Da 3 a 5 |
| Release train, test UI su una matrice di dispositivi | Da 6 a 10 |
| Agenzia o team di piattaforma al servizio di molti prodotti | Da 10 a 20 o più |
Il segnale è il tempo in coda. Se nell'ora di punta le build aspettano più di un paio di minuti, aggiungi una macchina. Costa meno dell'ora che ogni sviluppatore passa ad aspettare.
Un runner per macchina o più di uno?
Ogni Mac mini ti dà l'intera macchina: niente hypervisor, nessun vicino rumoroso. Questo ti offre due schemi validi.
Un runner per macchina
La soluzione più pulita. Una build ha a disposizione tutta la CPU, la GPU e la memoria. Usala per le build Xcode e i test UI, dove una build si prende volentieri ogni core che le dai.
Due o tre runner per macchina
Funziona quando i job sono piccoli e limitati dall'I/O: unit test, linting, packaging. Su un M4 o M6 da 32 GB, due job leggeri in parallelo girano senza problemi.
Combinare i due schemi è normale: macchine pesanti dedicate alle build di release, macchine più leggere riempite di job veloci.
Dividere la farm tra team e progetti
Assegna un'etichetta alle macchine e lascia che la pipeline indirizzi i job. Le divisioni utili:
Per progetto
ios-app, sdk, internal-tools. Ogni repository punta alla propria etichetta, così una build rotta su un prodotto non blocca mai un altro prodotto.
Per scopo
macchine pr veloci e sempre calde, macchine release che vengono inizializzate prima di ogni build firmata.
Per cliente
Le agenzie danno a ogni cliente le sue macchine, con le sue credenziali e i suoi certificati. Niente in comune, niente che possa trapelare da un account all'altro.
Tutto su un solo account MacDuty, con una sola fattura a fine mese.
Tenere in salute una farm
Reinstalla tra un progetto e l'altro, invece di non farlo mai
Un Mac che compila da un anno accumula versioni di Xcode, simulatori e cache. Quando sposti una macchina su un nuovo progetto, chiedi all'assistenza una reinstallazione pulita. La facciamo solo con il tuo via libera, perché inizializza il Mac.
Fissa la toolchain
Stessa versione di Xcode su tutte le macchine di un pool, aggiornata in modo deliberato. Una farm in cui le macchine divergono produce build che passano su un runner e falliscono su un altro.
Guarda la coda, non la CPU
I grafici della CPU sulle macchine di build sono sempre allarmanti e raramente utili per decidere. Il tempo di attesa in coda ti dice quando aggiungere hardware.
Tieni una macchina di scorta
Con dieci macchine, una ferma dovrebbe essere un fastidio, non un incidente.
Il confronto con i cloud Mac orchestrati
Le piattaforme di orchestrazione aggiungono uno scheduling in stile Kubernetes sopra macOS virtualizzato, e quello strato lo paghi. È davvero utile se ti servono VM effimere avviate per ogni job su larga scala.
La maggior parte dei team sotto le venti macchine non ne ha bisogno. Gli servono pochi Mac veloci e dedicati che restano accesi, mantengono calde le cache e costano lo stesso ogni mese. Ecco cos'è una farm dedicata: macchine fisiche intere a prezzo fisso, con la cache di build ancora lì per il job successivo invece di essere buttata via insieme alla VM.
In più hai la differenza che si vede alle 2 di notte prima di un rilascio: chi gestisce i rack risponde all'email.
Configurare una farm
Descrivici la struttura: quante macchine, quali modelli, cosa va installato. Su richiesta le configuriamo con la tua versione di Xcode, l'agente del runner, le chiavi e i certificati, e gestiamo reinstallazioni e modifiche alla flotta man mano, ognuna con il tuo via libera.
Disponibili oggi
Questi sono già nel rack. Scegline uno, guarda cosa include e crea l'account solo quando ordini.
Controllo dei rack in corso
Un Mac mini tutto tuo
Scegli una configurazione. Se non è disponibile, lasciaci la tua email e ti scriviamo il giorno in cui è nel rack.
Annuale: almeno 19% in meno rispetto al pagamento mensile
Domande
- Posso avere più Mac mini su un solo account MacDuty?
- Sì. Un account contiene tutte le macchine che ti servono, con una sola fattura, per te o per ciascuna delle tue aziende.
- Quanti Mac mini mi servono per la CI iOS?
- Dimensiona in base alle build in parallelo nell'ora di punta, non alla grandezza del team. Da una a due macchine per una sola app, da tre a cinque per alcune app che compilano in parallelo, da sei a venti per un release train o un'agenzia.
- Posso eseguire più runner CI su un solo Mac mini?
- Sì. La macchina è interamente tua. Un runner per macchina per le build Xcode pesanti; due o tre per job leggeri limitati dall'I/O su una macchina da 32 GB.
- Team o clienti diversi possono avere macchine separate?
- Sì. Le macchine hanno un'etichetta e sono separate per progetto o per cliente, con le proprie credenziali, sotto un solo account e una sola fattura.
- Una farm di Mac dedicati costa meno di un cloud Mac orchestrato?
- Per un carico CI costante, sì: un prezzo mensile fisso per ogni macchina fisica, senza fatturazione a ore e senza uno strato di orchestrazione da pagare.
Avanti