ARM chipsets like AWS Gravitron and Google Cloud/Azure Ampere have quickly gained adoption. There are many enterprise tailwinds: supply chain, licensing, performance, cost, etc.
But I've been most surprised with how quickly developers have adopted ARM in production. Even with superior cost and performance, there's gravity to running a specific architecture. Ten years ago, switching off Intel would have been a long, painful transition.
So why are more application developers running ARM?
- Ephemeral infrastructure makes it easier to switch out new machines. That means getting a parallel ARM pipeline in CI/CD or production is easier.
- The M1 MacBook gave developers a native ARM development machine. Development is much easier when the development architecture is closer to the production architecture. Rosetta 2's x86 emulation made the transition even more seamless.
- Docker's
buildx
command makes it trivial to cross-compile applications for different platforms. However, multi-platform Docker images are still a pain (when they don't exist). - First-class architecture abstractions in popular systems languages like Go and Rust make it easy to target different platforms. Changing architecture in Go is usually as simple as changing the
GOARCH
environment variable (unless you're using C-bindings). - Even WSL2 supports ARM well. A Windows machine on ARM hardware runs native Linux on ARM (no emulation).