CIPテストチームは上記のような開発や保守を支えるため、LAVA(Linaro Automated Validation Architecture)やKernelCIを使ってテストの自動化を進めています(図8)。特に、10年にわたる長期のサポート期間の間、非常に多くのマイナーリリースが予定されていますので、テスト自動化による工数削減効果は絶大になります。
CIPでは現状以下をレファレンスプラットフォームとしてオープンソースベースレイヤーの開発・保守を進めています。
これらのボードや機器はCIPメンバー企業が自社ラボや共用ラボに用意し、インターネットで接続します。テスト環境に組み込まれたボードや機器に対して、LAVAからテストのトリガーをかけ、その結果をWeb表示します(図9)。テストは、LTP(Linux Test Project)、kselftest、Linaroテストなどを使っています。このように、物理的には分散したボードや機器は、論理的には単一のテスト環境として扱われ、テストの実行や結果を一元管理することで効率化を図っています。
チームは、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への対応や、ソフトウェア更新を中心とする取り組みと併せてご紹介したいと思います。
Deby:https://elinux.org/images/9/96/ELCE2016_Hayashi_Deby.pdf
ISAR:http://events17.linuxfoundation.org/sites/events/files/slides/ELC-2017-isar.pdf
LAVA:https://www.lavasoftware.org/
KernelCI:https://kernelci.org/
Gitlab custom cloud CI:https://gitlab.com/cip-project/cip-testing/gitlab-cloud-ci/blob/master/README.md
工藤 雅司(くどう まさし)
国内電機メーカーで20年以上にわたりUNIXサーバOSや組み込みOSの開発、ネットワーク製品開発を主導するとともに、OSS活動にも携わる。現在は、サイバートラストに勤務し、Linuxを中心とした組み込みソフトウェア技術活動に従事。CIPへはサイバートラスト代表として参画し活動中。
Copyright © ITmedia, Inc. All Rights Reserved.