How a Lightweight Linux Distro Meets Heavyweight Build Challenges With Equinix Metal
How does a tiny open source project with no budget or employees manage to build software that powers something like half the world's containerized applications?
Carlo Landmeter, a long-time contributor to Alpine Linux, can answer that question. Having played a leading role in Alpine since its early days–before the rise of Docker brought fame to the Linux distribution–he knows a thing or two about steering a massively popular open source project with little in the way of resources.
Alpine Linux is widely used as the basis for creating Docker container images. Weighing in at under 5 megabytes, it’s a great solution for developers looking for a lightweight Linux distribution to help power containerized apps. Landmeter estimates that around half of the container images in existence today were built with Alpine.
He fell in love with Alpine long before Docker came along in 2013. He first encountered it about fifteen years ago while looking for a high-efficiency OS he could run in memory on the routers he helped manage at GIGABYTE, where he works in pre-sales and field application engineering.
Alpine Linux proved to work well for that use case, so well that he decided to start contributing to the project to help its small developer team enhance it. "I liked it so much that I wanted to improve it," Landmeter says.
Tiny Project, Huge Profile
Today, about a decade since Docker rose to prominence, that small developer team sticks to the project’s roots. Alpine Linux is still largely developed by volunteer contributors and remains "very much non-commercial," Landmeter says. There are no plans to monetize the OS or raise money, because "when you get into financial stuff as an open source project, everything gets really complicated fast," he explains.
That doesn't mean there’s no cost to the project. Although most of its developers contribute for free, building and delivering software that’s deployed on millions of servers across the globe requires infrastructure, and infrastructure costs real money.
Equinix's Open Source Partner Program (OSPP) helps out here. Alpine was one of the first projects to join the program when it launched in 2017, and its developers have come to rely extensively on Equinix Metal servers, which they can use free of charge to help power their GitLab-based build pipelines and deliver software to end users.
Having access to bare metal servers is particularly important for the team, because they need to build software for multiple architectures, including 32-bit and 64-bit versions of both x86 and ARM CPUs. With Metal, Alpine can run its builds directly on bare metal and finish them faster than would be possible on virtual machines. "We need tons of compute power to build our stuff, and no virtualized provider would give it to us," Landmeter explains.
In addition, the ability to test Alpine Linux on the same server architectures users will deploy it on in production helps provide a degree of quality assurance that would be impossible to achieve when testing on VMs. "For CPU-intensive workloads and testing, nothing beats bare metal," Landmeter says.
He adds that Equinix's ability to provide bare metal hosting locations spread across the world is also a benefit, because it helps Alpine mirror its software for users spread across different continents.
"Equinix and the OSSP have been a lifesaver," Landmeter says. "There is virtually no other provider who could give us all the features we get from Metal."
Equinix itself benefits from the work the team behind Alpine Linux is doing on its infrastructure. Equinix uses Alpine Linux extensively, running it in memory to provision servers. So, Alpine helps power the servers that the Alpine team uses to build Alpine. How's that for an infinite loop?
Keep On Trucking
Much has changed in the open source world since Alpine launched, but Landmeter says there are no plans to make any big changes to the project anytime soon. Because "we have no targets to reach, no marketing or financial goals to answer to," he says, Alpine developers are free to continue doing what they're already doing well: providing a lightweight Linux distribution suited to a variety of use cases.
They do toss around ideas for improving Alpine's build infrastructure, as well as optimizing its package management system, so that software can be installed even faster. But, as a project run mostly by volunteers who have day jobs, it isn't in a position to make rapid changes.
So, the next time you spin up a Docker container, think of Alpine and the humble team behind it. There's a good chance that their work helps make your work possible.