オープンソース

オープンソースとは

オープンソースとは、開発や更新が続くように、複数のチームやデベロッパーが自由に変更でき、新しい機能や修正に貢献することを想定して作成、配布されているソフトウェアです。

オープンソースが他のモデルと異なる点

デベロッパーがオープンソースソフトウェアを作成、リリース、さらに更新するとき、そこには一般にデベロッパーコミュニティが継続的な進化に貢献できるという設計意図があります。オープンソースソフトウェアのソースコードはコンパイル前の形式で自由に利用でき、ソフトウェアの進化や変更に独自の専門知識を活用したいデベロッパーが、他の開発者とともに貢献できます。

関連するHPEのソリューション、製品、サービス

オープンソースに対する期待

オープンソースには、異なるオペレーティングシステムやオンライン環境で動作するバージョンをユーザーが作成できるという特徴もあります。貢献するユーザーが独自の更新を他のユーザーにも利用できるようにすることは、オープンソースソフトウェアだけで実現可能です。

関連トピック

オープンソースの歴史

オープンソースソフトウェアは、実際には数十年前、有償ソフトウェアがリリースされる前から存在し、1953年のA-2コンパイラシステムにまで遡ります。1970年代までは、コンピューターハードウェア自体は商品と見なされても、作成されハードウェアにロードされるプログラムは商品ではないという考え方が主流でした。有償でリリースされるソフトウェアはがありましたが (通信販売で、ソースコード行が印刷されたものを購入するのが一般的)、商用、学術、趣味向けのコンピューターに対してはオープンソースと見なされ方が一般的でした。

1970年代前半にAT&Tにより初めてリリースされた、UNIXオペレーティングシステムはよく知られた例です。その後、商用バージョンや独自仕様バージョン、ソース非公開バージョンといったUNIXがリリースされることになりますが、UNIX用ソフトウェアは1983年に設立されたGNUプロジェクトの元で、作成され配布されています。1991年に、新しいフリーのオープンソースカーネルLINUXがリリースされました。名前は開発者Linus Torvalds氏にちなんだもので、瞬く間にほぼ世界標準になり、現在まで続いています。

Open Software Foundationは、UNIX開発における標準を作成し維持するための非営利団体として1988年に設立されました。その後X/Openとの合併により、The Open Groupとなっています。ハードウェア製造者やソフトウェア開発者など多様なセクションの1,000近くのメンバーが集まり、The Open Groupではプロフェッショナル向けに認定を行い、Single UNIX Specification (SUS) やOpen Agile Architecture標準など多数の標準を考案しています。

オープンソースモデルのメリット

エンタープライズレベルでは、オープンソース開発にはITプロフェッショナル、ユーザー、デベロッパー自身に多くのメリットがあります。短時間で機動的に機能要求を実装できること、簡単にスケールアップできる機能、コスト効率すべてが大きなメリットになります。

オープンソース開発モデルは、クラウドそのものとよく似ています。修正や機能は複数のデベロッパーやチーム間で共有され、他のユーザーにより妥当性が確認された後コンパイルされます。専用のリソース量を柔軟に変更でき、必要な場合にチームを追加できます。オープンソースソフトウェアの多くの事例では、小さなグループから始まり、継続開発に貢献する巨大コミュニティに成長します。

また、開発における課題に対してさまざまな新しい解決策を見出すことができる優れた能力の人材を引き付けます。オープンソースソフトウェアのメンテナンスを担当するグループは、ベンダーが修正や新機能をリリースするのを待機する必要はありません。グループ自身で作成できるためです。

オープンソースソフトウェアでは、かなりの費用が効率化されメリットも生まれます。ソフトウェアの大部分はフリーで配布されます。オープンソースの継続開発に必要な投資時間と費用は、コミュニティ全体が負担します。ベンダーロックインは問題になりません。ユーザーはサードパーティに契約で縛られることはないためです。

おそらく最も重要なメリットは、エンタープライズがまさにイノベーションのスピードに合わせて進化できることです。適切にコントロールされた費用、短時間の開発と実装、継続メンテナンスを効率的にクラウドソーシングできることは、オープンソースソフトウェアのメリットとして言うまでもありません。

フリーソフトウェア、クローズドソースソフトウェア、オープンソースソフトウェアの比較

販売またはパブリックドメインであるのかに関係なく、現在利用できるすべてのソフトウェアは、事実上3つの定義に分けられます。「クローズドソース」ソフトウェアは解釈が最も簡単な定義で、一方「フリー」と「オープンソース」は時には区別されませんが、根本的な違いがあります。この2つには多くの共通部分がありますが、フリーでオープンソースであるソフトウェアを表すのに、FOSSという用語がよく使われます。

クローズドソースソフトウェア

クローズドソースソフトウェアは一般に暗号化され、コンパイル後、保護された形式になります。許可を取得することなしにソースコードを解析、変更、再コンパイル、再配布できないという個別の契約とともに提供されます。クローズドソースソフトウェアの好例は、Microsoft WindowsやAppleのMac OSなど販売されているコンピューターオペレーティングシステムです。これらはデベロッパーの知的財産と考えられ、両社はかなりの手段を講じて自社の製品を保護しています。

フリーソフトウェア

