Migration CI/CD vers arm64
Réduisez les coûts CI en passant aux runners arm64. Votre Blueprint fonctionne sur les deux architectures : aucun changement nécessaire.
Le problème
- Les runners CI x86_64 coûtent plus cher que les équivalents arm64 pour la même charge
- Migrer le CI vers arm64 signifie démêler scripts réservés à x86, images Docker et installations de chaîne d'outils
- Aucune garantie que le Blueprint ou l'environnement existant fonctionne sur une autre architecture hôte
- Faire tourner des pipelines x86 et arm64 en parallèle pendant la migration double temporairement les coûts CI
Ce qu'alloy-it change
- alloy-provisioner est un binaire natif arm64 : même commande d'installation, aucun changement nécessaire
- Le même Blueprint provisionne à l'identique sur runners CI x86_64 et arm64
- Les couches d'outils conscientes de l'architecture dans les Blueprints gèrent automatiquement les binaires spécifiques à la plateforme
- Le provisionnement idempotent permet d'exécuter des jobs x86/arm64 en parallèle pendant la validation en toute sécurité
Le résultat
- 20 à 40 % de coûts de calcul CI en moins sur runners cloud arm64 (AWS Graviton, GitHub arm64)
- Un Blueprint pour le développement local, le CI x86 et le CI arm64 ; pas de divergence
- Même cible de cross-compilation : le changement d'architecture hôte est invisible pour votre firmware
- Migration complète en quelques heures, pas en semaines
Comment ça marche
Les runners cloud arm64 (AWS Graviton, arm64 hébergés par GitHub, machines Ampere ou Apple Silicon auto-hébergées) offrent 20 à 40 % de meilleur rapport prix/performance que les instances x86_64 équivalentes. Pour les équipes embarquées qui font des compilations firmware continues, cette marge s'accumule vite.
Le hic, c'est que la plupart des environnements CI ont été construits pour x86 et s'appuient sur des scripts d'installation ad hoc, des images Docker de base réservées à x86, ou des étapes de chaîne d'outils qui cassent silencieusement sur une autre architecture hôte.
Avec Alloy, il n'y a rien à démêler. alloy-provisioner est un binaire natif arm64. Son script d'installation détecte l'architecture hôte et sélectionne automatiquement le bon binaire. Votre Blueprint ne change pas : les couches conscientes de l'architecture dans le catalogue gèrent les variantes d'outils spécifiques à la plateforme. La même commande d'installation alloy-provisioner fonctionne sur votre runner x86 aujourd'hui et votre runner arm64 demain.
Les cibles de cross-compilation ne sont pas affectées. Le passage de l'hôte de x86 à arm64 ne change pas ce que produit le compilateur ; votre firmware cible toujours la même architecture embarquée.
Exemple GitHub Actions
Changez le label du runner. Tout le reste reste identique.
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 buildPrêts à réduire vos coûts CI ?
Découvrez comment alloy-it fait de la migration arm64 une tâche d'un après-midi plutôt qu'un projet de plusieurs semaines.