検索
ニュース

「Azure Linux」は「CentOS 7」の移行先になり得るか LinkedInの選択「安定した予測可能な環境」を提供するための工夫とは

LinkedInは、同社のサービスで利用するOSを「CentOS 7」から「Azure Linux」に移行したと発表した。パイロットプログラムを通じて安定性を確保し、セキュリティや自動化ツールの整備を進めることで「スムーズな移行を実現した」としている。

Share
Tweet
LINE
Hatena

 LinkedInは2024年8月19日(米国時間)、同社のサービスで利用していたOSを「CentOS 7」から「Azure Linux」に移行したと発表した。Azure LinuxはMicrosoftが開発したオープンソースのLinuxディストリビューションのことで、「Azure Kubernetes Service」でコンテナワークロードを実行するために最適化されている。

画像
移行のナビゲート:LinkedInのオペレーティングシステムとしてAzure Linuxを採用(提供:LinkedIn)

 同社は移行した際の目標、課題、移行効果、移行のプロセスなどを解説するブログエントリを公開した。以下のように説明している。

解決すべき課題

 ブログによると、LinkedInがOS移行を考えたきっかけはCentOS 7のサポート終了だ。新しいOSを検討した際に、幾つかの条件があることが分かった。

 例えば新しいOSは、これまで使用していたCentOS 7のように、LinkedInプラットフォーム全体で同じLinuxディストリビューションに統一する必要がある。同じOSであれば“安定した予測可能な環境”を提供できるからだ。また、それとともに従来のOSで発生していた課題を解決できなければならない。その課題とは以下のような技術的なものだ。

ユーザースペースが古い

 CentOS 7のユーザースペースは時代遅れのものになっており、刷新する必要があった。最新のアプリケーションでは、最新のシステムライブラリや「systemd機能」、パッケージ管理、特定のワークロードに対する高いパフォーマンスが求められていることが多いためだ。

ブートストラップ時間が長い

 従来のOSでは、大規模なOSイメージをブートストラップ(OSを完全に読み込み、実行可能な状態にするための初期段階)するときに長い時間がかかっていた。また、多くのデフォルトパッケージを繰り返しインストールするため、ネットワークインフラにも負荷がかかっていた。

 同社のブログによると、Azure Linuxを採用したことで「ベアメタルサーバやコンテナでのOSの構築とブートストラップに対して、全く異なるアプローチを実装する機会が生まれた」という。このプロジェクトの一環としてLinkedInは、主要コンポーネントのほとんどを含む形で事前にOSイメージを構築。ホスト固有の構成は、OSイメージ適用後に構成管理ツールによって集約することにした。これによって、ブートストラップ時間は従来の1時間以上から、10〜30分に短縮されたという。

セキュリティアップデートを素早く実施できない

 LinkedInの社内ポリシーに基づくコンプライアンス要件では、30日以内の頻度でセキュリティアップデートをOSイメージに適用することが求められている。この要件は、OSアップデートの取り込み、検証、リリース、展開のプロセスに対して、非常に厳しい時間的制約を設けている。

 この課題に対応するため、LinkedInは「OSアップグレード自動化プロジェクト」を実施した。同プロジェクトは、物理サーバのプロビジョニングを自動化する「MaaS」(Metal-as-a-Service)という自社開発ツールを活用し、OSアップデートを自動化するものだ。これによって組織全体でOSのアップグレードプロセスを効率的に管理し、実行できるようになったという。

最新機能を活用できない

 CentOS 7のサポート終了が迫るとともに、多くのベンダーがサポートを終了した。最新のOSに移行しなければ、クラウドネイティブアプリケーションやコンテナ化、最新ディストリビューションが標準で提供する特定の機能要件など、組織のさまざまなニーズに対応できない状態になっていた。

ベンダーサポートがない

 CentOS Projectは、CentOS 7の次バージョン「CentOS 8」について、2029年5月31日までのアップデートを予定していたが、2021年12月31日に終了すると発表した(参考)。代替とされた「CentOS Stream」については、「Red Hat Enterprise Linux」のアップストリームであることからアップデートのタイムラインや安定性に不確実性を感じたユーザーもいた。この不確実性によって、CentOSのOSとしての信頼性やサポートに対する懸念が生じたため、LinkedInはCentOSとは別のディストリビューションを検討し始めたという。

ファームウェアアップデートができない

 ハードウェアの中には、最適なパフォーマンスを得るためにファームウェアアップデートを要求するものがある。従来のCentOS 7ではそれが難しかったため、ファームウェアアップデートを活用できる最新のOSが必要だったとLinkedInは述べている。同社は「Azure Linuxの採用によって、より新しく、効率的なインフラにできた」としている。

移行計画

 移行を成功させるためには、関係するチーム間の連携が重要になる。LinkedInはチーム間の“共通の要件”を特定し、パートナー組織が実施する作業の調整に時間をかけた。これによって、各チームがLinuxをどのように使用しているかについて多様な視点を得ることができ、移行に対する責任感とコミットメントが強まり、組織の目標が一致し、コミュニケーションチャネルが確立されるなど、多くのメリットが得られたという。

実装

 LinkedInは「パイロットプログラムから実装プロセスを始めることで、Azure Linuxの安定性を確立するのに役立った」と述べている。下図フェーズ1では、パッケージリポジトリの複製やハードウェアの自動プロビジョニングシステムを準備した。ホスト初期化に必要なパッケージと設定を特定し、多くの設定を「FireBirdイメージ」のビルドやイメージ適用後の構成管理ブートストラッププロセスに移行した(下図フェーズ2)。

 下図フェーズ3でツールチームは、アプリケーション用のAzure Linuxバリアントビルドを支援し、セキュリティチームはホスト初期化に必要なツールを更新した。この共同作業によって、LinkedInのインフラ全体で新しいOSをサポートするために必要なツールやセキュリティ対策が「確実に整備された」という。

 下図フェーズ4でCI/CD(継続的インテグレーション/継続的デリバリー)のOSテストチームは、Azure Linuxをテスト、検証し、一般提供(下図フェーズ5)につながる重要な役割を果たした。 最終段階(下図フェーズ6)として、各チームがサーバの大規模な再イメージ化をすることで移行プロセスは完了となる。各フェーズでどのような作業をしているかは下図で説明されている。

画像
Azure Linuxへの移行フェーズ(提供:Microsoft)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る