When One Size Doesn’t Fit All: Homebrew on Orka
Homebrew is a free and open-source software package manager that simplifies the installation of software on Apple’s macOS operating system and Linux. Homebrew is widely used in the Mac developer community with over 8,000 community contributors.
Orka: Orchestration with Kubernetes on Apple
Orka is a new virtualization layer for orchestrating macOS in a cloud environment using Kubernetes on genuine Apple hardware. With Orka and MacStadium, managing Mac cloud infrastructure is just as easy and powerful as using AWS, Azure, or GCP. Orka brings the simplicity and scalability of large cloud providers to developers building for Apple devices.
Homebrew has a long relationship with MacStadium. Before the move to Orka, Homebrew ran VMs manually with ESXi and VMware Linked Clones. Every year, as Homebrew grew, more build time was needed to build and test packages. A single image rebuild, some testing jobs, or a pull request could take over 24 hours of build time at near 100% CPU utilization.
“When someone submits a pull request to a package, we build that in CI (continuous integration) and make sure their modifications work. But then, where it gets fun, is we need to not only build that package, but we may need to test against everything that depends on that package,” said Mike McQuaid, Homebrew project leader. “So, that might be one or two packages, or for something like OpenSSL, that’s over a thousand. In a case like that, we need to build a new version of OpenSSL and then download over a thousand other packages, test them and build them.”
“We need Homebrew to be fun enough for our volunteers to want to work on it.”
Homebrew evaluated services like GitHub Actions runners but determined they were not configurable enough and did not provide the capacity needed for their use case. When it came to CI and testing, Homebrew needed something easy that wouldn’t clog up the process. “Because we’re entirely volunteer-run, no one gets paid a dollar for working on Homebrew,” said McQuaid. “We need Homebrew to be fun enough for our maintainers to want to do that.” Homebrew’s volunteers come from all walks of life, not just engineers but also students and academics, all passionate about this open-source project and making an impact.
Orka: Resource flexibility made easy
Concerned that CI-as-a-service tools would not be customizable or scalable enough to meet their growing demands, the Homebrew team was excited to try MacStadium’s new virtualization platform, Orka. Homebrew was an early Orka adopter, participating in the beta program, and now Homebrew is fully deployed with Orka in production. Orka, which stands for Orchestration with Kubernetes on Apple, is the first and only solution for orchestrating macOS in a cloud environment using Kubernetes on genuine Apple hardware.
Orka provides Homebrew with the freedom to create and scale the cloud environment they need without time limits or one-size-fits-all VMs. With Orka, resources can be allocated across nodes to allow for very CPU-intensive builds. That is critical when you have the intensive demand that Homebrew does, downloading code, and building binary packages to support three versions of macOS.
In addition, Orka comes with a RESTful API and simple CLI commands. The Homebrew team likes that the Orka CLI is more developer-friendly and automatable than navigating a cumbersome UI to manage VMs. “Everyone who has to deal with macOS automation would love a Google Cloud or AWS for macOS,” McQuaid said. “I feel like Orka is the closest thing that you can get to that. You’re able to, spin up, spin down VMs using an easy-to-use CLI or API.”