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:

SituazioneMacchine
Una app, un team, build delle PRDa 1 a 2
Due o tre app, PR in parallelo e build notturneDa 3 a 5
Release train, test UI su una matrice di dispositiviDa 6 a 10
Agenzia o team di piattaforma al servizio di molti prodottiDa 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

  • 16GB

    Memoria unificata, 120 GB/s

    Core
    10 CPU, 10 GPU
    Archiviazione
    Disponibile
    Disponibile
  • Il più scelto
    24GB

    Memoria unificata, 120 GB/s

    Core
    10 CPU, 10 GPU
    Archiviazione
    Disponibile
    Disponibile
  • 32GB

    Memoria unificata, 120 GB/s

    Core
    10 CPU, 10 GPU
    Archiviazione
    Disponibile
    Disponibile
Visa Mastercard Bonifico SEPAPrezzi in EUR, IVA aggiunta al pagamento dove si applica. Minimo un mese, poi disdici in qualsiasi mese.

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