What is Anka?
Anka is a suite of software for creating and managing macOS VMs to run on top of Apple hardware and macOS. It enables creation of macOS VMs and integrates with existing container based DevOps workflows for iOS and Native App build & test CI/CD/Automation. Built on the native Apple hypervisor, it utilizes macOS resource scheduling, performance management, and flexibility. Management of VMs is performed with the Anka Virtualization CLI, UI app, and Build Cloud Controller UI or REST APIs.
- Easy to install.
- Built on the native Apple hypervisor, utilizing macOS resource scheduling, power management, and flexibility.
- Optimized VM network and disk performance using para-virtual drivers.
- VM management through the Anka Virtualization CLI, UI app, or web based Build Cloud Controller UI.
- Ability to suspended and then instantly start VMs from a specific state.
- Nested Virtualization for running Docker, Android Emulators, and others inside of the VM.
- Attach physical USB devices (like an iPhone) to VMs for on-device testing.
- Compatibility with T2 enabled Apple hardware.
- Can be installed on the majority of modern macOS versions (High Sierra 10.13.x or higher).
- Anka VMs can install and run any modern macOS version (High Sierra 10.13.x or higher).
DevOps workflows typically include lots of automation. Because of this, Anka has multiple options for you to either integrate with existing workflows/tools or create them from scratch:
- Build VM Templates (a.k.a “images”) for different versions of macOS.
- Clone the VM Template and create new Templates containing the different dependencies for each of your projects.
- Write scripts for automated Template creation in your preferred language, or use our packer builder.
- Store your VM Templates with a specific Tag in the Anka Cloud Registry so you can distribute or pull them to different machines and ensure the same VM state.
- Manage your VMs from the Anka Build Cloud Controller’s UI or REST API.
- Get up and running quickly with one of our maintained CI plugins or integrations.
Information about how VM Template and Tags work can be found in our Getting Started > Creating your first VM guide.
Using Anka
There are many ways in which our customers utilize the Anka Virtualization software and the Anka Build Cloud to achieve on-demand/ephemeral or long-running single-use macOS VMs for iOS and native app building and testing. Anka enables a docker-like experience for teams to create and store project specific VM templates and tags; including start, stop, clone, suspend, modify cpu and ram for, and execution of commands inside of the VMs.
Below are two of the most popular examples of how our customers set up Anka.
Controller-less Build Cloud (Registry Only)
This setup requires:
- At least one Anka Node (macOS host running the Anka Virtualization software).
- A linux container running the Anka Build Cloud Registry.
- Your CI/CD’s runner/agent installed and able to execute
anka
CLI commands to prepare and use the Anka VM. For example, install the github actions runner and then use our action.
Build Cloud Controller + Registry
This setup requires:
- At least one Anka Node (macOS host running the Anka Virtualization software).
- A linux container running the Anka Build Cloud Controller & Registry.
- Our plugin installed in your CI/CD tool (like the Anka Jenkins Plugin). See a full list of plugins available on our CI Plugins and Integrations page.