One year ago Apple released their first computer using their ARM-based Apple M1 processors to much fanfare. With macOS being such a popular choice for developers (and more so WordPress developers), we saw a big opportunity to leverage the incredible performance increase of these new laptops and desktops in the development of the Altis digital experience platform.
Development teams using Apple computers have no choice but to prepare for the transition too. Apple has already stopped selling Intel-based laptops in many countries as their entire product line shifts to Apple Silicon.
Apple’s transition to ARM CPUs away from Intel/x86 comes with several challenges that may not be obvious on first inspection. Apple released their compatibility layer called Rosetta2 to aid in the transition, but as we’ll see this doesn’t solve all the problems a web developer is likely to run into.
- Virtualisation of operating systems is very different with Apple Silicon. A popular solution for web developers is to use virtual machines powered by Virtual Box or VMware (often via Vagrant). VirtualBox have announced they will not be supporting Apple Silicon.
- Docker containerisation has become a popular solution for development environments. Though Docker supports ARM CPUs, many community Docker images are not built with ARM support. Though Docker supports x86 emulation via QEMU on macOS, this comes at a performance cost, and is not compatible with all images.
- Many applications/libraries managed by package managers such as NPM, Homebrew, and Composer that include native binaries often won’t include pre-compiled options for Apple Silicon. This means an
npm installcan take significantly longer, as native modules have to be compiled from source.
Supporting a new CPU architecture through the entire development stack is complex and a lot of work. Often, a WordPress-based project not only needs PHP, Nginx, and MySQL compiled for ARM to run on Apple M1 macs; there may be adjacent systems that also need to be compatible such as ElasticSearch or additional PHP modules.
Altis provides a full-stack development environment including local versions of all Altis Cloud systems and services. Once Apple announced they were transitioning to an ARM CPU architecture, we set about working on adding support for Apple Silicon in Altis Local Server.
This is one advantage of providing a “batteries-included” full development environment to developers: we can do all the research, implementation, and learning once, and all Altis developers can benefit together.
The Altis Local Server includes around 15 services to replicate our Altis Cloud infrastructure, all of which have been updated in Altis v9 to support ARM/Apple M1 natively. 🎉
Not only do Apple Silicon laptops have a huge amount of battery life compared to their Intel counterparts, but their processors are wicked fast too. Web development is not the most performance-intensive activity, but developers run PHP processes thousands of times a day while coding. A switch from “wait to reload” to “instant reload” makes a huge perceived difference in productivity, motivation, and feeling of flow-state. Using an Apple M1 Mac Mini for performance comparisons with a similar setup Intel Apple laptop, we saw large performance gains with Apple M1.
To maximise the benefit of the faster CPU, it’s recommended to use Altis Local Server’s Mutagen support for faster file sharing.
Comparison of PHP generation time for loading the front page of a new Altis site (lower is better):
As page generating time increases, it’s likely that the performance gap reduces. Longer page generation is typically due to more network IO and non-CPU bound tasks. It should be noted the above comparison is on a cache-warmed well-optimized page load.
As developers upgrade their computers it’s important to be prepared for architecture transitions like Apple Silicon. Across the Altis team, we have a pilot program running with around 8 engineers using Apple Silicon for all development and expect to have all new employees that have Macs using Apple Silicon by early next year.
Apple Silicon support is an important factor in choosing a development platform. Enabling developers to be productive from day 1 is a huge productivity win, and allowing people to choose the most cutting edge hardware is an essential part of that. We’re excited to benefit from the major advancements Apple has brought to industry across our team and happy that we can share those benefits with developers building digital experiences with Altis.