We decided to use Apple M1 Mac minis powered by silicon chips and Anka v3 to provide the greatest performance experience to our users. Learn more Attempt #1: Veertu Anka for macOS virtualization on Apple silicon Since we couldn’t use ESXi for M1s, we had to come up with some other solution that relied on Apple’s Virtualization framework. ![]() Since we’ve tried building apps on Apple silicon M1 processors and seen their performance and how much they can speed up builds, we wanted to introduce Apple silicon build machines to Codemagic users. This provided an opportunity to use the latest and most powerful Apple computers for virtualization. Starting from macOS 11.0, Apple released a new Virtualization framework that provides high-level APIs for creating and managing virtual machines. The T2 is integral in securely powering up and the boot sequence, and it does not allow other operating systems like ESXi to be used. In 2017, Apple announced a new generation of computers using T2 security chips. Unfortunately, the previous generations of Apple computers are not supported by ESXi, and VMware announced that ESXi 7 will be the final release supporting Apple Mac platforms in general.Īt Codemagic, we historically used ESXi as a bare-metal hypervisor and VMM to manage virtual machines. You need to use other virtualization software like VMware ESXi to provide reasonable performance, hardware acceleration, and support for nested virtualization. As of 2022, there is still no production-ready way to use Docker-like solutions to run macOS inside a container.In addition to providing required service-level agreements, data centers need to have standby machines to quickly replace those that went down. And because of the specific form factors that Apple hardware comes in, not all data centers can allocate it. Due to Apple’s license policy, you can only run macOS on Apple hardware.This is primarily because of the following two problems: While there are many cloud services that provide Linux and Windows instances, working with Apple macOS is still somewhat challenging. In this article, I want to describe our experience of adding new Apple M1 machines and later migrating to new virtualization software with zero downtime, a change that went almost unnoticed by end users. Using VMM allows us to hide underlying implementations such as virtualization software and easily add new hardware to the technology stack we provide to our users. (When you host over 100 different pieces of hardware, you face network issues, power outages, and dying storage drives on an almost daily basis.) Runs sanity checks and controls machine availability.Forces the wiping of machines and restores them to the user pool after the job is completed or if the time limit is exceeded.Acquires/releases virtual machines with required parameters, such as the instance type, operating system, and software version. ![]() VMM is the abstract layer that orchestrates all virtual machines. To address these challenges, we have implemented a dedicated service that we have named Virtual Machine Manager (or VMM for short). This requires a unified approach to managing virtual machines running macOS, Linux, or Windows and working with different virtualization technologies. How we use our own Virtual Machine Manager for CI/CDĪs a CI/CD service, we create and manipulate hundreds of virtual machines every minute to provide a secure and standardized environment to execute users’ tasks. Here, we’ll explain what it takes to operate a CI/CD service and the technical challenges our dev team had to overcome to make it possible for us to provide our services at lower prices. How is it possible for us to provide Apple M1 VMs to everybody, including those on a Free plan, and lower the prices at the same time?Ĭodemagic’s CTO Mikhail Tokarev took some time to share the details, including the technical aspects behind our recent changes. Codemagic has recently decreased its prices thanks to Apple M1 machines.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |