Buildkite’s Transition to ARM

The early results are in, and it looks like Apple’s new lineup of M1 Macs are living up to the promise of higher performance using less power. This is game changing. Why? In addition to speed and efficiency gains, Apple is beginning the process of transitioning all of its desktops and notebooks away from x86 Intel chips in favor of its own M1 chip, an ARM-based CPU built entirely by and for Apple.

ARM processors are not new—your iPhone or Android smartphone already runs on one (e.g., Apple’s A-series and Qualcomm Snapdragon)—and they have been used traditionally for low-power mobile devices. However with M1, Apple is taking what it has achieved with ARM in the mobile space and transferred it to the notebook and desktop computing environments. I believe this will lead to a fundamental shift in how software is written in the upcoming years as ARM-based CPUs become more widely available.

Why do we care about ARM?

If you have been watching the progression of Apple’s A-series chips used in iOS devices, then you know that each chip has managed to be (sometimes significantly) more powerful than its predecessor. Those of us who think about how we equip our engineering teams are not surprised that Apple has introduced this powerful type of chip into Macs.

Although we are based in Australia, my co-founders and I spend some time each year in San Francisco, where many of our customers are based. We’ve observed (anecdotally, of course) that many developers are using Macs. Right now, they're Intel-based and so they build and deploy to the same CPUs. But soon, ARM processors will be in the hands of many more developers as M1 chips become the de facto standard.

But I’m not here to just sing the praises of Apple Silicon, because this breakthrough is bigger than Apple. AWS has recently launched a new low-cost, high-performance class of EC2 instances powered by their ARM-based Graviton processor. ARM architecture is the future of CPUs and other manufacturers will catch on. Qualcomm president Christiano Amon was recently interviewed on Vergecast and had this to say about M1:

“The ecosystem is going to move and it showed that Microsoft and Qualcomm were in the right trajectory. It’s about battery life, it’s about connected, it’s about a whole different multimedia experience.”

Speed and cost savings

As I noted before, you’re probably already somewhat familiar with ARM processors if you use any kind of mobile device. ARM is based on RISC (Reduced Instruction Set Computer) architecture, designed to execute a smaller number of tasks at higher speeds, resulting in less power consumption. Such an architecture is obviously ideal for chips in devices like smartphones and wearables.

Thanks to this design, there are significant cost savings to be had in moving other workloads to ARM as well. I’m thinking about this in my particular area of expertise -- CI workloads. When it comes to the CPU you use for CI/CD, it all comes down to speed and cost. The secret to speeding up CI/CD workloads is to parallelize the individual parts, and running those parts as fast as possible without breaking the bank. Cloud providers are contributing to these cost savings by investing big in speed and performance of their ARM processors.

In particular, AWS’s Graviton processors claim up to 40 percent better price performance than comparable x86-64 CPUs (see this outside analysis, which backs up this claim). When you consider the highly-ephemeral nature of CI tasks combined with the dynamic scaling cloud providers like AWS provide, even a small performance improvement can translate to huge savings, particularly in large scale environments.

ARM will change how software is written

Outside of mobile development, most software is built to run on AMD or Intel CPUs, and the biggest barrier up to this point has been the lack of availability of workstations that developers could use to write ARM-based software. Apple has changed this balance with the introduction of M1 processors.

Already, developers are seeing unexpected benefits from their new M1 gear, from being able to reproduce hardware-specific errors in their pipelines to seeing performance improvements even when running in x86-64 emulation with Rosetta2. I think by the end of 2022, developers will be building and deploying to ARM. In fact, Adobe is already leading the pack with its release of ARM native software in its Creative Suite, with more companies releasing ARM native or M1-friendly software every day.

Buildkite’s transition to ARM

ARM is definitely a part of Buildkite’s future. Our goal is to be ARM native by the end of 2021. We’re starting the process by rolling out ARM-based Macs to all of our engineers. However, we will be starting slowly as we wait for the developer tooling space to catch up to ARM. Many of the tools we use on our development machines to build Buildkite still only work with x86-64.

What are we hoping to achieve with this transition? Some obvious benefits, like cheaper cloud bills of course. But we also hope to reduce our carbon footprint of our application in production due to the reduced power consumption of the Intel-based servers we use at the moment.

Most importantly, we think this change will result in a faster web experience for our customers. In fact, we’ve already started adding support for ARM in the latest version of the Buildkite Agent and the Elastic Stack.

Try it out today!

If you have a fancy new M1 Mac, or are raring to try out a Graviton instance in AWS, we’ve got you covered!

If you’re not already a Buildkite user, you can start a free trial any time to get hands-on!

Installing on MacOS via Homebrew will automatically install the appropriate version for your processor (be sure to follow Homebrew’s Apple Silicon instructions)

For AWS, our Elastic CI Stack can be used with Graviton EC2 instances. Just select your desired InstanceType, and you’re good to go!