Introduction to Anka
What is Anka?
Anka is a set of tools to create, manage and distribute build and test macOS reproducible virtual environments for iOS and macOS development. The core of the Anka toolset is a native macOS hypervisor built on top of FreeBSD
xhyve and leverages Apple’s macOS
Hypervisor.Framework for virtualization. This hypervisor includes PV network and disk drivers that are required for high performance operations inside the Anka VMs. The Anka toolset also includes a
Controller and a
Registry module. Anka
Controller is used to configure and manage macOS cloud on a cluster of mac hardware running Anka Build package, for development purposes. Anka
Registry is used to version control macOS build and test VMs and distribute them to Anka Build private macOS cloud or to the developer mac workstations.
The Anka virtualization application package comes with a command line interface (
anka) that allows for easy, straightforward management of guest virtual machines built with Anka. As you’ll learn,
anka also provides the ability to interact with a remote Anka registry, and is purpose-built for engineers working in macOS or iOS development workflows. We think of Anka as a simple toolset that allows you to build your own private macOS private cloud, whatever your purpose may be.
What makes Anka different?
Unlike many existing macOS virtualization solutions, Anka lets the macOS operationg system manage virtual machines in the same manner as other native macOS applications. Anka uses para virtual drivers for greatly increased network and disk performance.
Combined with the powerful
anka CLI, Anka makes virtualization extremely fast and reliable. Using
Registry you can execute simple workflows to quickly build macOS virtual machines and deploy them to your developers, or CI with ease.
anka allows for other advantages as well, such as INSTANT START, to make multiple virtual machines extremely fast and responsive to your needs. Anka Registry lets you tag and version control your VMs, and is built specifically with DevOps workflows in mind. Lastly, Anka is the ONLY virtualization solution geared specifically towards making macOS and iOS CI workflows easy to manage. Lastly,
anka allows you to use real iOS devices for testing workflows while connected to your Apple hardware. Anka provides commands to easily manage the devices, check them out, or move them between test environments.
What does Anka do?
At a high level, Anka virtualizes macOS to create, run macOS Vms and enables you to use simple and automated DevOps workflows when working with macOS virtual machines and physical iOS devices. Anka boasts the following features:
- Easy installation
- Native hypervisor - use macOS resource scheduling and power management for guest VMs
- Para virtual drivers increase network and disk performance inside Anka macOS VMs
ankaCLI - automate management workflows or call them directly
Continuous Delivery and Integration
- Automate the deployment of new virtual machines
- Integrate with your CI system using
ControllerREST APIs for VM management
- INSTANT START - Eliminates the long boot time issue with macOS VMs, making running multiple VMs extremely fast and responsive
Registryto version and tag virtual machines for distribution
- Easily connect and remove physical iOS devices to your VMs
Who should use Anka?
Anka is for anyone using bare metal Apple hardware for CI purposes (macOS/iOS development).
Anka is for anyone that prefers to test in an isolated macOS virtual machine.
Anka is for anyone looking to build their own macOS private cloud.
Anka is for anyone wanting to maximize developer productivity by enabling local build and test workflows.
macOS Version Support
Anka can be installed on mac machines running Sierra or Higher.
At this time, only the following macOS versions can be created to run as macOS Anka VMs:
10.11.x(macOS El Capitan)
10.13.x(macOS Hi Sierra)
- VMs that are suspended on newer Apple hardware and subsequently uploaded to Registry and distributed to older Apple hardware will not run currently.
- Workaround: Suspend Anka VMs on hardware revisions older than or equal to your target hardware.