フリーソフトウェアは、非営利団体の Free Software Foundationが定義した「4つの基本的自由」に基づいて配布されます。つまり、「目的を問わず希望どおりにソフトウェアを実行する」、「ソースコードを研究し変更する」、「オリジナルソフトウェアを再配布する」、「自分で変更したバージョンを再配布する」自由です。「フリー」はこれら4つの自由を指しており、この名前は実際の価格のことではありません。商用でリリースされたフリーソースソフトウェアのタイトルの例が多数あります。

オープンソースソフトウェア

オープンソースソフトウェアは、1990年代後半に設立されたOpen Source Initiativeが策定した定義に基づくもので、デベロッパーコミュニティがフリーソースソフトウェアの限界と感じていたものに対応するために生まれました。すでに説明したとおり、オープンソースでは、他のユーザーに引き継がれるライセンスに開発者の考え方ができるだけ反映されています。Open Source Initiativeが表明しているのは、「ソフトウェアはフリーで再配布できる」、「ソースコードは公開され利用できる」、「どのユーザーやグループに対しても変わらずに対応する」、「他のソフトウェアとの使用にいかなる制限もない」ことです。

オープンソース開発モデルとは

オープンソース開発モデルは、従来のモデルと差別化されるプロセスと価値により定義されます。歴史のある開発組織であってもオープンソースモデルの採用するところが増えています。オープンソース開発で強調されるのは、コラボレーション、ピアレビュー、「すばやく何回もリリース」という考え方で、これにより頻繁な更新が可能になります。

オープンソース開発での機能要求プロセスは、常に同じです。推奨される機能、修正、更新があるとき、オープンソースモデルの機能要求プロセスでは、推奨事項がグループで議論され、妥当性が確認されてから、設計と実装に移ります。新バージョンがコンパイルされると、アルファリリースとしてコミュニティ全体で共有され、テスト、フィードバック、その反映が行われます。

オープンソースモデルの中核理念は複数の個人や小グループがソースコードの作成やメンテナンスに対する責任を共有することです。これらの更新は複数のグループで共有され、チーム全体で完全な透明性でコードがテストされ妥当性が確認されます。プロジェクトが実装できる段階になると、新しく提出されたコードがプロジェクトの標準に合っているかどうかを確認する責任がある、ソフトウェアのメンテナンス担当やマネージャーにコードが渡されます。

オープンソースソフトウェアソリューションを適用する方法

オープンソースソフトウェアへの移行は、ほぼすべてのエンタープライズで行われてきました。95パーセントのITエンタープライズは、インフラストラクチャのモダナイゼーション、アプリケーション開発、DevOpsにオープンソースを使用しています。

一例として、LINUXオペレーティングシステムはオープンソースモデルの完全なもので、その環境自体だけではなく、数百のオープンソースアプリケーションがそこで動作するように設計されています。他にインフラストラクチャの例があり、Xen、KVM、OpenStackはすべてオープンソースです。

ビッグデータ分野では、ApacheのHadoopプラットフォームやSparkデータ分析、さらにMongoDBのAtlas Databaseは、オープンソースモデルで開発されたソフトウェアの好例です。機械学習アプリケーションにはApache MXNet、PyTorch、TensorFlowがあります。

ほぼどこにでもあるオープンソースソフトウェアの他の例には、WordPressおよびPHP、jQuery、Angular、Ruby on RailsなどのWeb開発ツールやフレームワークがあります。モバイルアプリケーションでは、GoogleのAndroid OSが広く採用され、一方Apache Cordovaはクロスプラットフォームモバイルアプリケーション開発向けの人気のある、オープンソースフレームワークです。

HPEでのオープンソース

HPEのDNAにはオープンなコラボレーションが組み込まれています。HPEは、オープンソーステクノロジーとコミュニティが安全かつ適切に革新的なソリューションを提供するのに役立つと信じており、HPEは広範なエンタープライズレベルのアプリケーションにおいて、数多くのオープンソースソフトウェアソリューションを提供しています。複数のオープンソースプロジェクトをサポートしたり、利用したり、それらのプロジェクトに貢献したりしていることを誇りに思っています。

Chapelはスケーラブルコンピューティング向けの並列プログラミング言語であり、デスクトップやノートパソコンから最高レベルのHPCアプリケーションに移植できます。

SmartSimは、オンライン分析、モデルステアリング、ビジュアル化などの追加のシミュレーション機能を研究者に提供し、従来のハイパフォーマンスコンピューティング アプリケーションで機械学習 (ML) と人工知能 (AI) を活用できるようにするソフトウェアです。

KubeDirectorはオープンソースのKubernetesカスタムコントローラーです。これにより、標準のKubernetesクラスターでステートフルアプリケーションを簡単に展開できます。アプリケーションの特性をメタデータと構成アーティファクトで定義し、アプリケーションを簡単に展開および更新できるようにします。

SPIFFEは、Cloud Native Computing Foundationで策定された、汎用のIDコントロールプレーンです。プラットフォーム非依存の暗号IDを使用するSPIFFEは、動的な異種混在環境における認証サービスの実質的な標準仕様となっています。またSPIREは、さまざまな環境にSPIFFEを実装するためのオープンソースシステムです。