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. Versions and other details will become out of date. It’s best to reach out to [email protected] for the latest information.
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 their applications.
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. This hardware has either seriously constrained capacity, out of date OS versions/software, or is limited in what you can install. 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.
The Anka Virtualization package aims to provide the software necessary 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 package 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 that’s then 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: VMs run on any 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: You have full access to and control over the 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. There is no VM suspension feature available.
Can the creation of the VM images and snapshots be scripted?
- ANKA: Yes, you can see our example of this using bash or use our packer builder.
- ORKA: A CLI is available to generate commit images. However, macOS installation does not seem to be automatable. There is also no packer builder.
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).
- 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 several ways, but your organization’s needs might make it a quick and easy decision. We find that performance, security, and flexibility are the most critical factors for customers that choose Anka.