登录 / 注册 Account

云原生应用

什么是 SDK?

软件开发套件(SDK)是通常由硬件平台、操作系统(OS)或编程语言的制造商提供的一套工具。SDK 可协助开发人员创建特定于平台、系统或编程语言的应用。它就像是您购买柜子时随板材一同提供的工具包,让您能够自行组装。您所需的工具它都有,而具体所含的内容则因制造商而异。 

一个基本的 SDK 通常由编译器、调试器和应用编程接口(API)组成,但也可能包含以下任意内容:

  • 文档
  • 编辑器
  • 运行时/开发环境
  • 测试/分析工具
  • 驱动程序
  • 网络协议

好的 SDK 将为开发人员提供在为特定产品创建应用时需要的组件。一些 SDK 还会包含示例或基本测试项目,帮助开发人员尽快上手。

软件开发套件的示例包括 Java 开发套件(JDK)、Windows 7 SDK、MacOs X SDK 和 iPhone SDK。例如,Kubernetes Operator SDK 可以协助您开发自己的 Kubernetes Operator。它包含高级 API、用于创建框架和生成代码的工具,以及涵盖常见 Operator 用例的扩展。 

大部分 SDK 都包含 API,用于在源代码层面上连接新应用或项目。通常也随附示例代码,让开发人员可借助示例程序和库来学习如何构建基本的程序。随后,再开发更为复杂的应用。 

一些 SDK 包含阐述 API 用法的文档,以及教程、常见问题和示例图解,因为开发人员有时需要一些时间才能学会使用新的 SDK。因此,直观易用的编程接口(或详尽的说明文档)有助于鼓励开发者选用某一家公司的特定语言,而非竞争对手提供的方案。

同样,SDK 也是帮助提供商向开发人员介绍自己的产品的利器,并能鼓励他们利用其平台或 OS 来创建应用。所以,大多数 SDK 是免费使用的,开发人员只需下载就能立即开始编程。 

需要考虑的方面

一些 SDK 可能附有相关的规则或协议,必须同意并提交后才能使用,尤其是处于 Alpha 或 Beta 阶段的新产品,或者包含不对外公开(非开源)的算法的软件。SDK 也可能受许可协议约束,因此创建的软件有可能无法在不兼容的许可证下发布。

开发人员在挑选使用哪些 SDK 进行开发时应仔细考虑上述问题。例如:

  • 使用专有许可证的 SDK 不适合用于开发开源软件。
  • 具有通用公共许可证(GPL) 的 SDK 不能用于专有应用。
  • 利用较宽松公共许可证书(LGPL) 处理含有专有代码元素的项目时,应遵循相关的警告。 

为什么选择红帽?

开源应用不断成为业余和专业人士青睐的开发首选,因为它们的 SDK 能够用于编写新颖的设计和功能扩展,同时也便于与社区的其余成员共享。 

红帽汇聚了应用开发中出色的工具、解决方案和服务,而且采用开源方式。不论您是在寻找构建应用所需要的平台(红帽 OpenShift 容器平台)或运行时环境(红帽运行时),还是开发、测试和部署应用所需的各种工具(红帽 CodeReady Studio),红帽都能满足您的一切需求。

进阶学习:自动化生成 API 文档和 SDK