Shopify Nov 24, 2022

Building a Dynamic Mobile CI System

Article Summary

Shopify slashed their mobile CI deploy times from 2.5 hours to 15 minutes. Here's how they built a system that scales horizontally without breaking a sweat.

As Shopify shifted to mobile-first with 130K+ merchants on mobile, their Mac Mini-based CI system hit a wall. Their production engineering team rebuilt it from scratch using VMware, MacStadium's Private Cloud, and Buildkite to handle massive scale.

Key Takeaways

Critical Insight

The new system delivers sub-10-minute builds with perfect isolation, horizontal scalability, and 8x faster deploys than their previous setup.

Their clever caching strategy using RAM disks and Redis locks solved a tricky problem with parallel builds writing to the same folders.

About This Article

Problem

Shopify's CI setup had a major bottleneck. They needed to upload VM images to each of their 24 Mac Minis separately, which meant deployments took over two hours. This slow process made it hard to iterate quickly on build environments.

Solution

They switched to MacStadium's Private Cloud, which uses shared SAN storage and VMware vCenter. Now they can upload a VM image once and deploy it to all hosts through high-bandwidth fibre channel connections.

Impact

The results were significant. Ubuntu deployments went from 40 minutes down to 5 minutes. macOS deployments dropped from 120 minutes to 15 minutes. In the worst case, total deployment time fell from 150 minutes to 20 minutes.

Recent from Shopify

Related Articles