Comparing Anka and Orka


In this blog, we will do our best at comparing Anka and Orka, expediting your team’s decision-making process.

This blog’s information is likely to change over time as both Anka and Orka evolve.


As your iOS applications grow, so does the need for automation, feedback, and testing. Teams will consider setting up a central CI/CD platform to handle automated Pull Request checks, tests, and allow for self-service consistency and confidence to build or test the application.

Regardless of the CI/CD platform, you’ll need to obtain hardware to run your macOS builds and tests. I should mention that GitHub Actions and a few platforms provide limited but free macOS hardware. It is either seriously constrained capacity, out of date, or limited in what you can install on it. When obtaining Apple hardware, you’ll notice a high cost — especially for larger organizations that need to run lots of simultaneous CI/CD jobs. Both Anka and Orka solve this problem in different ways.

Anka aims to provide the software you can install to run and manage macOS VMs for your iOS, or general sandboxed macOS application builds and tests. This software can run on any Apple hardware, allowing you the flexibility to run in-house or with any of the many hosted hardware providers. The Anka Build Cloud includes a web UI for queueing, non-CLI management, and APIs.

Orka aims to provide a one-stop solution to managing and running macOS VMs. They’ve wrapped docker around macOS installed on top of KVM so they can run inside of Kubernetes, all on a modified and unsupported Linux OS running on Apple Hardware. You’re limited to running on their hardware in their datacenters and have limited access to Kubernetes itself.

WHAT YOU CAN EXPECT FROM BOTH

  • A CLI to manage VMs from the command-line.
  • An easy to use management web UI.
  • APIs for automation and scripting.
  • Create VM images with specific dependencies inside, then run on-demand, persistent, or transient VMs from those images.
  • Popular CI/CD platform support that automates VM creation.
  • 24/7 Customer Support

THE HYPERVISOR AND PERFORMANCE

How do the solutions achieve virtualization?

  • ANKA: The core of Anka leverages Apple’s macOS hypervisor.framework for its virtualization. It also uses macOS resource scheduling, power management, and para-virtual drivers for significantly increased performance.
  • ORKA: “Orka utilizes a combination of CoreOS, KVM, Docker, and Kubernetes to allow for virtualization of macOS…”

What sort of performance should I expect?

  • ANKA: Uses macOS resource scheduling, power management, and para-virtual drivers for optimal performance.
  • ORKA: Several of our customers have done a proof-of-concept with Anka and Orka and indicate that Anka Virtualization speed is superior to Orka. Performance differences are likely due to the complexity of Orka virtualization stack.

HARDWARE, INFRASTRUCTURE, AND ARCHITECTURE FLEXIBILITY

What sort of hardware do I need?

  • ANKA: Anka macOS VMs run on all Apple hardware. 
  • ORKA: Limited to MacStadium provided hosted hardware and also limited to older generation 12-core Mac Pro and 6-core 2018 mac minis with predefined system configurations.

Can I access and control the operating system? (improve security, install custom metrics/monitoring, etc.)

  • ANKA: Access to and full control over host hardware and OS
  • ORKA: No access or control over underlying host hardware and OS. Orka installs an unsupported operating system (Linux based) onto their mac hardware.

Many of our customers have already purchased Mac Minis, so Anka is much cheaper for them. Again, Orka is limited to MacStadium hardware and cannot run on existing company hardware. 

MACOS VM IMAGES AND STATE

How are VM images created?

  • ANKA: Base images (a.k.a Templates) are created from a macOS version using apple’s official .app installer package and Anka’s CLI or GUI. Anka will automate the installation for you.
  • ORKA: Base images are generated by attaching an ISO to an empty VM and then manually (over VNC) installing the OS, step by step. Installation of the OS into the VM is not an automated process.

