简介

已完成

开源软件 已成为新式软件开发的基础。 从 Web 框架和数据库到作系统和开发工具,开源组件为当今构建的大多数应用程序提供支持。 了解如何在管理相关风险的同时有效地实现开源软件对于开发团队和组织至关重要。

但是,使用开源软件引入了组织必须解决的重要注意事项。 安全漏洞许可证符合性法律义务供应链风险 都需要仔细注意。 未能正确管理其开源依赖项的组织可能会面临安全漏洞、法律责任、意外成本和运营中断。

本模块提供有关在企业环境中实现开源软件的综合指导。 你将了解如何使用开源组件构建新式软件,了解企业对安全和许可的担忧,探索常见的开源许可证及其含义,并发现有效管理开源软件的策略。

学习内容

本模块介绍在专业环境中使用开源软件的基本知识:

  • 了解新式软件开发: 你将探讨如何将原始代码与开源库、框架和工具相结合来构建当代应用程序。 你将了解为什么组织选择开源组件并了解它们提供的优势,包括更快的开发、经过验证的解决方案、社区支持和节省成本。

  • 企业对开源软件的担忧: 你将检查组织在使用开源组件时面临的安全、法律和运营风险。 这包括依赖项中的安全漏洞、许可证符合性要求、供应链风险、未处理或放弃的项目,以及跨多个应用程序管理数千个依赖项的挑战。

  • 开源许可证基础知识: 你将了解不同类别的开放源代码许可证,从允许广泛的商业用途的 MIT 和 Apache 等宽松许可证,到需要衍生作品才能使用相同许可证的 GPL 等复制许可证。 了解许可证特征有助于就哪些开源组件适用于项目做出明智的决策。

  • 商业软件的许可证影响: 你将了解不同的许可证如何影响商业软件开发,包括对专有软件的限制、披露源代码的要求、归属要求和许可证兼容性问题。 此知识可防止影响组织销售或分发软件的能力的法律问题。

  • 管理开源组件的策略: 你将探索实现开源软件安全合规的实际方法,包括维护组件清单、扫描漏洞、跟踪许可证义务、建立审批过程,以及使用自动化工具来持续监视依赖项。

学习目标

完成本模块后,可以执行以下操作:

  • 了解如何使用开源组件构建新式软件,以及它们为开发速度、质量和创新提供的优势。
  • 介绍企业 对开源软件的担忧,包括安全漏洞、许可证符合性、供应链风险以及大规模管理依赖项的挑战。
  • 介绍常见的开源许可证 ,包括 MIT、Apache 2.0、GPL、BSD 和其他许可证,了解其关键特征、权限和限制。
  • 评估商业软件开发的许可证影响,了解哪些许可证与专有软件兼容,并且需要源代码披露。
  • 实施管理开源组件( 包括清单管理、漏洞扫描、许可证符合性检查以及为新依赖项建立审批工作流)的策略。

先决条件

在开始本模块之前,应具备:

  • 了解软件开发: 基本了解应用程序的生成方式,包括库、框架和依赖项的使用。
  • 熟悉 DevOps 概念: 了解持续集成、持续交付和软件开发生命周期。
  • 版本控制体验:具备 Git 或其他版本控制系统的基础经验,且涉及依赖项管理。
  • 了解软件许可: 一般理解软件具有管理其使用的法律条款,即使你尚未详细研究特定许可证。

在提供软件的组织中的经验是有益的,但不是必需的。 本模块提供专业使用开源软件所需的基本知识。