序章
オープンソース ソフトウェア は、最新のソフトウェア開発の基盤となっています。 Web フレームワークやデータベースからオペレーティング システムや開発ツールまで、オープンソース コンポーネントは現在構築されているほとんどのアプリケーションをサポートします。 関連するリスクを管理しながらオープンソース ソフトウェアを効果的に実装する方法を理解することは、開発チームや組織にとって不可欠です。
ただし、オープンソース ソフトウェアを使用すると、組織が対処する必要がある重要な考慮事項が生まれます。 セキュリティの脆弱性、 ライセンスコンプライアンス、 法的義務、 サプライ チェーンのリスク はすべて、慎重に注意する必要があります。 オープンソースの依存関係を適切に管理できない組織は、セキュリティ侵害、法的負債、予期しないコスト、運用の中断に直面する可能性があります。
このモジュールでは、エンタープライズ環境でのオープンソース ソフトウェアの実装に関する包括的なガイダンスを提供します。 最新のソフトウェアをオープンソース コンポーネントで構築する方法、セキュリティとライセンスに関する企業の懸念を理解する方法、一般的なオープンソース ライセンスとその影響を調べる方法、オープンソース ソフトウェアを効果的に管理するための戦略を見つけ出す方法について説明します。
学習内容
このモジュールでは、プロフェッショナルな環境でオープンソース ソフトウェアを操作するための重要な知識について説明します。
最新のソフトウェア開発について: 元のコードとオープンソースのライブラリ、フレームワーク、ツールを組み合わせて、現代的なアプリケーションがどのように構築されているかを調べていきます。 組織がオープンソース コンポーネントを選択する理由を学習し、迅速な開発、実証済みソリューション、コミュニティ サポート、コスト削減など、組織が提供する利点を理解します。
オープンソース ソフトウェアに関する企業の懸念: オープンソース コンポーネントを使用する場合に組織が直面するセキュリティ、法的、運用上のリスクを調べます。 これには、依存関係のセキュリティの脆弱性、ライセンス コンプライアンス要件、サプライ チェーンリスク、未管理または破棄されたプロジェクト、複数のアプリケーション間で何千もの依存関係を管理する課題が含まれます。
オープン ソース ライセンスの基礎: 広範な商用使用を許可する MIT や Apache などの制限の緩やかなライセンスから、同じライセンスを使用するために派生物を必要とする GPL などのライセンスをコピーレフトするオープンソース ライセンスのさまざまなカテゴリについて学習します。 ライセンスの特性を理解することは、プロジェクトに適したオープンソース コンポーネントに関する情報に基づいた意思決定を行うのに役立ちます。
商用ソフトウェアのライセンスへの影響: プロプライエタリ ソフトウェアの制限、ソース コードの公開要件、属性の要件、ライセンスの互換性に関する問題など、さまざまなライセンスが商用ソフトウェア開発にどのように影響するかについて説明します。 この知識により、ソフトウェアを販売または配布する組織の能力に影響を与える可能性がある法的な問題を防ぐことができます。
オープンソース コンポーネントを管理するための戦略: コンポーネントインベントリの維持、脆弱性のスキャン、ライセンス義務の追跡、承認プロセスの確立、自動ツールを使用して依存関係を継続的に監視するなど、オープンソースソフトウェアを安全かつ準拠的に実装するための実用的なアプローチについて説明します。
学習の目的
このモジュールを完了すると、次のことができるようになります:
- オープンソース コンポーネントを使用して最新のソフトウェアを構築する方法と、開発速度、品質、イノベーションに提供される利点について説明します。
- セキュリティの脆弱性、ライセンス コンプライアンス、サプライ チェーンのリスク、大規模な依存関係の管理に関する課題など、オープンソース ソフトウェアに関する企業の懸念について説明します。
- MIT、Apache 2.0、GPL、BSD、その他のライセンスを含む一般的なオープンソース ライセンスについて説明し、その主な特性、アクセス許可、制限を理解します。
- 商用ソフトウェア開発のライセンスへの影響を評価し、どのライセンスがプロプライエタリ ソフトウェアと互換性があり、ソース コードの開示が必要かを理解します。
- インベントリ管理、脆弱性スキャン、ライセンス コンプライアンス チェック、新しい依存関係の承認ワークフローの確立など、オープンソース コンポーネントを管理するための戦略を実装します。
前提条件
このモジュールを開始する前に、次のことが必要です。
- ソフトウェア開発の理解: ライブラリ、フレームワーク、依存関係の使用など、アプリケーションの構築方法に関する基本的な知識。
- DevOps の概念に関する知識: 継続的インテグレーション、継続的デリバリー、およびソフトウェア開発ライフサイクルの理解。
- バージョン管理エクスペリエンス: 依存関係管理が行われる Git またはその他のバージョン管理システムに関する基本的な経験。
- ソフトウェア ライセンスの認識: 特定のライセンスを詳細に調査していない場合でも、ソフトウェアには使用を管理する法的条件があることを一般的に理解しています。
ソフトウェアを提供する組織での作業経験は有益ですが、必須ではありません。 このモジュールは、オープンソース ソフトウェアを専門的に操作するために必要な基本的な知識を提供します。