• 開発支援

  • ソフトウェアデザイン

  • 品質改革

OSS管理のベストプラクティス&OSS管理ツールの選び方

2021年9月13日

渡邊 歩

株式会社日立ソリューションズ
ITプラットフォーム事業部 デジタルシフト開発支援本部
グループマネージャ

はじめに

今回は「OSS管理のベストプラクティス」の必須要素である「組織」、「ポリシー」、「(正しい)知識」、「ツール」について書かせていただきます。OSSコンプライアンスって何から始めればいいのか?OSS管理ツールって沢山あるけれど、それぞれどう違うのだろうか?というような疑問をお持ちの方のお役に立てると幸いです。

企業のOSS活用を推進する「組織」について

OSS管理業務は企業のソフトウェア開発プロセス全般に影響を及ぼすものであり、社内のステークホルダーと調整しながら進めていく必要があるため、「誰が」それを主導するのかによって推進力に大きな違いが出てきます。

The Linux FoundationのToDoグループは、企業におけるOSS管理業務を統括する組織としてOSPO(Open Source Program Office)を提唱しています。経営幹部レベルの決定権を持つマネージャやエバンジェリスト、法律の専門家などをメンバーに含むOSPOは、「OSS管理の専門組織」として、OSSポリシーの策定やトレーニング、OSS文化の醸成などのミッションを担います。

OSS管理をこれから始める企業にとっては、業務内容自体が明確に定義されていない状態でOSPOのような完成された組織を最初から構築するのは少々難しいかもしれません。組織、と言うととても専門的で大規模なものを想像するかもしれませんが、少人数だったり他の業務との兼務だったりと、その実態は企業によってさまざまです。

私がこれまで多くのお客様のOSS管理組織の設立をご支援してきた中で、その成り立ちを大きく分類すると下図のようになります。ご自身の会社のしくみや雰囲気を考慮し、取り入れやすいモデルを参考にしていただくと良いと思います。どのモデルにもそれぞれメリット・デメリットがありますので、それらの特徴を意識しながら推進していくことが重要です。

図1.OSS管理組織モデルと各モデルの特徴

図1.OSS管理組織モデルと各モデルの特徴

成功するOSS管理組織の共通点をあげるとすると、必要であれば会社の規則を変えたり製品の出荷を止めたりできるような「権限」があることと、企業・組織としてコンプライアンスを推進するのだと言う「使命感」があることでしょうか。また、ルール主導にならないよう、開発チームと密に連携して無理のないプロセスを構築していくことも、成功の秘訣です。

【ホワイトペーパー】ソニー、トヨタ、日立も重視、OSS管理の国際標準に対応せよ

【OSS管理】自動車業界も大注目、オープンソースソフトウェアの管理はどうすればいいのか解説

企業のOSS活用の指針となる「ポリシー」について

OSS管理って何から始めれば良いのでしょうか?という質問をいただくことがありますが、私はまず「OSSポリシーを作りましょう」と提案します。OSSポリシーとは、企業がOSSとどのように関わっていくかという指針を定めたもので、さまざまなシーンで行う判断の拠り所になります。OSSポリシーにも色々な形式、粒度がありますが、私が一般的におすすめしているのは下記の構成です。

図2. OSSポリシーの例

図2. OSSポリシーの例

作成したポリシーは、定めた内容を詳細化し、タスクの粒度に落とし込んだ「ガイドライン」や、組織のメンバーに理解・浸透させるための「教育資料」の形に転用することもできます。特に、ソフトウェア開発に携わるすべての方が統一的な正しい知識を持っていることは、企業のコンプライアンスの基礎となる重要な要素ですので、教育は定期的にしっかり実施するようにしてください。

OSS管理業務を効率化する「ツール」について

