How Delta Migrated from Intel to M1 for Mobile App Development
Delta Air Lines is a U.S. global airline leader in safety, innovation, reliability, and customer experience with its headquarters and largest hub in Atlanta. Millions of people fly each year with Delta to nearly 300 destinations in over 50 countries.
Delta prides itself on the company’s award-winning customer service, and keeping up with emerging technology is a big part of ensuring happy customers. The Fly Delta mobile app is an essential tool for business and leisure travelers alike to book trips, check-in for flights, manage their accounts, and much more.
Before Apple Silicon
A long-time MacStadium customer, the Delta mobile app team’s build and CI/CD pipeline was built on a fleet of bare metal 2012 Intel-based Mac minis housed in MacStadium’s data centers. These Intel-based machines were still performing well; however, Apple’s shift away from Intel to ARM-based Apple silicon meant that as newer versions of macOS and Xcode were released, the older hardware would not be supported. The Delta team was diligent about staying on top of tool upgrades, and they ran into problems when Big Sur and Xcode 13 would not run on their legacy infrastructure.
The Fly Delta app team was faced with a decision: upgrade their Intel-based machines to the 2018 version of the Mac mini, or switch to Apple silicon M1 minis. The team knew that Apple had established a two-year timeline for full migration from Intel to Apple silicon, so the transition would have to happen eventually. But is now the right time?
I knew the M1s were way faster, and we’d have to go through that transition at some point... might as well start that process now.
“We could move to newer Intel machines that would support the essentials we need, or we can just take the plunge and go forward with the M1 machines,” said Michael Groves, a mobile architect on the Fly Delta team. “I pushed for the second option because I knew that the M1s were way faster and we’d have to go through that transition at some point. It could be painful, but we might as well start that process now.”
Transitioning from Intel to M1
At the time that the Fly Delta app team decided to make the move to Apple silicon, they did not have any M1 machines onsite. As one of its first customers to adopt M1 for their build pipeline, MacStadium provided a few M1 minis for the Delta team to conduct testing. Once they identified and solved any initial hurdles, the app team added thirty M1 Mac minis to their MacStadium private cloud to start the migration.
The Delta mobile development team started by going through the steps to set up a new machine to see what worked on the M1 and what didn’t. “We have a big document that outlines how to set up a new machine. We followed those instructions and took it slow, step-by-step,” said Groves. “We’d ask ourselves, ‘Did step one check out? Step two? Are things working correctly?’”
“We definitely ended up in situations where we got to say, step four, and we had to blow everything away and go back to the beginning because something we installed in step one may have pulled down an Intel version of some library or something like that,” said Groves. “So when we got to step four, trying to build with some other tool now doesn’t work.”
“For instance, the version of Ruby we were using couldn’t compile completely for the M1 machines,” said Groves. “So we had to upgrade to a newer version of Ruby which was probably a good thing anyway.”
“For an end-user, Rosetta works really well and you don’t even have to think about it,” said Groves. “But once you get into the development world, you have to understand the nuances of how and when Rosetta is going to run versus native code. Having a good understanding of how Rosetta interacts with tools like Homebrew or a simulator, for example, will really help with the transition.”
“One of the things that helped us is that we keep a pretty slim stack of tools that we use; we try not to pull in a bunch of third-party stuff whenever possible. For example, for running builds, we use Xcode directly instead of going through another integrated tool. That definitely helped [with the migration to M1] since there are less layers that need to get updated,” said Groves. “Of course there are pluses and minuses to working like that. Obviously, it takes a little bit more effort to maintain everything, but it does give us the freedom and flexibility to make jumps like this.”
“Finally,” said Groves, “if at all possible, try to do everything in native ARM. It’s going to be faster and you’re going to have to get there eventually. So, if you can, make it work.”
Impact of Apple Silicon
“Most of our build scripts ran about 20 percent faster when we ran them natively on the M1 machines compared to Rosetta 2 emulation, and they are almost twice as fast compared to the 2012 Mac minis,” said Groves.
While the majority of their DevOps pipeline will run on Apple silicon, the Delta team plans to keep a few of the older Intel-based machines at MacStadium for any legacy processes that won’t get updated.
Being able to make the architecture transition with both Intel and M1 cloud-hosted Macs at MacStadium has made the process easier. “This continues to be a great partnership,” said Groves. “It’s nice to have machines physically located where they are being managed by a team that can watch out for them; it’s a hassle to deal with physical management of machines in-house.”
And in addition to their iOS app development running on M1 hardware, the Delta mobile team wants to migrate their Android pipeline to the new M1 Macs. “We’re also planning on moving over our Android build infrastructure to the new machines,” said Groves. “Once our DevOps team has setup a machine, it’s nice to be able to reach out to MacStadium to clone it and add it with the other Macs we have. There’s an ease of use to keeping everything the same; once configured correctly for Android, iOS, and all the builds, it’s pretty straightforward.”
The Fly Delta app team anticipates that 70% of their pipeline will be running on M1 machines by the beginning of 2022 with full migration following shortly after, well before the two-year timeframe established by Apple. “While we still have some stuff that’s running on the old machines, moving forward everything we’re doing is on the M1 minis,” said Groves.
And while the early adoption of Apple silicon had some bumps in the road, the team is happy that they didn’t wait to make the change. “This was a lot of work, but I don’t think waiting longer would make it less work,” said Groves. “And the performance benefits have been more than worth it.”