Schmerzpunkte: (1) DNS-Hairpins. (2) CA-/TLS-Drift. (3) Locks, die parallele Mac mini-Queues serialisieren.
Entscheidungsmatrix: welche Schicht zuerst splitten
Für den Ausbau regionsübergreifender Build-Farmen auf Apple Silicon: ergänzend rsync-Matrix & Buildsperren, Mosh vs. SSH und OpenClaw Multi-AZ-Gateways.
| Steuerungs-Slice | Primärer Hebel | Zielbild (gut) | Typischer Fehlmodus |
|---|---|---|---|
| Split-DNS | Regionale Views oder geo-gesteuerte Records für registry.git.internal |
Builder lösen den nächsten gesunden Origin auf, ohne Job-YAML pro Stadt zu patchen. | Hohe TTLs leiten APAC-Verkehr im Failover-Drill noch durch US-East. |
| Intranet-Artefakt-Registry | Regionaler Reverse-Proxy + gemeinsame Signatur-Schlüssel | Pull-Latenz bleibt innerhalb des definierten Akzeptanzkorridors. | HTTP/HTTPS-Mix oder abweichende CA-Bündel brechen SwiftPM- oder Docker-Credential-Helfer. |
| Buildsperren | Enge flock-Sperre nur um Promote, Index-Publish oder Manifest-Schreiben | Parallele Mac-mini-Worker bleiben parallel. | Eine globale Sperre serialisiert Compile und Test und neutralisiert den Cluster. |
| Sync-Pfad | rsync-Fan-out vs. Objektspeicher mit Byte-Range-Reads | Vorhersagbare Bandbreite und Prüfsummen-Semantik. | Vollbaum-Kopien je Job sättigen Uplinks zwischen Regionen. |
Priorisieren Sie Steuerflächen vor Bandbreiten-Tuning: zuerst Namensauflösung stabilisieren, dann Registry-Origins und TLS härten, danach Sync-Profile feilen. So vermeiden Sie symptomatisches WAN-Tuning statt Ursachenbehebung. Koppeln Sie negatives Caching und Resolver-Fehler an Dashboards, damit Split-DNS-Lücken nicht als zufällige CI-Flakes enden.
DNS-Views und Auflösungsstrategie
Split-DNS produktiv behandeln: Resolver je Geografie liefern identische logische Namen—Registry, Status, Cache—mit regionalen Zielen nach Health-Check. Schichten: autoritative Records, VPN-/Zero-Trust-Forwarder, /etc/hosts nur Break-Glass.
TTLs auf Failover-Paaren (60–120 s) vor neuen Knoten in Singapur oder USA Westen senken. Negativtest: Resolver-Ausfall simulieren, dokumentierten Fallback-Namen erzwingen.
Intranet-Backends, Registry-Origin-Pfade & TLS
Artefakt-Registry: ein HTTPS-Hostname pro Umgebung, TLS am Proxy, HTTP/2 zu den Backends. Vertrauen synchron halten (privates Intermediate oder Trust-Store-Playbook)—macOS-CI hasst Schlüsselbund-Dialoge.
Keine HTTP-Spiegel neben HTTPS-Promote; kanonische URL muss eindeutig sein. Legacy-HTTP nur hinter Rewrite, HSTS auf dem Namen aus den Configs. OCSP-Stapling und kurze Leaf-Zyklen erleichtern Rotationen, wenn mehrere Regionen denselben Artefakt-Registry-Endpunkt ansprechen.
# TLS der Registry je Region-Klasse prüfen curl --max-time 8 --connect-timeout 3 -fsS \ --resolve registry.git.internal:443:10.20.30.40 \ https://registry.git.internal/v2/ >/dev/null
Granularität der Buildsperren
Buildsperren nur bei kollidierenden POSIX-Bäumen, Registry-Index oder Manifest. Compile, Analyse, Tests parallel; Kontention an Promote.
LOCK_FILE="/var/tmp/ci-registry-promote.lock"
flock -n "$LOCK_FILE" bash -c '
./scripts/publish-manifest.sh
rsync -az --delete ./staging/ "/Volumes/Artifacts/promote/"
' || { echo "Promote-Sperre belegt"; exit 17; }
Lockfiles auf lokaler NVMe, nicht SSHFS. Consensus-Dienst optional—Mac-seitig weiter flock-Semantik in Runbooks.
rsync- vs. Objektspeicher-Sync-Schwellen
rsync bei inkrementellen POSIX-Bäumen, bwlimit und manuellen Checksummen. Objektspeicher bei vielen Lesern gleicher großer Blobs und Edge-Cache für Egress.
| Signal | rsync bevorzugen | Objektspeicher bevorzugen |
|---|---|---|
| Median-Artefaktgröße | Unter ca. fünf Gigabyte pro Sync-Job | Hunderte Gigabyte oder häufiger breiter Fan-out |
| Parallelitätsmuster | Wenige Golden-Worker-Streams mit --bwlimit |
Viele Leser ziehen identische Keys innerhalb weniger Minuten |
| Betriebsbudget | Teams mit SSH- und POSIX-Pfad-Standard | Teams mit S3-kompatibler Toolchain und IAM-Rotation |
Immer /usr/bin/timeout, Metriken bei 124, wöchentliche Prüfsummen-Dry-Runs.
Latenz-Abnahme (Akzeptanzkriterien)
- Registry-Pull: p95 < 3 s (metadatenlastig, regionaler Origin).
- SSH Steuerung: Median-RTT < 70 ms zur parallelen Mac-mini-Klasse.
- Promote: E2E inkl. Lock < 2 min (größtes Wochenbündel).
- Failover: Cutover innerhalb eines TTL ohne hosts-Patches.
Latenz dauerhaft rot: Geografie ergänzen (Hongkong, USA Osten), nicht Locks verschärfen.
Merge-Abnahme-Checkliste (DNS, Registry, Buildsperren)
Vor Merge von DNS-, Registry- oder Lock-Änderungen—besonders neuer Region in paralleler Flotte.
- DNS-Parität: Internes dig (oder Äquivalent) zeigt je Region gesunde lokale VIPs für Registry- und Cache-Namen.
- TLS-Parität: Jeder Builder vertraut derselben Kette; Revocation und Rotation ohne GUI-Dialoge getestet.
- Sperr-Review: Kein Job hält exklusive Sperren über Compile+Test; Promote-only-Sperren im Runbook dokumentiert.
- Sync-Probelauf: Dry-Run rsync oder Objektreplikation innerhalb der Timeout-Budgets bei erwarteter Parallelität.
- Latenz-Sonden: Synthetische Pulls je Geografie erfüllen die Akzeptanzpunkte oben.
- Rollback: Vorherige DNS-Antworten und Registry-Endpunkte mindestens ein Wartungsfenster lang weiter erreichbar.
FAQ: Split-DNS, Registry & Beschaffung
Eigene Hostnamen je Region? Optional; einheitliche Namen mit korrekten Split-Views reichen—Zertifikats-Automation nicht vergessen.
Split-DNS sparen? Latenz täuscht. Views sichern Failover und ersparen Secret-Massenupdates.
clustervps Mehrknoten? Region B rot trotz grünem A → mehr Knoten/Geografie statt breitere Locks. Tarife vergleichen.
Parallele Mac-mini-M4-Knoten regional skalieren
Split-DNS plus regionale Origins mit weiteren dedizierten clustervps-Knoten: Compile parallel, Promote sicher. Kaufen, rsync-Matrix nachziehen, Merge-Checkliste nach Topologie-Wechsel.