Introduction to Anka

Release Notes

Check out the latest release notes for Anka Build and Anka Flow.

Introduction

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 bhyve and 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 build and manage an on-premise macOS cloud using Anka hypervisor, for development purposes. Anka Registry is used to version control macOS build and test VMs and distribute them to developer workstations and the private macOS cloud.

The Anka application 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 on-premise 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 anka, Controller & Registry you can execute simple workflows to quickly build macOS virtual machines and deploy them to your users, developers, or administrators 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 individually or in groups.

What does Anka do?

At a high level, Anka enables you to use simple and automated DevOps workflows when working with macOS virtual machines and physical iOS devices. Anka boasts the following features:

General

  • Easy installation
  • Native hypervisor - use macOS resource scheduling and power management for guest VMs
  • Para virtual drivers increase network and disk performance
  • anka CLI - automate management workflows or call them directly

Continuous Delivery and Integration

  • Automate the deployment of new virtual machines
  • Integrate with your CI system using Controller REST APIs for VM management
  • INSTANT START - making running multiple VMs extremely fast and responsive
  • Use Registry to 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 as macOS Anka VMs:

  • 10.10.x (macOS Yosemite)
  • 10.11.x (macOS El Capitan)
  • 10.12.x (macOS Sierra)
  • 10.13.x (macOS Hi Sierra Beta)

Known Issues

  • 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.