How do I take a snapshot of my VM’s state?

  • ANKA: After changing and installing what you need into a running VM, you’ll either suspend or stop the VM. When suspending, you can quickly start the VM again, returning it to the same state. You can then store the suspended VM in the Anka Build Cloud Registry.
  • ORKA: After changing and installing what you need into a running VM, you can commit to the original image, overwriting the previous image. However, this commit will stop the VM, requiring a long boot time before CI/CD jobs can run inside. No VM suspension feature available.

Can the creation of the VM images and snapshots be scripted?

VM IMAGE STORAGE

Is there a registry similar to Docker Hub that I can store my VM images?

  • ANKA: The Anka Build Cloud Registry allows for the storage (push) and distribution (pull) of macOS VM images. You can manage Registry VM images with the Anka CLI, API, or Anka Build Cloud Controller Web UI.
  • ORKA: “Orka base images are stored as .img files in the NFS storage of your cluster. Default Orka environments come configured with 1 terabyte of NFS storage per cluster. This storage resembles a directory where you can copy existing images, version them, or upload as many base images as you need. It is not a local Docker registry.” There is also a CLI, API, and Web UI for managing these.

What if I only want the Registry and CLI for local development?

  • ANKA: The Anka Build Cloud Registry comes together with the Controller or as a standalone package for either Linux (Docker) or native macOS. You can use it to store and share all of your VM images with your team, all without expensive hardware or licenses.
  • ORKA: Has no standalone registry and requires you to pay for the entire product.

Where do I obtain a macOS installer to create my base image?

  • ANKA: macOS installers .app files are obtained directly from Apple using the official Software Update UI and CLI, or third-party tools. We provide a list of these in our documentation.
  • ORKA: You can upload a macOS installer ISO or use the public to all Orka customer ISO registry.

REAL / USB DEVICES INSIDE OF VMS

Can I attach my iPhone to a VM for testing?

  • ANKA: Yes, anyone can attach USB devices to VMs.
  • ORKA: MacStadium may allow you to send them physical devices so they can connect them to their datacenter. However, Orka does not seem to support passing through the USB devices into the Orka VM (no information on their site or documentation).

DEVELOPER ACCESS

How can my developers work with the macOS VMs?

  • ANKA: Developers can install Anka Flow on their MacBooks, pull the VM images from a central registry, and then work from a VM locally.
  • ORKA: VMs are not able to run on non-MacStadium hardware.

MACOS VERSION & HARDWARE SUPPORT

Am I able to use Apple Silicon hardware when it’s released?

  • ANKA: Apple hardware releases are supported as long as they include the hypervisor.framework. Apple’s documentation on Apple Silicon hardware indicates that it will support the hypervisor.framework.
  • ORKA: Apple has communicated in its public announcement that Apple Silicon will only support macOS booting on top of bare metal and that Linux will be only supported as a virtual machine. Since Orka uses Linux installed on the bare metal, Orka will not be able to support Apple Silicon.

What versions of macOS do you support?

  • ANKA: Day 1 support for all Apple non-beta macOS releases. Support for macOS versions requires testing and validation (development work).
    Currently supported versions: 
    • 11.0.x-beta (macOS Big Sur Beta) (soon to be non-beta 11.0.x)
    • 10.15.x (macOS Catalina)
    • 10.14.x (macOS Mojave)
    • 10.13.x (macOS Hi Sierra)
    • 10.12.x (macOS Sierra)
    • 10.11.x (macOS El Capitan)
    • 10.10.x (macOS Yosemite)
  • ORKA: We were unable to find mention of any support for macOS Big Sur Beta.

MANAGEMENT WEB UI / MONITORING

Is there an easy to use web user interface available to manage my images, VMs, etc?

  • ANKA: Yes, the Anka Build Cloud Controller allows you to see and manage images, VMs, “Nodes” (host machines running VMs), Node groups, Logs, and more. It has packages for both macOS and Linux. You can even deploy it into your Kubernetes.
  • ORKA: Orka’s web UI allows you to manage images, VMs, VM Configs, Nodes, and ISOs, but that’s currently it.

Can I view CPU and Ram usage across nodes or collect metrics to send to my Prometheus?

  • ANKA: Yes, the Anka Build Cloud Controller allows you to see CPU and RAM usage across nodes or for the entire fleet on the UI as well as push metrics to Prometheus using our anka-prometheus binary.
  • ORKA: The Orka web UI does not show usage graphs. As far as we can see, there is also no way to push usage metrics to Prometheus.

If I want to push usage logs to Splunk, is that possible?

  • ANKA: The Anka Build Cloud Controller can log events to a file on disk or push JSON to a specific endpoint.
  • ORKA: Orka collects logs for all CLI and API operations. Logs can be obtained with a curl command in JSON format.

METAL / GPU SUPPORT

Can I use my host machine GPU inside of the VM?

  • ANKA: BigSur macOS exposes APIs for Metal (Apple official interface for host GPU) and Anka virtualization will be able to use this to expose GPU through the Metal APIs inside Anka VMs. Development is currently underway. In the meantime, you can pass your emulator’s tasks to the host.
  • ORKA: Does not have access to Apple’s Metal APIs as the macOS operating system has been removed from the host machine and replaced with a Linux distribution. No GPU passthrough either.

CI/CD PLUGINS & INTEGRATIONS

Can I use a custom in-house CI/CD platform with your product?

  • ANKA: Yes, we expose an API for everything you’d need to do in your custom platform.
  • ORKA: Yes, APIs are available.

Do you support Jenkins?

  • ANKA: Yes, you can run ephemeral or persistent VMs.
  • ORKA: Yes, you can run ephemeral or persistent VMs.

Do you support Buildkite?

  • ANKA: Yes, you can run ephemeral or persistent VMs.
  • ORKA: Yes, you can run ephemeral or persistent VMs.

Do you support TeamCity?

  • ANKA: Yes, you can run ephemeral or persistent VMs.
  • ORKA: Yes, you can run ephemeral or persistent VMs.

Do you support GitLab?

  • ANKA: Yes, you can run ephemeral (full gitlab-runner clone with executor inside) or persistent VMs.
  • ORKA: Yes, you can run ephemeral (custom executor) or persistent VMs.

Do you support GitHub Actions?

  • ANKA: Yes, you can run ephemeral or persistent VMs.
  • ORKA: Yes, you can run persistent VMs. Ephemeral VMs are not supported.

LOGIN / SECURITY

Can I create users?

  • ANKA: Infrastructure teams control access to Anka hardware and the CLI. However, a root token can be enabled to protect the Anka Build Controller management UI. Or, you can enable SSO authentication.
  • ORKA: “Orka requires you to create a dedicated Orka user for your cluster. This operation also creates a dedicated namespace in the cluster. You are the owner of this namespace. When you create a VM config and/or deploy a VM instance from it, they become associated with your namespace.”

Can I use HTTPS/TLS for communication between the different components?

  • ANKA: A simple configuration change enables HTTPS/TLS with signed or self-signed certificates.
  • ORKA: A custom domain must be requested for HTTPS/TLS to be enabled.

How do I limit access using my company’s certificates?

  • ANKA: Supports certificate-based authentication for communication to the Anka Build Cloud Controller & Registry API and from Anka Nodes.
  • ORKA: No

Can I use my company’s identity management tool to limit or provide access to resources?

  • ANKA: Supports SSO/OpenID for login to the Anka Build Cloud Controller UI.
  • ORKA: No

LICENSING / PRICING

  • ANKA: Anka software is licensed on an annual subscription model based on the number of total mac hosts and physical cores across them. Monthly recurring pricing for managed and hosted Anka Cloud is available through partner hosting companies.
  • ORKA: Monthly recurring pricing for the services.

We hope you now have a better grasp of both products. Orka and Anka differ in fundamental ways, but your organization’s needs might make it a quick decision. We find that performance, security, and flexibility are the most critical factors for customers that choose Anka.

Share this post

Share on facebook
Share on twitter
Share on whatsapp
Share on linkedin
Share on email