ここでは、ソースコードを解析し、内包するOSSを可視化して一元管理するツールのことを「OSS管理ツール」と呼びます。ひとつの製品・サービスで使用されるOSSの数が増え、構造が複雑化している昨今、手動で一つひとつのOSSを正確に把握することはほぼ不可能ですので、ツールを活用して業務を効率化したいという方も多いのではないでしょうか。OSS管理ツールにもさまざまな種類があり、結局のところ、どれがいいの?と迷われる方も多いと思いますので、選ぶ際の観点とおすすめツールを纏めてみました。

観点その1:OSSを改変して使っているか

OSS管理ツールの基本的なアプローチは、解析対象ファイルから算出したハッシュ値と、あらかじめ算出して蓄えてあるOSSのハッシュ値とを比較する「ファイルマッチング」という方法です。ほとんどのツールには「あいまいマッチ検出」の機能があるので、軽微な改変であれば検出することができますが、改変の度合いと検出率は相反関係になります。
改変されたOSSの検出を可能にするため、いくつかのOSS管理ツールでは「スニペットマッチング」というアプローチをとっています。これは、ファイルの一部分だけが似ているようなOSSを特定することができ、OSSの意図しない混入(コンタミネーション)を防止することができます。
as-is(ありのまま)のOSSのライブラリを参照しているだけ、というような場合であればファイルマッチングができるOSS管理ツールで十分ですし、組込み開発などでOSSの改変が必須の方であれば、スニペットマッチングができるOSS管理ツールを選んでください。

観点その2:独自ビルドのバイナリファイルを解析する必要があるか

OSSのバイナリファイルをas-isで使用している場合であれば、上述の「ファイルマッチング」でカバーできますが、独自ビルドのバイナリファイルは、ビルド環境やオプションなどによりハッシュ値が変わりますので、特別なアプローチが必要です。元にしたソースファイルが手元にある場合は、ソースファイルを解析すれば良いのですが、外部からの購入品などでバイナリファイルしか手元にない場合もありますので、そのような方は独自ビルドのバイナリファイルを解析する機能を持ったツールを選んでください。

観点その3:依存関係の解析

取り込んだOSSがさらに別のOSSを取り込んでいて、突き詰めていくとGPLライセンスのライブラリが入っていた・・・という「あるある」を経験したことのある方も多いのではないでしょうか。このような「入れ子構造」になっているライセンスのことを「Deep License」と呼びます。このようなDeep Licenseを調べるには、パッケージごとの依存関係(どのパッケージが、どのパッケージを内包しているか)を調べなければなりません。Deep Licenseを詳しく調べたい方は、パッケージマネージャの依存関係を示すファイルを解析しパッケージの依存関係を可視化してくれる機能を持ったツールを選んでください。

このカテゴリーのおすすめツール

おわりに

最近ではさまざまな場面でOSSが使われるようになってきているため、OSS管理に取り組まれている企業が増えてきました。また、2020年にOSS管理の国際標準「ISO/IEC 5230」が誕生し、OSSコンプライアンスの切り口でサプライチェーンマネジメントにも注目が集まっています。お客様から、「貴社のOSS管理の仕組みを教えてください」と言われる機会も増えてくるかもしれませんので、いざというときに慌てない様、早いうちに取り組んでいただくことをお勧めします。

OSS管理のお困りごとは、日立ソリューションズにご相談ください。

渡邊 歩

株式会社 日立ソリューションズ
ITプラットフォーム事業部 デジタルシフト開発支援本部
グループマネージャ

2011年よりオープンソース管理ソリューションを立ち上げ、企業のOSS利活用を支援するコンサルティングを提供。顧客企業向けのトレーニングや業務支援のほか、セミナー講演や技術文書の投稿などを行っている。社外ではOpenChain Japan WGの中心メンバーとして活動、2020年には日立ソリューションズとして、日本企業初となるOpenChain公式パートナー認定を獲得した。

【ホワイトペーパー】ソニー、トヨタ、日立も重視、OSS管理の国際標準に対応せよ

【OSS管理】自動車業界も大注目、オープンソースソフトウェアの管理はどうすればいいのか解説

スマートモビリティソリューション コンテンツ一覧

関連商品・キーワード

最近見た商品一覧