开源
什么是开源?
开源是为一定目的而打造和分发的软件,可供多个团队和开发人员自由修改,以及,在软件持续开发和更新的过程中,增加新功能或修复程序。
开源与其他模式有哪些不同?
开发人员打造、发行及更新开源软件时,其设计意图是让开发人员社区能够自由推动软件的持续发展。免费提供以未编译格式呈现的软件源代码,方便有志于将自己的专业知识用于软件演进或修改的人们做出贡献
对开源的期待有哪些?
开源的另一项特色是用户能够打造可在不同操作系统或在线环境中运行的版本。对开源软件的唯一期待就是,参与软件开发的人能够将所作的更新供其他人取用。
开源的历史
开源软件实际上比商业发行产品早几十年,其起源可追溯到 1953 年的 A-2 编译器系统。在 20 世纪 70 年代之前盛行的理论是,计算硬件本身是商品,而在其上所创建和装载的程序并不是。商用软件(购买渠道通常是邮购服务的商品目录)发行之后,对于商业、学术和爱好型计算机来说,开源始终是普遍思维倾向。
其中一个广为人知的例子是 AT&T 在 20 世纪 70 年代首次发行的 UNIX 操作系统。之后陆续发行了商业、专有和封闭源代码版本的 UNIX,尽管在 1983 年启动的 GNU 项目才打造和发布了 UNIX 的软件。在 1991 年,全新、自由、开源内核称为 LINUX(以创建者 Linus Torvalds 命名),快速(且持续)成为近乎通用的标准。
开放软件基金会(Open Software Foundation,简称 OSF)于 1988 年成立,作为非营利组织打造及维护 UNIX 开发的标准。其之后与 X/Open 合并,成为 The Open Group。The Open Group 拥有涵盖硬件制造商和软件开发人员的近 1,000 名成员,提供专业认证并维护单一 UNIX 规范(Single UNIX Specification,简称 SUS)和开放敏捷架构标准 (Open Agile Architecture Standard) 等无数标准。
开源模式有哪些优势?
从企业层面来说,开源开发为 IT 专业人员、用户和开发人员自身带来无数优势。功能请求实施的速度和敏捷性、轻松扩大规模的能力,以及成本效益,都能够提供诸多好处。
开源开发模式更像是云本身。修复程序和功能可在多个开发人员或团队之间分发,并由其他人确认和编译。专用资源很灵活,因此可在必要时加入更多团队。通常,最初是一小组人参与开源软件的打造,而持续的发展则有赖于日益壮大的社区。
这一点也会吸引更高水准的人才。这些人才能够打造出与众不同的全新解决方案来应对开发过程中的挑战。负责开源软件后续维护的小组不必等供应商提供修复程序或新功能,他们完全有能力靠自己推出这些成果。
开源软件也能够提供可观的成本效益和优势。大多数软件是免费分发的。开源持续开发所需的时间和资金投入会由整个社区共同承担。供应商束缚不再是问题,用户不必再受第三方合约的约束。
可以说,最重要的优势是让企业发展真正跟随创新节奏。开源软件能够更好地控制成本、加速开发和实施,且还能够有效众包持续维护,其所拥有的优势不言自明。
自由软件与封闭源代码软件与开源软件
当前可用的所有软件,不论是为商用还是在公有领域发行,基本上都可归入以下三类定义。“封闭源代码”软件的定义应该最好解释;而“自由”和“开源”有时可互换,虽然二者间存在一些本质差异。二者之间的交叉如此多,因此在描述自由和开源的软件时,通常会使用术语 FOSS。
封闭源代码软件
封闭源代码软件通常经过加密,编译时使用的是受保护格式。这类软件在提供时会附上特定协议,规定未得到明确允许,源代码不可供反编译、修改、重新编译或重新分发。最能说明封闭源代码软件的一个例子是商用计算机操作系统,如 Microsoft Windows 或 Apple 的 Mac OS。这些都被视为开发者的知识产权,且这两家公司都付出相当大努力来保护他们的成果。
自由软件
自由软件拥有非营利自由软件基金会 (Free Software Foundation, FSF) 所定义的“四项基本自由”。也就是,可按照自己愿意、为满足任何目的而自由运行软件;自由地学习或改变源代码;自由地重新分发原始软件;以及自由地重新分发修改后的版本。尽管名称如此,“自由(免费)”指的是这四项自由,而不是实际价格;还有许多商用发行的自由源软件产品。
开源软件
20 世纪 90 年代末成立了开放源代码促进会 (Open Source Initiative),为的是摆脱开发人员社区认为的、自由源软件存在的限制,其给出了开源软件的定义。如上所述,开源既是开发人员秉持的理念,也是向其他用户所授予的许可。开放源代码促进会指出,软件可供免费重新分发、源代码为公开可用信息、可修改也可用不同格式分发,其不会区别对待任何个人或团体,且不会以任何方式限制其他软件的使用。
开源开发模式是什么?
开源开发模式由区别于传统模式的流程和价值所界定,即便传统开发组织也越来越多地采用开源模式。开源开发的重点在于协作、同行评审以及“早发布、勤发布”理念,只有这样才能够保持更频繁的更新。
利用开源开发的功能请求处理会持续进行。功能、修复程序和更新相关提示跳出时,开源模式的功能请求处理即表明,提议会先经过一小组人的讨论和确认,之后再进入设计和实施环节。新版本编译完成后,会在整个社区范围内共享内部测试版,以供测试、反馈和进一步输入。
开源模式的核心原则是几个人或几个小组共同承担源代码的创建和维护。这些更新会在多个小组之间共享,为的是在整个团队范围内完全透明地测试和确认代码。项目进行到可实施阶段时,代码会传递到软件的维护人员或管理人员,由他们负责确保所有新提交的代码符合项目的标准。
开源软件解决方案可应用在哪些领域?
曾有一时,IT 企业近乎集体向开源软件采用迁移,有 95% 的此类企业将开源用于基础设施更新改造、应用开发和 DevOps。
LINUX 操作系统就是其中一个例子,完美诠释了开源模式,不仅是环境本身,还包括成百上千个为在其中运行而设计的开源应用。其当然不是唯一一个基础设施示例:Xen、KVM 和 OpenStack 也采用开源模式。
在大数据方面,Apache 的 Hadoop 平台和 Spark 数据分析以及 MongoDB 的 Atlas 数据库,都是开源模式下所开发软件的极佳例证。机器学习应用的例证包括 Apache MXNet、PyTorch 和 TensorFlow。
当前几近普及的开源软件的例证还包括 Web 开发工具和架构,例如 WordPress 和 PHP、jQuery、Angular 和 Ruby on Rails。在移动应用方面,Google 的 Android OS 得到广泛采用,而 Apache Cordova 是用于跨平台移动应用开发的热门开源架构。
开源与 HPE
开放式协作嵌入了 HPE 的 DNA。我们相信开源技术和社区有助于以安全的方式大规模交付创新解决方案。HPE 提供诸多开源软件解决方案,可满足各类企业级应用需求。HPE 为支持、使用和参与多个开源项目而感到自豪。
Chapel 是一种以可扩展计算为目标的并行编程语言,具备可移植性,适用于从台式机和笔记本电脑到最高级别的高能计算应用。
SmartSim 支持适用于传统高性能计算应用的机器学习 (ML) 和人工智能 (AI),为研究人员提供在线分析、模型引导和可视化等其他模拟功能。
KubeDirector 是开源 Kubernetes 自定义控制器,能够轻松地在标准 Kubernetes 群集中部署有状态应用。其用元数据和配置项目来定义应用特性,打造出更易于部署和更新的应用。
SPIFFE 是通用身份控制平台,是云原生计算基金会 (Cloud Native Computing Foundation) 的一部分。从本质上说,这是一套标准,可用于通过平台不可知的加密身份来验证动态和异构环境中的服务。SPIRE是一种开源系统,用于在各类环境中实施 SPIFFE。