The Alpine Linux distribution started as a small project deployed by only a few users. Today, it’s grown to become a mature, modern, and lightweight solution for both bare metal and container-based solutions. It’s one of the most used distributions in the Docker container infrastructure.
Because of the small size and impressive performance of core tools like package manager, the Alpine Linux Working Group, led by Carlo Landmeter, Kevin Daudt, and Natanael Copa, received a growing number of requests for different hardware architectures (archs).
By the time Docker announced Alpine Linux as the “unofficial” default Linux distribution, arch requests had surged even more. The enthusiastic developers got to work to meet growing demand. The team initially only had the resources to support x86 and x86_64 (amd64), but it now offers ARM architectures (32 bit and 64 bit) with ppc64le, s390x, and mips64 on the menu as well.
This growth left the Alpine Linux team with more than it could easily manage. “In the last couple of years, we noticed it was becoming more difficult to maintain our systems properly,” said Carlo. “Most of these architectures need their own machines, and it’s sometimes difficult to provide our developers access to all of them. Some of these architectures are also not common or very difficult to get access to.”
After realizing that the current setup wouldn’t be sustainable, the team decided it needed to make some changes. It switched development platforms and migrated to a self-hosted GitLab instance, which made it easier to implement CI for eight architectures and use one tool for the DevOps cycle. Alpine Linux’s bare metal sponsors assisted in dedicating CI servers for each architecture, which made a huge difference in code quality and build issues.
Alpine Linux then turned to Linode to host its new infrastructure ideas, as it’s one of the few hosting providers that conveniently provides Alpine Linux as an operating system. Using Linode allows Alpine Linux to make progress while still staying true to its four basic infrastructure principles:
- Eat your own dog food (meaning that their containerized Alpine based GitLab is completely running on Linode infrastructure).
- Prevent vendor lock-in.
- Be as independent as possible.
- Be as transparent as possible.
“One of Linode’s valuable features is its backup service, which helps us to easily generate backups and restore them to a temporary instance and execute our GitLab upgrade tests on. This makes sure that our upgrades are thoroughly tested, which greatly reduces downtime.” said Carlo.
Looking forward, Alpine Linux has more ideas for how it can use Linode to support infrastructure principles—the first one being infrastructure as code. After studying Linode’s API, Alpine Linux has crafted a vision for a fully-automated process that will implement a GitLab workflow and use CI/CD to push the infrastructure to containers on Linode. This process will give Alpine Linux’s developers access to a much more transparent overview of the current infrastructure, and will also make it much easier for community contributions.
Having Linode’s support and hosting capabilities are opening new doors for Alpine Linux while allowing them to stay committed to their core principles. As Carlo puts it, it’s “a perfect match.”