Mitigate DevOps Tool Sprawl With Containers and Nested Virtualization
Learn about how containerizing portions of parallel CI/CD pipelines can help you reduce tool sprawl and your DevOps tool footprint.
Modern applications are generally developed across multiple platforms, and as such, they require multiple CI/CD pipelines to accommodate the specific build environment requirements for each targeted platform. For example, macOS and iOS applications need to be built and tested on Macs, which may not natively support the same toolchains used on other platforms.
The resulting overlap of tooling functionality across pipelines is one of the core drivers of tool sprawl in the DevOps world – that is, the accumulation of tools that each require specific expertise to use, and that carry the potential to dramatically increase the output from CI/CD processes that teams need to track across their various pipelines.
Tool sprawl can quickly lead to “tribal knowledge” in which only a small subset of the larger team is familiar with a given tool, how it is used and why it has been deemed necessary. Moreover, each tool added to a set of parallel pipelines increases the underlying cost to the team – either in dollars spent on a given tool or on the training required to use it well.
Containers to Reuse Existing Workflows
Containerizing parallel portions of your CI/CD workflows with Docker may provide a means to reduce the accumulation of parallel tooling across pipelines. Because Docker containers allow teams to standardize environments across multiple operating systems, they can be a great solution to the problem of parallel workflows that would otherwise require unique tooling for each platform being targeted.
In particular, macOS and iOS CI/CD pipelines can use containers to reuse existing portions of workflows that have already been created for parallel pipelines targeting different platforms. By taking this approach, DevOps teams can reduce their overall CI/CD tool footprint, and thereby reduce the risk of tribal knowledge surrounding specific tools that cater to a single, targeted platform.
It is worth noting that macOS can support both Linux and Windows VMs to achieve a similar end result, but because containers are a lighter-weight solution, they generally offer a more economical option for teams looking to reuse parallel portions of existing CI/CD workflows.
MacStadium’s Orka Natively Supports Containerized Workflows
Orka, a unique, enterprise-ready Mac virtualization platform built on Kubernetes and Docker, provides certain features of these tools to end-users and offers teams the ability to run containerized portions of their CI/CD workflows natively.
Because Orka environments come standard with a Kubernetes sandbox, teams can run containerized portions of their iOS and macOS workflows alongside their Mac VMs that are executing the actual code compilation and testing stages of the workflow.
Nested Virtualization in Anka or VMware-based Mac VMs
A common solution to this problem for teams that are using Anka or VMware with MacStadium is to use a strategy referred to as nested virtualization. Nested virtualization also allows DevOps teams to employ containerized portions of their workflows, but does so through the inclusion of Docker running directly on the Mac VM.
By installing Docker Desktop for Mac on macOS VMs, DevOps teams that are working with either Anka or VMware environments can reap many of the same benefits described above.
As modern applications are generally developed across multiple platforms, and therefore require parallel CI/CD pipelines for each platform being targeted, there is a high likelihood that different tools that perform the same task will be required for each pipeline if the tools are to run directly on the targeted operating system. Conversely, containerizing portions of your CI/CD workflows may provide a means to use the same tools across operating systems, and thereby reduce your overall CI/CD tool footprint.
Ready to get started?
MacStadium currently offers the widest variety of solutions for teams targeting iOS or macOS, ranging from truly diverse hardware configurations to three distinct Mac virtualization options – Orka, VMware, and Anka.
If you have any questions about MacStadium’s virtualization options, our team of experts is here to answer any questions. Also, if you’re curious about Orka, you can give it a try with a free two-hour Orka demo environment.