3x3: Speeding Up Mobile Releases
Article Summary
LinkedIn went from monthly releases to shipping mobile code 3x per day. Here's how they automated their way out of a month-long release cycle.
Drew Hannay shares how LinkedIn's mobile team built a fully automated release pipeline for their Project Voyager rebuild. Over 250 engineers needed a way to ship faster without sacrificing quality or waiting weeks for manual testing.
Key Takeaways
- 3x3 rule: Release 3x daily, code to production in under 3 hours
- Distributed builds across CI machines cut iOS build time by 4x
- Layout tests replaced manual localization reviews for UI bugs
- Feature flags let teams test internally before exposing to members
- Weekly automated promotions to App Store and Google Play
LinkedIn eliminated their 4-day manual regression test and moved from 12 releases per year to continuous deployment for internal users, with weekly public releases.
About This Article
Drew Hannay's team had a real problem. iOS builds were taking about 40 minutes and Android builds around 15 minutes because they had to compile multiple binary flavors. This was eating into their goal of getting code from commit to production in three hours.
LinkedIn switched to distributed builds across their CI machines. Parent nodes would build the minimum binaries needed while child jobs compiled the remaining flavors in parallel. They also spent time optimizing Swift compiler performance by doing deep analysis of how the compiler worked.
iOS builds ended up running 4x faster. The team spread UI tests across multiple machines and ran up to 15 Android emulators at the same time. This made it possible to complete the entire pipeline within their three-hour window.