Pandora: Keeping Pace with New iOS Releases
Pandora is the world’s most powerful music discovery platform – a place where artists find their fans and listeners find music they love.
Pandora’s iOS app is an essential part of making the connection between musician and listener, and their development team is constantly striving to deliver the most cutting-edge app to their users as quickly as possible.
In February 2017, Pandora’s macOS infrastructure consisted of aging Mac minis and Mac Pros inside their own data centers. Without macOS Tech Ops expertise in-house, it was cumbersome for the Pandora Tech Ops, SRE, and NetOps teams to host and maintain Apple infrastructure. Provisioning new Mac hardware inside their enterprise data centers was also a time-consuming (sometimes months long) and painful exercise. The Pandora team required a solution that could provide them with a more robust Mac infrastructure that could scale quickly to meet their ever-growing capacity needs.
Virtualizing Build Environments with Anka
Pandora initiated a proof of concept with Veertu’s Anka private cloud technology, a brand-new Docker-like service for macOS that can create new VMs from stored template images in seconds, as well as switch between various stored images effortlessly. Pandora started by conducting tests of their mobile builds and unit tests using a MacStadium cloud driven by Anka virtualization. They immediately began to see the benefits of the new system.
Pandora was able to create, manage, maintain and distribute multiple build environment configurations from a central Anka Registry. Then, from these primary build environment images, they used the Anka Build controller and Jenkins plugin to enable their build jobs to provision macOS environments on-demand on Mac hardware. So, while they were maintaining the Pandora app on Xcode 9, they also started development on build and test environments provisioned from an image containing Xcode 10 on Anka Build cloud.
Environment rollback became as simple as provisioning an on-demand environment from a different image or previous image tag/version.
For example, the team was able to get the Pandora app ready for the iOS 12 launch on very short notice. Developers used Anka Flow to build and test on an Xcode 10 Anka VM image locally, resulting in consistent environments across all stakeholders. Environment rollback became as simple as provisioning an on-demand environment from a different image or previous image tag/version.
In addition, build instability was completely eliminated by executing build jobs in the immutable, sterile environments provisioned from an image stored in the central registry. Anka Build caches VM images on-demand on the host nodes and manages host storage availability, so there is no need to have VMs provisioned and served from central shared storage.
Scalable iMac Pro Infrastructure
When designing their environment, Pandora made the decision to go with faster hardware to get better performance. By running several performance tests, they discovered that the new 2017 iMac Pro was head and shoulders better than any other choice (note: 2018 Mac minis were not released at the time Pandora conducted its bake-off); so much so, that the gains in productivity far outweighed the expense for these high-end servers.
Pandora decided to utilize iMac Pros from MacStadium, based on business justification analysis of cost/effort associated with the housing, managing, and maintaining the hardware in their data center. Also, MacStadium’s proprietary (patent-pending) technology for racking iMac Pros was not available with an in-house solution.
The turnaround time on MacStadium is extremely fast; half a dozen new machines can be stood up in a matter of hours.
Pandora was able to completely abstract build and test environments from the underlying host configuration and scale simply by adding additional Mac machines hosted by MacStadium. The turnaround time for new hardware on MacStadium is extremely fast; half a dozen new machines can be stood up in a matter of hours.
Impact on Pandora
By performing CI build and test on the new iMac Pros using Anka Build, Pandora’s overall developer productivity nearly doubled, from ~39 minutes to turn around a build and test on the 2012 dual-core Mac Minis to ~22 minutes on the iMac Pros, running multiple builds in parallel. Considering the number of developers and number of builds the Pandora team runs, this saves a significant number of developer hours every week.
Pandora is now on the leading edge in high-performance macOS cloud computing with Anka Build and MacStadium Mac infrastructure – and it’s paying off. The Pandora app was one of the very few consumer apps that successfully released an update for iOS 12 on Apple’s day one September 21, 2018 launch date, supporting the exciting new Siri Shortcuts feature, garnering excitement from users as well as the press: “This is one of the most popular music streaming apps available and the new features really add to the iOS app. If you have already upgraded to iOS 12, then you should definitely check out Pandora.” (App Informers)
"The turnaround time for new hardware on MacStadium is extremely fast."Debayan MajumdarTechnical Team Lead Mobile Tools & Infrastructure
Aging in-house Macs were cumbersome to host and maintain; provisioning macOS build and test servers was neither scalable nor consistent
MacStadium private cloud built on iMac Pros using Anka as a virtualization layer
Average build times cut nearly in half resulting in significantly increased developer productivity with multiple builds running in parallel