CI/CD-Migration auf arm64
CI-Kosten senken, indem Sie auf arm64-Runner wechseln. Ihr Blueprint läuft auf beiden Architekturen: keine Änderungen nötig.
Die Herausforderung
- x86_64-CI-Runner kosten für dieselbe Last mehr als arm64-Äquivalente
- CI auf arm64 zu migrieren heißt, x86-only-Skripte, Docker-Images und Toolchain-Installationen zu entwirren
- Keine Garantie, dass bestehender Blueprint oder Umgebung auf einer anderen Host-Architektur läuft
- Parallele x86- und arm64-Pipelines während der Migration verdoppeln die CI-Kosten vorübergehend
Was alloy-it ändert
- alloy-provisioner ist eine native arm64-Binary: derselbe Installationsbefehl, keine Änderungen nötig
- Derselbe Blueprint stellt auf x86_64- und arm64-CI-Runnern identisch bereit
- Architekturbezogene Tool-Layer in Blueprints behandeln plattformspezifische Binaries automatisch
- Idempotente Bereitstellung macht parallele x86-/arm64-Jobs während der Validierung sicher
Das Ergebnis
- 20 bis 40 % niedrigere CI-Compute-Kosten auf arm64-Cloud-Runnern (AWS Graviton, GitHub arm64)
- Ein Blueprint für lokale Entwicklung, x86-CI und arm64-CI; keine Divergenz
- Dasselbe Cross-Compilation-Ziel: der Wechsel der Host-Architektur ist für Ihre Firmware unsichtbar
- Vollständige Migration in Stunden, nicht Wochen
So funktioniert es
arm64-Cloud-Runner (AWS Graviton, GitHub-hosted arm64, selbst gehostete Ampere- oder Apple-Silicon-Maschinen) liefern 20 bis 40 % besseres Preis-Leistungs-Verhältnis als vergleichbare x86_64-Instanzen. Für Embedded-Teams mit kontinuierlichen Firmware-Builds summiert sich dieser Vorsprung schnell.
Der Haken: Die meisten CI-Umgebungen wurden für x86 gebaut und hängen an Ad-hoc-Installationsskripten, x86-only-Docker-Basisimages oder Toolchain-Schritten, die auf einer anderen Host-Architektur still brechen.
Mit Alloy gibt es nichts zu entwirren. alloy-provisioner ist eine native arm64-Binary. Das Installationsskript erkennt die Host-Architektur und wählt die passende Binary automatisch. Ihr Blueprint bleibt unverändert: architekturbezogene Layer im Katalog behandeln plattformspezifische Tool-Varianten. Derselbe alloy-provisioner-Installationsbefehl läuft heute auf Ihrem x86-Runner und morgen auf Ihrem arm64-Runner.
Cross-Compilation-Ziele bleiben unberührt. Wechselt der Host von x86 auf arm64, ändert das nicht, was der Compiler erzeugt; Ihre Firmware zielt weiter auf dieselbe Embedded-Architektur wie zuvor.
GitHub-Actions-Beispiel
Das Runner-Label wechseln. Alles andere bleibt gleich.
jobs:
build:
runs-on: ubuntu-24.04-arm # ← only change from ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install alloy-provisioner
run: |
curl -fsSL https://raw.githubusercontent.com/alloy-it/\
alloy-provisioner-releases/main/scripts/install.sh | bash
- name: Provision environment
run: sudo alloy-provisioner install myorg/my-blueprint:1.4.0
- name: Build
run: source /etc/alloy/env && make buildBereit, Ihre CI-Kosten zu senken?
Sehen Sie, wie alloy-it die arm64-Migration zu einer Nachmittagsaufgabe macht statt zu einem Mehrwochenprojekt.