LinkedIn Drew Hannay Feb 3, 2016

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

Critical Insight

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.

The article reveals why they intentionally kept their 3-hour window tight (hint: it's not just about speed).

About This Article

Problem

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.

Solution

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.

Impact

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.