Anleitung

Eine Mac-CI-Farm auf dedizierten Mac minis betreiben

Wie Teams 5 bis 20 dedizierte Mac minis als CI-Farm betreiben: Runner pro Projekt, ein Konto, eine Rechnung, Techniker, die antworten.

Aktualisiert 2026-09-20

Ein Mac mini schafft die iOS-Builds eines Teams problemlos. Sobald Sie drei Apps, zwei parallel bauende Branches und einen Release Train haben, brauchen Sie eine Farm, und wie Sie sie aufbauen, entscheidet, ob CI schnell bleibt oder zu dem wird, worüber sich alle beschweren.

So betreiben Teams 5 bis 20 dedizierte Macs bei MacDuty.

Gehen Sie von parallelen Builds aus, nicht von der Teamgröße

Die einzige Zahl, die zählt: wie viele Builds in Ihrer stärksten Stunde gleichzeitig laufen müssen. Nicht Entwickler, nicht Repositories, sondern parallele Builds.

Eine grobe Einteilung, die für die meisten iOS-Teams passt:

SituationMaschinen
Eine App, ein Team, PR-Builds1 bis 2
Zwei oder drei Apps, parallele PR- und Nightly-Builds3 bis 5
Release Train, UI-Tests auf einer Gerätematrix6 bis 10
Agentur oder Plattformteam für viele Produkte10 bis 20 oder mehr

Die Wartezeit in der Queue ist das Signal. Warten Builds zu Spitzenzeiten länger als ein paar Minuten, nehmen Sie eine Maschine dazu. Das ist billiger als die Stunde, die jeder Entwickler mit Warten verbringt.

Ein Runner pro Maschine oder mehrere?

Jeder Mac mini gehört komplett Ihnen: kein Hypervisor, keine lauten Nachbarn. Damit gibt es zwei sinnvolle Muster.

Ein Runner pro Maschine

Am saubersten. Ein Build bekommt die gesamte CPU, GPU und den ganzen Speicher. Nehmen Sie das für Xcode-Builds und UI-Tests, bei denen ein Build jeden Kern belegt, den Sie ihm geben.

Zwei oder drei Runner pro Maschine

Funktioniert, wenn Ihre Jobs klein und I/O-lastig sind: Unit-Tests, Linting, Packaging. Auf einem M4 oder M6 mit 32 GB laufen zwei leichte Jobs parallel problemlos.

Beides zu mischen ist normal: starke Maschinen nur für Release-Builds, leichtere Maschinen voll mit schnellen Jobs.

Die Farm auf Teams und Projekte aufteilen

Versehen Sie Ihre Maschinen mit Labels und lassen Sie die Pipeline die Jobs dorthin leiten. Sinnvolle Aufteilungen:

Nach Projekt

ios-app, sdk, internal-tools. Jedes Repository zielt auf sein eigenes Label, damit ein kaputter Build bei einem Produkt nie ein anderes blockiert.

Nach Zweck

pr-Maschinen, die schnell und immer warm sind, release-Maschinen, die vor jedem signierten Build gelöscht werden.

Nach Kunde

Agenturen geben jedem Kunden eigene Maschinen mit eigenen Zugangsdaten und Zertifikaten. Nichts wird geteilt, nichts kann zwischen Konten durchsickern.

Alles in einem MacDuty-Konto, mit einer Rechnung am Monatsende.

Eine Farm in gutem Zustand halten

Zwischen Projekten neu installieren, nicht nie

Ein Mac, der ein Jahr lang baut, sammelt Xcode-Versionen, Simulatoren und Caches an. Wenn Sie eine Maschine einem neuen Projekt zuteilen, bitten Sie den Support um eine saubere Neuinstallation. Wir machen das nur mit Ihrer Freigabe, da dabei der Mac gelöscht wird.

Toolchain festschreiben

Dieselbe Xcode-Version auf jeder Maschine eines Pools, bewusst aktualisiert. Eine Farm, in der Maschinen auseinanderdriften, liefert Builds, die auf einem Runner durchlaufen und auf einem anderen scheitern.

Die Queue beobachten, nicht die CPU

CPU-Graphen von Build-Maschinen sehen immer alarmierend aus und helfen selten weiter. Die Wartezeit in der Queue zeigt Ihnen, wann Sie Hardware dazunehmen sollten.

