採用情報 お問い合わせ

BLOG

Linux の知識・学習 BLOG

Linux の知識・学習 BLOG

2025 年 12 月 24 日

KernelCI - 2025 年 Q3 の更新情報

この記事でわかること

  • Linuxカーネルの品質を支えるKernelCIの最新アップデートと、その背景にあるインフラ・運用・ツールの進化をまとめています。

皆さん、こんにちは!

橘有栖(タチバナアリス)と申します。
現在 Gentoo カーネルチームのリーダーを務め、KernelCI kci-dev の開発者であり、KernelCI Infra WG のメンバーです。

本記事では Kernel CI プロジェクトのアップデートについて日本語で紹介します。また、本記事は、私橘有栖も執筆に携わったKernelCI - 2025.Q3 updatesを元に作成しています。

Kernel CI については以下のブログでも紹介しているので、あわせてご覧ください。

Kernel CI 2025年Q3の更新情報

KernelCI コミュニティは、プロジェクトの複数の側面で引き続き大きな進歩を遂げています。KernelCI Blog での前回の更新以降( 英語 )、対面イベントを 2 回開催し、いくつかの技術的成果を達成し、新しいワーキンググループを立ち上げました。詳細な更新は以下のセクションをご覧ください。

Automated Testing Summit の動画

KernelCI は、米国コロラド州デンバーで Automated Testing Summit(ATS) 2025 を主催しました。これは Open Source Summit North America と併催されています。イベントは素晴らしく、多くの興味深い議論がありました。

すべてのセッションは録画されており、動画 ( 英語 ) が視聴可能です :

アムステルダムでの KernelCI ワークショップ

8 月最終週に、久しぶりに KernelCI ワークショップを開催しました。対面で 12 名が参加し、オンラインからの参加者も数名いました。このワークショップは、コミュニティとともに新しい KernelCI アーキテクチャに関する重要な議論を始動するのに非常に有意義でした。

ワークショップでは、メンテナのユースケースへの対応、KernelCI ラボの課題への対処、データ品質とリグレッション特定の改善、KCIDB 移行、RISC-V 対応などについて議論しました。ノート(英語)と全編録画(英語)をご覧ください。

KernelCI ワークショップのメンバー

レガシー KCIDB からの移行

ついにレガシー KCIDB からの移行を完了しました。これは新しい KernelCI アーキテクチャにとって非常に重要なステップでした。KCIDB は結果の共通データベースであり、一方ではテスト結果を受け取る API があり、もう一方では PostgreSQL データベースです。送信 API は KCIDB-ng に置き換えられましたが、結果送信の JSON スキーマに変更はありません。送信者は同じファイルを引き続き送っていますが、別の API エンドポイントに送るようになりました。KCIDB-ng は JSON 結果ファイルを受け取り保存する高速な Rust ベースの API です。

私たちは KCIDB プロジェクトを、必要に応じてオンプレミスにもデプロイ可能な、より汎用的でクラウド非依存のソリューションへと更新しています。この柔軟性により、KCIDB をシームレスに Azure へ移行できました。さらに、KCIDB の一部を Rust で書き直し、長年のパフォーマンスにおけるボトルネックを解消しました。

他のすべての責務はダッシュボードに引き継がれ、JSON ファイルのデータを処理して PostgreSQL データベースに取り込む役割を担っています。データベースのスキーマはレガシーと同じままです。

コアインフラストラクチャ

新しいインフラにより、適切な DevOps プラクティスを実装して大幅な複雑さの削減が可能になりました。Q3 を通して、デプロイメントシステムを改善しました。 日々の運用において、これは最小限の監視と最小限のダウンタイムで本番更新ができることを意味します。以前は数時間かかっていたものが、今では 1 分未満です。また、データコストをより細やかに制御するために、VM 上に「ホット」キャッシュを維持し、長期データはライフサイクルポリシーとより経済的なストレージクラスを備えたオブジェクトストレージに保管する独自のストレージソリューションも開発しました。

さらに、ユーザーに影響が及ぶ前に問題を積極的に防ぐため、監視とアラートの強化にも取り組みました。これには、よりきめ細かなメトリクスの実装や、重要なパフォーマンス指標に対するアラートの確立が含まれます。

これらのインフラ改善により、全体として、より効果的にスケールし、運用コストを削減し、信頼性を高めることができました。今後も、増大する需要を支え、拡大するユーザーベースのニーズに応えられるよう、インフラへの投資を継続していきます。

新ラボワーキンググループ

KernelCI ワークショップの素晴らしい成果として、テストラボを KernelCI に接続する際の課題を議論するLabs Working Group(WG)を設立しました。

Labs WG はすでに活発で、隔週の同期には 10 人以上が参加しています。現在の焦点は、ラボが KernelCI からテスト情報をプルできるように Maestro API を改善すること、Labgrid のサポートを追加すること、ラボのメトリクス向けのダッシュボードを評価することです。

チームは、ラボが KernelCI に接続することを妨げるいくつかの重要な課題を特定しました。主な障害は、多くのラボが厳格なセキュリティポリシーのため、API をパブリックインターネットに公開できないことです。この制限に対処するため、従来のワークフローを反転させ、KernelCI がジョブを直接プッシュするのではなく、ラボ側が KernelCI からテストジョブをプルできるようにするプルモードのアーキテクチャを提案しました。このアプローチにより、ラボは既存のセキュリティポリシーを維持しながら、KernelCI のテストに積極的に参加できます。現在、このプルモードアーキテクチャをサポートするためのプロトコルと実装を開発中です。

ダッシュボードワーキンググループ

Labs WG に触発され、KernelCI Dashboard Working Group (first invite) を立ち上げ、ユーザーと ProFUSION の開発チームを集めて、バグと機能の優先順位付けについて話し合いました。

2 回のミーティングでは 8 名が参加し、ユーザー体験に影響していたウェブサイトのパフォーマンスを改善するための行動計画を定義し、喜びをもたらさなかった機能の開発を停止し、次のチームのターゲットを「ラボからのハードウェアデータの取り扱い」に定めました。これは、そのデータがユーザーによってどのように使われうるかについて、さらなる議論が必要となります。

kci-dev のブラッシュアップ

kci-dev は、小さなコマンドラインツールから、Linux ディストリビューションが出荷できるよくパッケージ化されたツール群へと進化しています。KernelCI の結果を分析し、エンジニアが迅速に問題をトリアージするのを支援します。

過去四半期に、このプロジェクトには多くの改良がありました。

  • Debian/RPM パッケージングと OBS のワークフロー / サービス自動化を追加し、ラボが自動的にビルドと公開を行えるようにし、すべてのクライアントが同一で再現可能なツールチェーンを得られるようにしました。
  • コミット間のリグレッション検出のための結果比較コマンドを追加しました(表+JSON 出力にも対応)。
  • 結果の issues グループを統合し、課題の一覧 / 表示や関連するビルド / テストの取得を可能にしました。
  • tree-report によってツリー単位のビューを改善しました。
  • 新しい maestro のカバレッジフロー(現在は chromiumos のツリーのみ)を通じてコードカバレッジ情報を追加し、日ごとのバケット、グラフビュー、report-info ヘルパーを備え、安定性 / カバレッジのトレンドがはるかに明確になりました。
  • 検証ツールのフィルタを改善しました(arch フィルタ、より良いビルド選択、検証時にビルド / ジョブのリトライを考慮)。検証コマンドにより、Maestro が実行しているテストが KCIDB に正しく着地しているかを比較できます。
  • 結果サマリーに -history を追加しました。
  • 結果のハードウェアリストを修正し、さらに多くのフィルタを追加しました。

ハードウェア情報登録簿

さまざまな KernelCI のフォーラムで議論された課題の一つは、異なるテストラボから報告されるハードウェアプラットフォーム名に一貫性がなく、結果の検索 / 並べ替え / フィルタリングが難しくなることでした。これに対処するため、Minas Hambardzumyan により新しい YAML ベースのスキーマが提案され、現在レビュー中です。このスキーマは、プラットフォーム、プロセッサ、ベンダーのリストに情報を整理し、報告されるプラットフォーム名の標準化への道筋を提供するとともに、より詳しい情報のために製品 / ベンダーのウェブページへのトレーサビリティを追加します。

最終的な所感

コミュニティがより多くの利益を得られるよう、KernelCI を使いやすくする取り組みを続けていきます。安定性の向上から、改善された Web ダッシュボード、より充実した kci-dev CLI まで、KernelCI には皆のために強化すべき点がまだ多くあります。この進歩を可能にしてくれた KernelCI コミュニティの皆さんに大きな感謝を!kernelci@lists.linux.dev、Libera.chat の #kernelci IRC チャンネル、または私たちのDiscord サーバーで話しましょう!

本記事(KernelCI)の投稿は Arisu Tachibana、Denys Fedoryshchenko、Gustavo Padovan、Minas Hambardzumyan、Tales Aparecida が寄稿しました。

本記事に関連するリンク
この記事の著者プロフィール
 著者イラスト
橘 有栖 (Tachibana Arisu)

オタクに理解のあるギャル(Linux エコシステムで活動するオープンソース低レイヤーエンジニア)です。2014 から Gentoo 開発者、2017 年より Gentoo カーネルプロジェクトリーダー、2018〜2021 年は Gentoo GSoC 管理者。GKernelCI と kci-dev の作者、KernelCI infra WG メンバー、KernelCI core tools 副責任者。

X:https://x.com/arisu_gyarublog:https://aliceinwire.github.io/

AlamLinux OS サポートサービス ご相談・お問い合わせ
CentOS 7 延長サポートサービス
デジタルトランスフォーメーションのための電子認証基盤 iTrust
iTrust SSL/TLS サーバー証明書