Airbnb's Flexible Continuous Integration for iOS
Original post Flexible Continuous Integration for iOS
Article Summary
Michael Bachand and Xianwen Chen from Airbnb rebuilt their entire iOS CI system—and cut maintenance time while running 10 million minutes of jobs quarterly. Here's how they ditched 300+ physical Macs for AWS infrastructure.
Airbnb's iOS team was drowning in manual maintenance, logging into 300+ physical Macs individually for updates and troubleshooting. When AWS introduced Mac instances, they saw an opportunity to rethink everything using Packer, Terraform, and custom AMIs.
Key Takeaways
- Daily instance rotation prevents configuration drift across entire CI fleet
- Xcode rollout speed increased 20% using isolated test environments
- Packer builds fresh AMIs for both architectures in just hours
- Auto-scaling adjusts capacity based on job volume and weekday patterns
- Engineers eliminated manual logins to 300+ machines for OS updates
Airbnb now deploys iOS CI changes via Terraform pull requests and scales capacity on demand, spending meaningfully fewer hours on maintenance despite growing job volume.
Continue reading
What This Article Covers
Airbnb's Mac fleet kept drifting out of sync. Engineers had to manually wipe machines and reinstall macOS, then re-enroll them in MDM. This caused unpredictable downtime and wasted capacity.
Airbnb switched to terminating Mac instances every night and replacing them daily using EC2 Mac instances built from custom AMIs with Packer. This way, every machine boots into a clean state each morning.
The team cut maintenance hours even as the codebase grew and job volume increased. In the final quarter of 2022, they processed over 10 million CI job minutes using automated infrastructure-as-code deployments through Terraform.
This page summarizes “Flexible Continuous Integration for iOS” by Airbnb, published May 10, 2023. All credit for the original work goes to the authors.