It’s time to migrate your iOS CI from ESXi Virtual Mac Infrastructure to native macOS Virtualization

When VMWare ESXi started officially supporting Apple macOS Virtualization on Mac hardware in late 2012, it opened the doors for the possibility of iOS development to move to a Linux-like, agile, scalable CI infrastructure. Soon enough, many iOS enterprise development teams started to run their iOS CI build and test workloads in ESXi VMs on Apple Mac pros 6,1 (“trash can”). Fast forward to 2019, Apple introduced the Mac pro 7,1 (“Cheese Grater”) and started planning for the transition from x86 to its Silicon. We believe this signaled that ESXi support for Apple hardware would not be there forever, and as expected, VMware announced in late 2021 that it wouldn’t be supporting Apple 2019 Mac Pro 7,1. With its recent announcement that ESXi 7. x will be the last version that will officially support Apple macOS virtualization, the runway for iOS CI deployments on the ESXi macOS cluster has ended.

But, this is not the end of the road for iOS developers who want to code, build, and test faster. When Apple introduced the Hypervisor Framework, it caught the attention of Veertu’s founding team. We embarked on a journey to develop our first solution and launched Anka in late 2017. Anka for Intel Macs leverages macOS native Hypervisor Framework and enables DevOps teams to set up an agile and scalable virtualized macOS infrastructure for iOS CI. With Anka Build, DevOps can create and provision macOS VMs like containers and manage the iOS CI with infrastructure as a code. iOS development teams currently using ESXI-based macOS virtualized infrastructure can easily migrate to Anka-enabled iOS CI infrastructure. Anka on Intel works on all Apple Intel hardware and enables the automated creation of ephemeral build environments for your iOS CI code. Anka macOS images, which are snapshots of your code dependencies and configuration, can be managed (similar to containers) and stored in the Anka registry. Build and test execution speeds inside the VMs are comparable to bare metal.

Any iOS team using ESXi macOS virtualization can migrate to a macOS native virtualization on Intel or Apple Silicon/M1 Mac hardware with the Anka Solution. Here are some of the factors to consider to plan for this migration:

Eliminate shared storage setup – Anka Build based iOS CI infrastructure eliminates the need for an ESXi shared storage setup. In Anka Build cloud, each mac host uses its local SSD, and the management and distribution of the images are done in the Anka Registry.

Leverage out-of-box integration with CI systems – The Anka Build Cloud has plugins for almost all commonly used CI systems like Jenkins, Teamcity, GitLab Ci, Buidkite, Github Actions, and Azure DevOps.

Eliminate manual steps in image creation – With Anka, DevOps can fully automate image creation for every macOS major and minor release. DevOps can use the Anka-packer plugin for scripting the creation of the VM images, as well as the installation of your application’s build or test dependencies.

Infrastructure-as-a-code – DevOps can use the Anka Build REST API interface or Anka CLI to manage and integrate existing tools or scripts.

Day Zero support for new macOS releases – Anka Build uses macOS native virtualization, which enables the Veertu dev team to support new macOS releases quickly.

Default Metal API support inside VMs  – Anka for both Intel and M1 support Metal inside macOS VMs. Apple Metal APIs enable faster simulator execution and are increasingly used in iOS projects.

GPU-Metal Support

AWS EC2 Macs – Anka can be deployed on AWS EC2 Macs to configure a fully scalable iOS CI, with dynamically provisioned Anka VM, feature integration with CI, and the ability to scale the underlying EC2 Mac hardware as needed.

Image security vulnerability Scanning – Anka Scan works on Anka VM images in the Anka Registry to scan and detect vulnerabilities in third-party packages, dependencies, and libraries.

For detailed information on Anka Build, refer to our documentation, sign up for a trial or ask questions in our slack.

Share this post