Eine Reserve halten

Bei zehn Maschinen sollte ein Ausfall lästig sein, kein Störfall.

Der Vergleich mit orchestrierten Mac-Clouds

Orchestrierungsplattformen legen ein Scheduling im Stil von Kubernetes über virtualisiertes macOS, und Sie bezahlen für diese Schicht. Das ist wirklich nützlich, wenn Sie in großem Maßstab kurzlebige VMs pro Job brauchen.

Die meisten Teams unter zwanzig Maschinen brauchen das nicht. Diese Teams brauchen eine Handvoll schneller, dedizierter Macs, die laufen, ihre Caches warm halten und jeden Monat gleich viel kosten. Genau das ist eine dedizierte Farm: ganze physische Maschinen zum Pauschalpreis, bei denen der Build-Cache für den nächsten Job noch da ist, statt mit der VM weggeworfen zu werden.

Dazu kommt der Unterschied, der sich um 2 Uhr nachts vor einem Release zeigt: Die Leute, die die Racks betreiben, beantworten die E-Mail.

Eine Farm einrichten lassen

Sagen Sie uns, wie die Farm aussehen soll: wie viele Maschinen, welche Modelle, was darauf installiert sein muss. Auf Wunsch konfigurieren wir sie mit Ihrer Xcode-Version, Ihrem Runner-Agent, Ihren Schlüsseln und Zertifikaten, und wir übernehmen Neuinstallationen und Änderungen an der Flotte im laufenden Betrieb, jeweils mit Ihrer Freigabe.

Heute auf Lager

Diese stehen jetzt im Rack. Wählen Sie einen, sehen Sie, was dazugehört, und legen Sie Ihr Konto erst bei der Bestellung an.

Racks werden geprüft

Ein eigener Mac mini

Wählen Sie eine Konfiguration. Wenn eine nicht vorrätig ist, hinterlassen Sie Ihre E-Mail, und wir schreiben Ihnen an dem Tag, an dem sie ins Rack kommt.

Jährlich: mindestens 19 % günstiger als monatlich

  • 16GB

    Unified Memory, 120 GB/s

    Kerne
    10 CPU, 10 GPU
    Speicher
    Verfügbar
    Auf Lager
  • Meistgewählt
    24GB

    Unified Memory, 120 GB/s

    Kerne
    10 CPU, 10 GPU
    Speicher
    Verfügbar
    Auf Lager
  • 32GB

    Unified Memory, 120 GB/s

    Kerne
    10 CPU, 10 GPU
    Speicher
    Verfügbar
    Auf Lager
Visa Mastercard SEPA-ÜberweisungPreise in EUR, MwSt. wird an der Kasse hinzugefügt, wo sie anfällt. Mindestens ein Monat, danach monatlich kündbar.

Fragen

Kann ich mehrere Mac minis in einem MacDuty-Konto betreiben?
Ja. Ein Konto fasst so viele Maschinen, wie Sie brauchen, mit einer Rechnung, für Sie selbst oder für jedes Ihrer Unternehmen.
Wie viele Mac minis brauche ich für iOS-CI?
Planen Sie nach parallelen Builds zur Spitzenzeit, nicht nach Teamgröße. Ein bis zwei Maschinen für eine einzelne App, drei bis fünf für einige parallel bauende Apps, sechs bis zwanzig für einen Release Train oder eine Agentur.
Kann ich mehrere CI-Runner auf einem Mac mini betreiben?
Ja. Die Maschine gehört ganz Ihnen. Ein Runner pro Maschine für schwere Xcode-Builds; zwei oder drei für leichte, I/O-lastige Jobs auf einer Maschine mit 32 GB.
Können verschiedene Teams oder Kunden getrennte Maschinen haben?
Ja. Die Maschinen werden pro Projekt oder pro Kunde gelabelt und getrennt, mit eigenen Zugangsdaten, unter einem einzigen Konto und einer Rechnung.
Ist eine dedizierte Mac-Farm günstiger als eine orchestrierte Mac-Cloud?
Bei gleichmäßiger CI-Last ja: ein fester Monatspreis pro physischer Maschine, ohne Abrechnung pro Stunde und ohne Orchestrierungsschicht, die Sie bezahlen müssen.

Als Nächstes