メインコンテンツにスキップ

Alpine Linux

コーディングの技

Alpine Linuxが価値を犠牲にせずに拡大した方法


Alpine Linuxディストリビューションは、数人のユーザによる小さなプロジェクトから始まりました。今日では、ベアメタルとコンテナベースのソリューションの両方に対応する、成熟したモダンで軽量なソリューションに成長しました。Dockerコンテナインフラで最も利用されているディストリビューションの1つです。

パッケージマネージャのようなコアツールのサイズが小さく、印象的な性能を持つことから、Carlo Landmeter氏, Kevin Daudt氏, Natanael Copa氏を中心とした Alipne Linuxワーキンググループでは、異なるハードウェアアーキテクチャ(アーキ)へのリクエストが増えていました。

Dockerが「非公式な」デフォルトLinuxディストリビューションとしてAlpine Linuxを発表した頃には、アーカイブへのリクエストはさらに急増していました。熱心な開発者たちは、需要の増加に対応するために作業を開始しました。チームは当初、x86とx86_64 (amd64)しかサポートしていませんでしたが、現在ではARMアーキテクチャ(32ビットと64ビット)を提供しており、先々にはppc64le、s390x、mips64も予定されています。


このような成長に伴い、Alpine Linuxチームは、簡単には管理できないほど多くの仕事を抱えるようになりました。"ここ数年、システムを適切に保守することが難しくなってきていることに気が付きました。これらのアーキテクチャのほとんどは専用のマシンを必要としており、開発者がすべてのマシンにアクセスできるようにするのは困難な場合があります。また、これらのアーキテクチャの中には、一般的ではないものやアクセスを得るのが非常に難しいものもあります。"と Carlo 氏が言います。

現在のセットアップでは持続可能性がないことに気づいたチームは、いくつかの変更が必要だと判断しました。開発プラットフォームを切り替え、セルフホスティング型のGitLabインスタンスに移行したことで、8つのアーキテクチャへのCIの実装が容易になり、1つのツールでDevOpsサイクルを回すことが可能になりました。Alpine Linuxのベアメタルのスポンサーは、各アーキテクチャのCIサーバを提供することで、コードの品質とビルドの問題に大きな違いをもたらしました。

Alpine Linuxは、Alpine LinuxをOSとして提供している数少ない ホスティングプロバイダーでである Linode に目を向けました。Linode を使うことにより、Alpine Linuxは4つの基本インフラ 原則を守りながら、進化を遂げていくことができています。

  1. 自分のドッグフードを食べる(彼らのコンテナ化されたアルパインベースのGitLabが完全に Linode インフラ上で稼働していることを意味)。
  2. ベンダーのロックインを防ぐ。
  3. できるだけ独立していること。
  4. できるだけ透明性を保つ。
フェデリコ・ニエベス

"Linode の貴重な機能であるバックアップサービスのおかげで、簡単にバックアップを作成して一時的なインスタンスにリストアし、GitLab のアップグレードテストを実行することができるようになりました。これにより、アップグレードが徹底的にテストされていることを確認でき、ダウンタイムを大幅に減らすことができます。" とCarlo 氏は言います。

Alpine Linux では今後もインフラのプリンシプルをサポートするための Linode 活用アイデアを持っています - その筆頭は Infrastructure as codeです。Alpine Linuxでは、Linode APIを研究した後、GitLabワークフローを実装し、CI/CDを使用して .NET上Linodeのコンテナインフラ にプッシュする完全自動化プロセスのビジョンを作成しました。このプロセスにより、Alpine Linuxの開発者は、現在のインフラ状況をより透過的に把握することができ、コミュニティへの貢献がより容易になります。

Linodeのサポートとホスティング機能を使うことで、Alpine Linuxには新たな扉が開かれると同時に、Alpine Linuxのコアとなる理念を守り続けることができるようになりました。Carlo 氏は、"完璧なペアだ。"と言います。

これをシェア