こんにちは、日立ソリューションズの吉田です。今回は、「企業がOSSを使う上でのお作法」というタイトルで、企業がOSSを活用する上で考えなければいけないことを、いろいろご紹介していきたいと思います。
なぜOSSを使うのか?
そもそも、企業はどのような目的でOSSを利用しようと思うのでしょうか? さまざまな調査結果などを見ると、「導入コストや運用保守コストの削減」「ベンダーロックイン回避」などが上位に入ってきます。では、本当にこれらは実現できる目的なのでしょうか?
また、OSSに対する不安としては、「緊急時のサポート」「ベンダー、SIerのサポート」に対する不安や「技術者不足」、「ライセンスの困難さ」や「特許侵害での訴訟」などがあがります。OSSのメリットやデメリットを本当にこのように考えていて良いのでしょうか?
もともと、OSSは商用ソフトウェアの廉価版というイメージが強く、「コスト削減」が容易に実現できるツールという見方が一般的でした。現在でも、LinuxのようなOSや、PostgreSQLやMySQLのようなDBMSは、その領域に該当するOSS、いわゆる「既存型OSS」です。しかしながら、ここ数年はそれだけではなく、商用ソフトウェアには存在しない機能を提供するようなOSS、いわゆる「新世代型OSS」が登場しています。
このあたりで、もう一度これら新しいOSSとの付き合い方も含めて考え直すのも良いころではないかと思いますが、従来型のOSSの活用も大切な使い方ですので、まず前編では、「従来型OSS」との付き合い方をまとめていきたいと思います。
「従来型OSS」との付き合い方とは
「従来型OSS」の代表的な使い方は、商用ソフトウェアで実現しているシステムを「OSSで置き換える」ことでした。そのために必要なのは、まず、同等の機能を実現できるOSSを探すことです。
では「どうやって探すのか?」というのがここからの話題です。巷にはOSSに関する情報があふれています。しかしながら、それらすべてが「正しい」とは限りません。ここで、「正しくない」場合とは、単に間違っていないものというだけではなく、古い情報であったり、環境が違っていたりすることなどを含めて、今回のシステムに適用するのに参考にするのは適切でないということを含めています。
1.事例の収集
では、どこにOSSに関する情報があるのでしょうか? コミュニティーサイトには当然あるのですが、これから「従来型OSS」を活用したいと思っているユーザーにとっては、少し敷居が高い存在です。そこで、まずは事例を集めることをお勧めします。これから実現したいシステムに一番近い構成の事例を探し、そのシステムでどのようなOSSが活用されているのかを調べるのが、一番の近道です。Googleなどの検索エンジンで「OSS 事例」と入力して検索することで、OSSの事業を展開している企業のサイトや各種団体が多数出てきますので、その中から一番近いものを探しましょう。
2.評価・検証
使用するOSSが決まったら、次はそれぞれのOSSについて調べていきましょう。バグの発生頻度や修正状況から、安定して動作するバージョンを選択します。
バージョンが決まったら、実現したい機能が動作するのか、求められる時間内に処理が終了するか、というようなことを確認するために、機能や性能の検証が必要になります。あとで、「そんなはずではなかった」ということがないようにするためです。特に異常が発生した時にどのような挙動をするかの異常系のテストや、アクセスが集中することを想定した負荷テストは、入念に行う必要があります。また、複数のOSSを組み合わせる場合は、バージョン依存の問題が発生する可能性が非常に高くなりますので、組み合わせテストも実施しなければいけません。
3.コミュニティーの健全性チェック
次に使用するOSSのコミュニティーについて、いろいろな情報を調べていく必要があります。まずは、そのコミュニティーの「健全性」チェックです。コミュニティーがこのOSSを継続して開発およびサポートしていく意思があるかを確認します。
例えば、最新バージョンがリリースされたのが、1年以上も前でその後メンテナンスされていないような状況であれば、その後もメンテナンスされる可能性は低いでしょうし、バグが発見された場合でもパッチが出る可能性が低いと考えられます。また、コミュニティーができてからどれくらい期間が立っているのかも指標になると思います。最近の「新機能型OSS」では、少し状況は違うかもしれませんが、少なくとも「従来型OSS」では、コミュニティーができてから最低1年以上たっていることを条件にすることが妥当だと思います。
最後は、リリース計画およびポリシーも確認しましょう。現在のバージョンのサポート終了予定日や、どのバージョンまでさかのぼってサポートするかというサポートポリシーは、使用する側からみるととても重要なことです。システムが稼働している間、継続してサポートしてもらえるものを選ばなければいけません。
4.問題解決ソースの確保
ここでいう「問題解決ソース」には、大きく2つあります。1つ目は、インストール手順やサービスの起動や停止の手順といった「システム構築・運用に必要な」情報です。単にソフトウェアをインストールするだけで終わることは少なく、それぞれ違った環境を構築しなければいけません。したがって、そのための情報が必要になってくるということです。
もう1つは、バグやセキュリティに関連する情報、リリース情報など「システムの安定稼働」に関する情報です。なにか問題が起こった時に、同様の問題が過去に起こっているかを調べるだけでも問題解決の時間が短くできるので、これらの情報のありかを押さえておくことはとても重要です。これらの情報は、一般的にコミュニティーのウェブサイトやメーリングリストで提供されますので、定期的にウェブサイトをチェックしたり、メーリングリストをチェックする必要があります。
5.評価情報の有効活用
OSSそのものの情報については、評価情報を公開してくれているサイトがいくつかありますので、紹介したいと思います。
- Open HUB このサイトは、米Black Duck Softwareが運営しているサイトです。OSSプロジェクトの概要、活動状況、ソースコードの入手場所、宣言されたライセンス情報、参加しているコントリュビューターの数、コードボリュームやコミット数などOSSプロジェクトを選択する上で重要な情報をこのサイトから入手することができます。その他にも開発に使用されている言語、活躍中のコントリュビューターの数やメンバー数の推移なども掲載しており、OSSプロジェクトの活動状況の可視化を実現しています。
- OSS Radar Scope このサイトは、SCSKが2012年12月に公開したサイトで、OSSの成熟度や品質、サービスなどの情報を集積し、独自に考案した手法で評価してレーダーチャートで表しています。評価対象OSSはプラットホーム、ライブラリ/フレームワーク、ツール、ミドルウェア、アプリケーション、言語処理系の6分野159ツールで、コミュニティー活動状況、リリース履歴、ドキュメント、サポート情報、関連出版物などのウェブから収集できる客観的データを月次で集めて、毎月評価しています。評価手法はすべて公開されています。
6.技術者、サポート企業の有無
このように、「従来型OSS」を使用するにはさまざまな情報にアクセスする必要があります。ですから、使用する予定のOSSを扱うスキルのある技術者が社内に存在するかを調べましょう。社内に技術者がいない場合は、育成することを考えるか、そのOSSをサポートしてくれるベンダーを探します。現在では、多くの企業がサポートサービスを提供していますので、これらのサービス活用を検討することで、リスクを最小限にすることができます。
ここまで、「従来型OSS」との付き合い方をご紹介してきましたが、「新世代型OSS」は少し付き合い方が変わってきます。「新世代型OSS」は、まだまだ開発途中であるということが多く、どちらかというとコミュニティーそのものとどのように付き合っていくかということに焦点が変わってきます。単に「利用する」という付き合い方から、どのように開発に関わって「貢献する」という付き合い方に変わっていきます。本来であれば、このまま続けさせて頂きたいところですが、「コミュニティーとの付き合い方」ということで、「新世代型OSS」との付き合い方は、後編でご紹介したいと思います。