Skip to main content

Cutting build wait times to seconds using Amazon EC2 Mac instances with BMW

Learn how BMW Group cut macOS build wait times from 30 minutes to seconds by using Amazon EC2 Mac instances.

Benefits

seconds to a build runner, down from 30 minutes

daily macOS builds, up from 80–100 daily builds

faster pipelines, from 90 to 30 minutes

Overview

BMW Group (BMW) builds the mobile and connected-vehicle software that millions of drivers rely on. Its Apple app teams once worked from a small farm of aging on-premises Mac minis; fewer than half were usable on any given day, and developers queued roughly 30 minutes before a build could start. Seeking elastic capacity without the hardware burden, BMW moved those workloads to Amazon Elastic Compute Cloud (Amazon EC2) Mac instances—used to run on-demand macOS workloads in the cloud—and built a platform of short-lived, on-demand macOS runners. Developers can access a virtual machine in seconds instead of waiting in line, so fixes and new features reach drivers of BMW, MINI, and Rolls-Royce vehicles at a faster pace.

Missing alt text value

About BMW Group

BMW Group manufactures premium cars and motorcycles while providing premium financial and mobility services. Based in Munich, Germany, it operates a global sales network with more than 30 production sites worldwide.

Opportunity | Using Amazon EC2 Mac instances for CI/CD at BMW

Behind every connected BMW, MINI, and Rolls-Royce is a continual flow of software updates that must reach drivers reliably and quickly. For BMW’s Apple app teams, that flow began on 15 aging Intel Mac minis that were housed on premises. While a portion ran at any moment, the remainder sat idle, awaiting manual patching. Keeping the fleet operational consumed 25–30 hours of one engineer’s week, and the machines’ limited memory, storage, and processing power compounded every delay. Developers waited about 30 minutes for a free runner, and once a build finally started, the pipeline took another 90 minutes to finish.

Critical TechWorks (CTW), a joint venture between BMW Group and Critical Group, develops software exclusively for BMW Group’s connected-vehicle fleet and IT ecosystem. CTW’s development teams already shipped Linux builds through Orbit Spaceship, BMW’s central cloud developer platform for continuous integration and delivery/deployment (CI/CD) on Amazon Web Services (AWS), and sought an equivalent experience for macOS.

“We were visiting BMW headquarters and met the mobile team,” says Jonas França, who leads the cloud developer platform at BMW. “They asked us to provide macOS runners as we did for Linux. When we saw how they were running their CI/CD machines, with one person just keeping them alive, we knew we could do better.”

Solution | Building ephemeral macOS runners for connected vehicles

Over a two-phase migration, BMW replaced its physical Mac servers with Amazon EC2 Mac instances. A first version, delivered as a working prototype within 4 months of engaging AWS, proved that cloud-based macOS runners could serve production traffic and cut developer waits from 30 minutes to roughly 2 minutes. A second version, informed by what the team had learned by running Linux runners at scale, rebuilt the platform around a service-oriented design and cut that wait to seconds. Moving from aging Intel hardware to Apple silicon–based instances drove most of the gain in build speed, with refinements to the pipeline itself accounting for the remainder.

Tart, an open-source tool set for creating and running macOS virtual machines (VMs), runs on top of Apple’s Virtualization framework API to carve each dedicated host into two isolated, ephemeral VMs. Every job runs on a clean macOS image built through an automated, versioned pipeline and preloaded with multiple Xcode versions, along with iOS and watchOS simulators. Developers choose the toolchain that they need without waiting for installations. VMs are prebooted into a warm pool and replaced the moment that one is claimed, so a fresh VM reaches a ready state in approximately 15 seconds rather than cold booting on demand.

Around this core, BMW built the supporting services that turn raw compute capacity into a developer-ready environment. Incoming webhooks flow through a lightweight queue into AWS Lambda, which provides serverless compute for every workload. AWS Lambda handles business logic such as contract validation, entitlement checks, and rate limiting before requests are routed to an available VM. Amazon EC2 Dedicated Hosts—dedicated hardware to support existing software licenses and improve compliance—supply the single-tenant Apple hardware that macOS licensing requires while giving BMW control over instance placement.

The internal Orbit Spaceship platform runs on Amazon Elastic Kubernetes Service (Amazon EKS), a service for building, running, and scaling production-ready Kubernetes applications. Using Amazon EKS, BMW off-loads the hosting and management of the Kubernetes control plane that orchestrates runner deployments and keeps macOS workloads tightly integrated with the rest of the CI/CD environment. A controller layer prewarms VMs, balances host usage, and supports flexible VM sizing.

“Hardware upgrades posed a challenge for our customer, the mobile app team—you buy 15 Macs, and 2 years later they’re outdated,” says França. “Using Mac instances, we can provision new capacity quickly, see costs up front, and maintain the platform more easily.”

Outcome | Scaling macOS builds from one team to 12

BMW’s macOS platform now serves 12 development teams and processes 800–900 builds each day, up from 80–100 on the former Mac farm. Developers reach a runner in about 15 seconds instead of 30 minutes, and pipelines complete in 30 minutes rather than 90—roughly three times faster. Because each dedicated host carries two isolated VMs, BMW runs 54 runners across 27 instances, and no one on staff patches hardware anymore. Cost per build fell by about 80 percent even as total throughput grew by 10 times.

Adoption spread without any internal promotion; teams across BMW saw the mobile group’s results and asked for the same setup. These macOS builds feed Orbit Spaceship, which supports up to 130,000 daily builds and deployments across BMW’s connected-vehicle apps, reaching 24.5 million vehicles.

Next, BMW will migrate its remaining macOS developer teams onto this latest iteration of Orbit Spaceship and consolidate its host fleet while holding throughput steady. The company is also weighing rightsized Mac instances and nested virtualization to stay cost-efficient. As AI-assisted coding drives a rising tide of pull requests to validate, BMW expects fast, scalable macOS runners to become a more vital part of how it ships software to drivers.

“Over the course of our migration, we went from developers waiting 30 minutes just to get a runner to builds starting in 15 seconds,” says França. “The mobile app team told us life is 700 percent better—they no longer babysit physical machines.”

Missing alt text value
Over the course of our migration, we went from developers waiting 30 minutes just to get a runner to builds starting in 15 seconds. The mobile app team told us life is 700 percent better.

Jonas França

Cloud Developer Platform, BMW Group

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages