CIPではどのようにして長期サポートを実現するのかいまさら聞けないCIP入門(中編)(4/4 ページ)

» 2019年09月24日 10時00分 公開
前のページへ 1|2|3|4       

4.テスト自動化

 CIPテストチームは上記のような開発や保守を支えるため、LAVA(Linaro Automated Validation Architecture)やKernelCIを使ってテストの自動化を進めています(図8)。特に、10年にわたる長期のサポート期間の間、非常に多くのマイナーリリースが予定されていますので、テスト自動化による工数削減効果は絶大になります。

図8 図8 CIPテストチーム(クリックで拡大) 出典:Open Source Summit Europe 2018での小林良岳氏、Urs Gleim氏講演「Two Years Experience of Industrial-grade Open Source Base Layer Development and its Future」に基づき作成

 CIPでは現状以下をレファレンスプラットフォームとしてオープンソースベースレイヤーの開発・保守を進めています。

  • AM335x Beaglebone Black(Armv7)
  • QEMU x86_64
  • RZ/G1M iWave Qseven Development Kit(Armv7)
  • RZ/G2M HopeRun HiHope(Armv8)
  • SIMATIC IPC227E(x86-64)
  • OpenBlocks IoT VX2(x86-64)

 これらのボードや機器はCIPメンバー企業が自社ラボや共用ラボに用意し、インターネットで接続します。テスト環境に組み込まれたボードや機器に対して、LAVAからテストのトリガーをかけ、その結果をWeb表示します(図9)。テストは、LTP(Linux Test Project)、kselftest、Linaroテストなどを使っています。このように、物理的には分散したボードや機器は、論理的には単一のテスト環境として扱われ、テストの実行や結果を一元管理することで効率化を図っています。

図9 図9 LAVAテスト結果 出典:LAVA Results overview

 チームは、Gitlab用のコンテナベースのCI(Continuous Integration:継続的インテグレーション)インフラストラクチャの作成にも取り組んでいます。その目的は、量的および動的なスケーリングを実現することです。CIインフラストラクチャにより、任意の数のCIジョブを並行して実行し、現在のワークロード状況に基づいてスケールアップあるいはスケールダウンできます。

 CIインフラストラクチャは、「3.CIPコアパッケージ開発・保守」で説明したISARとDebyの両方をサポートすることで、これらのディストリビューションに対するCI環境を効率的に提供しています。ISARはCIPコアを構築するために特権コンテナで実行する必要がありますが、デフォルトのGitlab Runnerはこの機能を提供しておらず、ISARの実行ができませんでした。このため、このCIインフラストラクチャによって、CIパイプラインの特権コンテナの実行を可能とし、ISARを実行できるようにしています。

 現在、AWSはインフラストラクチャプロバイダーとして使用されており、KubernetesはCI Runnerによってスケーリング要求に対応します。 Kubernetesの自動スケーリング機能により、数千の同時CIビルドを実行することも可能です。



 以上、述べて参りましたように、長期サポートと一口に言っても、さまざまなプロジェクトと連携しながら、多面的な活動を行っていることがお分かりいただけたのではないでしょうか。

 次回の後編(最終回)では、課題「セキュリティ」への取り組みについて、IEC 62443への対応や、ソフトウェア更新を中心とする取り組みと併せてご紹介したいと思います。

筆者プロフィール

photo

工藤 雅司(くどう まさし)

国内電機メーカーで20年以上にわたりUNIXサーバOSや組み込みOSの開発、ネットワーク製品開発を主導するとともに、OSS活動にも携わる。現在は、サイバートラストに勤務し、Linuxを中心とした組み込みソフトウェア技術活動に従事。CIPへはサイバートラスト代表として参画し活動中。

サイバートラスト
https://www.cybertrust.co.jp/

前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.