Fortune 100 企業の 90 % が安全なソフトウェアの構築、拡張、配信に GitHub を使用している理由をご覧ください。
GitHub でジャーニーを開始する
オープン ソース ソフトウェア (OSS) とは
オープン ソース ソフトウェア (OSS) とはソース コードを自由に利用できるソフトウェアのことです。営利目的と非営利目的どちらでもユーザーがソース コードを閲覧、変更、借用、共有できます。
オープン ソース ソフトウェア開発の基本原則
透明性、コラボレーション、分散化を基本原則とするオープン ソース ソフトウェア モデルでは、コミュニティがコードを作り、コードがコミュニティを作ります。
コラボレーション
クローズド ソース ソフトウェアとは異なり、OSS は誰でも利用できるだけでなく、コードを再利用できます。その結果、互いに協力してコードのレビュー、テスト、文書化、パッチ適用を行うコントリビュータのグローバルなネットワークが形成されました。
透明性とセキュリティ
オープン ソース ソフトウェア開発は公開されているため、コードベースやユーザー間のコミュニケーションなど、全ての作業をオープン ソース コミュニティが閲覧できます。透明性によってコントリビュータ間の信頼が育まれ、イノベーションと遊び心が生まれます。コードベースが公開されているため、発生したセキュリティの脆弱性をユーザーが素早く特定して修正できます。
分散化
コミュニティでコードを開発し、個人や企業がそのコードの所有権を持つことがないというオープン ソースの分散型ソフトウェア開発の性質により、サイロやボトルネックが減って誰もが参加しやすくなります。
ビジネスにとってオープン ソースが重要である理由
組織におけるソフトウェア開発のあり方を常に左右しているオープン ソースはかけがえのないテクノロジーとフレームワークです。大半の商用コードベースで現在 OSS コンポーネントが使用されているのもそのためです。オープン ソース ソフトウェアの利点は無数にありますが、企業も開発者も揃ってこのモデルに投資し続ける理由を示す例を少しだけ挙げます。
**柔軟性とカスタマイズ。**ニーズに合わせてソース コードを自由に変更できるため、OSS では新しいアプリの開発や既存ソリューションの改善において高い柔軟性と自由が約束されています。
**最新のテクノロジー。**透明性、コラボレーション、分散化を重視している OSS は、現在最も革新的なプロジェクトの一部を推進しています。Linux や Apache をはじめとするこうした多くのプロジェクトは業界の主役になりつつあります。
**ベンダーの拘束がない。**技術ベンダーとの長期にわたる契約に縛られないため、より多くの予算と人材をさまざまなツールとインテグレーションのテストに投入できます。
**コストの節約。**OSS のソース コードは無料であるため、専有ソリューションやクローズド ソース ソリューションと比較して総所有コストが抑えられます。
**コミュニティのサポート。**OSS プロジェクトでは開発者コミュニティの専門知識を活用しています。コミュニティは開発、レビュー、デプロイメントまで全てのプロセスでサポートしてくれるため、スピーディなアップデートと脆弱性の削減が可能になります。
エンタープライズ レベルでは、ソフトウェア開発ライフサイクルのあらゆる側面がモダナイズされるというオープン ソース エンタープライズのメリットが得られます。高級車ブランドでは、OSS コンポーネントを使用してプロセスとソフトウェアのリリース期間を短縮しています。一方、フォーチュン 500 企業ではエンタープライズ プラットフォームを利用してコードの統合と一元管理を実現しています。OSS を活用することで、エンタープライズ組織はシームレスに統合されたコードやサイロの削減を実現し、安全かつ大規模なソフトウェアのリリースを可能にしています。
オープン ソース ソフトウェアの仕組み
通常、オープン ソース コードはパブリック リポジトリに保存されています。そのため、誰でもアクセス、貢献、共有 (権限によって異なる) が可能です。コントリビュータがプロジェクトに新しいバージョンのコードをアップロードし、既存のコードを再利用して改善することで新しい機能とアップデートをリリースします。全ての作業は公開された状態でリポジトリ内で行われるため、誰でもそれに貢献できます。
通常、コードにはライセンスが付属しています。ライセンスはソフトウェアに対してユーザーができることとできないことを定義するためのものです。一部のライセンスは制限がそれほど厳しくなく、あらゆる目的でコードの使用と配布が可能です。一方で、共有する際に全ての変更を明確に記録することが求められるライセンスもあります。ソース コードの全てのコピーが無料で、公共利用が可能であると定めているライセンスもあります。現在最も人気の高いライセンスをいくつかご紹介します。
**MIT。**MIT ライセンスはソース コードに対する操作の制限がほとんどないため、幅広く使用されている無料ライセンスとなっています。このライセンスで定められているのは、コードの将来のバージョンにオリジナルの著作権表示とライセンス自体のコピーを含めることだけです。
**GNU General Public License (GPL) v2。**GNU Project が作成した GPLv2 では、ソース コードを誰でも使用できる状態にすることが明確に定められています。GPLv2 はコピーレフト ライセンスでもあるため、ソース コードのどのバージョンも同じライセンスである GPLv2 のもとでリリースする必要もあります。
**GNU GPLv3。**1 つ前のバージョン同様、GPLv3 でも同じライセンスのもとでコードの将来のバージョンをリリースする必要があります。GPLv2 とは異なり、GPLv3 は人気のある Apache 2.0 ライセンスと互換性があり、特に特許権への対応に力を入れています。また、ソース コードを公開する必要がありません。
**Apache 2.0。**MIT ライセンス同様、Apache 2.0 ライセンスは人気が高くソフトウェア ライセンスの制限も緩いため、行った大幅な変更を全て記録すればユーザーはコードに対して何を行っても構いません。
オープン ソース ソフトウェアのメリットとデメリット
エンタープライズ組織内でさえ、OSS は主役の座へと昇りつめて幅広く採用されています。その結果、協力してソフトウェアを開発する文化が育まれ、投資収益率 (ROI) が向上しました。それでも、オープン ソースには欠点もあります。ここからはオープン ソースのメリットとデメリットをそれぞれいくつかご紹介します。
メリット
**コスト。**OSS ツールには自由に利用できるソース コードが付属しているため、総所有コストが抑えられます。
**イノベーション。**OSS ではユーザー間でクリエイティブな問題解決が促進されます。ユーザーは必要な数だけ変更を加えることも、自分でゼロから新しいアプリを開発することさえできます。
**更新の速さ。**コントリビュータのネットワークのおかげで、クローズド ソースソリューションと比較して OSS プロジェクトではバグ修正がスピーディに実装される傾向にあります。
**市場化までの時間の短縮。**ゼロから独自ソリューションを開発することが不可能な場合は、オープン ソース コードを組み込むことで製品の市場化までの時間を短縮できます。
**信頼と透明性。**全ての作業が一般公開されているため、コードのコミュニティによってアクティブなプロジェクトが適切に維持管理されていることをユーザーが信じることができます。
**開発者の賛同。**オープン ソースの親しみやすいプロセス、コラボレーションの文化、効率性が開発者の賛同を得ています。IT リーダーはオープン ソースに貢献しているベンダーを選ぶ傾向にあります。
**学習の機会。**パブリック リポジトリには新たに参加する開発者を対象とした大量のトレーニング資料が用意されているだけでなく、頼りになるネットワークがあります。
デメリット
**馴染み難い。**開発者を中心としたプロセス、インターフェイス、文化が原因で、OSS はコーダー以外の人にとって参加がためらわれる場合があります。
**全体的に完成度が低い。**OSS プロジェクトのなかには小規模なものやベータ版のままのもの、維持管理されていないものもあるため、製品としてそのまま使用するには頼りない部分があります。
**ライセンスの問題。**数百ものオープン ソース ライセンスが出回っており、なかには極めて細かく特殊なものもあります。複雑なテクノロジー スタックを扱っている場合は、全てのライセンス契約を管理するのが難しくなる場合もあります。
**補償の問題。**クローズド ソース ソフトウェアとは異なり、オープン ソース ソフトウェアには通常、保証や損害補償がありません。コンプライアンス標準への準拠についてはユーザーが単独で責任を負うことになるため、長期的に見ると問題が発生する場合があります。
**セキュリティの問題。**現在多くのプラットフォームにアプリケーション セキュリティ (AppSec) に関するツールとプラクティスが用意されています。一方で、エンタープライズ企業の間では OSS が信頼性の低い選択肢とみなされてきた過去があり、現在もそのイメージが残っています。
GitHub の DevOps ソリューション
人気のオープン ソース ソフトウェア
オープン ソースは現代の開発に必要不可欠な要素として深く根付いており、組織で日常的に使用されているアプリやツール、フレームワークで活用されています。
ごく一部ではありますが、ここからは現在最も人気のあるオープン ソース アプリケーションをご紹介します。
GNU/Linux
Mozilla Firefox
Ruby on Rails
VLC Media Player
jQuery
Node.js
Kubernetes
GIMP
BASH
安全なオープン ソース コードの開発
オープン ソース コードベースの安全性とセキュリティはコントリビュータ次第であるため、コミュニティ レベルでセキュリティに対処する必要があります。現在、多くの組織がセキュリティにシフト レフト アプローチを採用しています。セキュリティ エキスパートは通常、DevOps ライフサイクルの最後に監査を実施します。一方、シフト レフト セキュリティ モデルでは、最初から最後まであらゆるステップでセキュリティに対してプロアクティブなアプローチをとることが開発者に推奨されています。
途中でのチームのコード セキュリティを支援するには、新しい AppSec ツールとプロセスの採用を検討することをお勧めします。GitHub Advanced Security は、コード スキャンを通じて報告されたセキュリティの脆弱性、エラー、依存性を特定および修正することを支援します。さらに、GitHub Actions などの継続的インテグレーション・継続的デリバリー (CI/CD) プラットフォームを活用することで、開発者はコーディング環境から直接このプロセスやビルド、テスト、デプロイメントの各パイプラインを自動化できるようになりました。
FAQ
オープン ソース ソフトウェアとは何ですか?
オープン ソース ソフトウェア (OSS) とは、営利目的と非営利目的のどちらでも閲覧、編集、共有が可能なソース コードを含むソフトウェアのことです。ソフトウェア ライセンスがあれば、誰でも無料でコードへのアクセス、編集、配布が可能です。
オープン ソース ソフトウェアは無料ですか?
「オープン ソース」という言葉は「無料」と同じ意味であると誤解されがちですが、必ずしもそうとは限りません。ソース コード自体は無料で誰でも使用できますが、たとえば利用に支払いが必要なプレミアム機能やエンタープライズ機能が搭載されているソフトウェアもあります。
オープン ソース ソフトウェアは誰が使用できますか?
営利目的と非営利目的のどちらでも、適切なソフトウェア ライセンスを持っていれば誰でも OSS の使用と配布が可能です。
オープン ソース プログラムを販売できますか?
はい。多くのソリューションに有料のエンタープライズ機能が搭載されています。ただし、通常はソース コード自体は無料で誰でも使用できます。
おすすめのオープン ソース ソフトウェアはどれですか?
最適なオープン ソース ソフトウェアは組織のニーズによって異なります。エンタープライズ組織の場合、GitHub Enterprise のようにセキュリティと自動化に対応したツールが搭載されているプラットフォームを選択し、ソフトウェア ライフサイクル全体で開発者が質の高いコードをリリースできるようにすることをおすすめします。