Open Source Software (以下OSS)の業務利用およびその責任については、これまでにも多くの議論がされてきましたが、サポートという観点で分類してみると、以下のようになると思います。
一般的なOSSの無償利用はこの状態に相当します。ただし、ソースコードがあったとしてもそれなりの規模のソフトウエアとなれば、その解析により動作を自身で保証することは、多くの場合に現実的でありません。そしてソフトウエアの利用に関して生ずる動作の不具合やセキュリティについて、開発者はその責任を負いません。また、利用方法などへの問い合わせなどに回答する義務もありません。自己解決が求められる一方で、自由に開発へ参加し貢献することもできます。
公開されているソフトウエアのセットアップや運用支援を、インテグレータ等が自身の検証結果や知見に基づいて「サポート」と称して販売するケースがありますが、開発には絡んでおらず、コードやドキュメントに不具合があったりセキュリティ対応などについては免責される契約となります。当然開発者との契約はありません。
数は多くありませんが、十分な開発力を背景に、自身のサービスを展開するためのベースとして OSS を利用しているケースがあります。開発者の一部を雇用している場合も多く、この最たるものが RHEL ではないでしょうか。他にもデータベースソフトウエアにおいては Percona 社などが相当すると思います。
ライセンスに基づいてサポート契約を必要とするものの、ソースコードは公開されている場合があります。また、特定条件ではサポート契約なしに無償利用ができる場合もあります。弊社の取り扱う BeeGFS などがこれにあたります。
当該ソフトウエアの開発を継続しており、細部まで熟知した開発者との契約により、不具合の対応にも責任をもってあたらせることができます。当然ながら開発者との契約及びサービスの内容はそれぞれですが、機能追加のリクエストが可能な場合もありますし、利用支援やトラブルシュートが可能であったり、セキュリティ対応等も脆弱性情報が公開される前に優先して提供される契約であることがほとんどです。
弊社では、運用中の安定動作とセキュリティに最も責任ある対応をとることが可能で、かつ開発者の継続的な開発とサポートを実現するために対価を還元する4と5のみを取り扱い、それ以外の無償で公開されているプロダクトに対する技術サポートやコンサルティングの提供は原則として行っておりません。ただし、ソフトウエアの普及活動や PoC のために無償版をご案内することがないわけではありません。
ここで問題となるのは、プロダクトが複数のソフトウエアの複合体からなる場合です。特に、NVIDIA Base Command Manager(以下BCM) や ClusterVisionのTrinityX Cluster Manager (以下 TrinityX) といった、オールインワンでシステム構築を行うソフトウエアは、多数の OSS をキーコンポーネントとして内包しており、それぞれがどのようなサポート契約になっているのかが見えにくいです。例えばジョブスケジューラの Slurm についてみてみましょう。Slurm はコミュニティで開発が行われている OSS である一方、現実にはコマーシャルサポートを展開する SchedMD 社がコードの 95% 以上を書いており、実質的な開発元となっています。
BCM は NVIDIA がビルドした Slurm のパッケージを自社のリポジトリから提供しています。ただし、それは公開されているソースコードから環境に合わせてビルドして提供しているだけで、NVIDIA 社では Slurm そのものの利用支援や動作保証、コンサルティングを行っていません。BCM を通じた Slurm の設定方法はサポート対象ですが、「Slurm に何を設定すれば目的を達成できるのか?」には答えてくれませんし、セキュリティに問題が見つかってもアップデートが出てから粛々とパッケージを用意するだけなので、ユーザーはそれを待つ必要があります。
これは TrinityX でも同様で、現状 TrinityX は Slurm を OpenHPC から導入しています。その Slurm パッケージをセットアップして動作させるところや、TrinityX の機能として Slurm の設定を行う部分についてはサポート契約があれば責任をもって対応しますが、ClusterVision が Slurm コードの動作保証やバグフィックス、セキュリティ対応、設定内容のコンサルを提供している訳ではありません。また、アップデートやセキュリティ対応は、OpenHPC の対応ポリシーやスピードに依存することになります。
モニタリングに用いられる Prometheus や Grafana、認証系を為す OpenLDAP、ポータルである Open OnDemand についても同様です。TrinityX の有償サポートを契約しても、ClusterVision 社は上記分類の2の対応でテクニカルサポートを提供しているに過ぎません。それぞれのソフトウエア自体の品質や動作保証、セキュリティ対応に関しては各々の開発元に依存し ClusterVision が提供するわけではなく、不具合があったとしてもコードを修正したりする義務を負いません。
弊社は創業以来ジョブスケジューラの販売とサポートを生業としています。最もカスタマイズが求められる一方、安定運用が必須となるジョブスケジューラに関しては、開発元との Back to Back のサポート契約、即ち上記分類の5が必要と考えており、Slurm に関してもその体制を整えています。そのため、上記分類の2の対応をする他の業者とは同じ「サポート」を謡いつつも、金額的には高額となるケースが少なくありません。しかし「責任」という違いが最も大きいと信じています。Slurm の他にも、ご紹介した例の中では Open OnDemand については弊社にて開発元によるサポート契約のお取り扱いがあります。一方で Prometheus や Grafana のサポートに関するお取り扱いはないため、それらの品質について責任ある対応が必要な場合は、他社をあたっていただく必要があります。
開発元との直接契約かつ相互の信義に基づき、弊社が取り扱う OSS として上記分類の2の対応はお請けできません。開発元への還元なく弊社のみの利益とするわけにはいかないためです。BCM や TrinityX のサポートを購入されるお客様に Slurm のサポート契約も別途お願いしているのは、安心してシステムをお使いいただき、ベストプラクティスをお届けするため、そして開発元が開発とサポートを継続して展開するために必要であることをご理解いただければ幸いです。