2022 年 5 月 25 日
虽然开源软件以深受爱好者和业余开发人员的青睐而闻名,但企业界在关键任务环境中采用开源已有相当长的时间。
企业选择开源软件的部分原因包括:
可以说,开源技术最大的优势之一在于其庞大而忠诚的开发人员社区。广受欢迎的开源项目都拥有庞大的开发人员群体,他们致力于修补和改进技术。开发人员之所以青睐开源技术,是因为它具备极具竞争力的特性和创新能力,而这正是传统软件难以企及的。
对于缺乏内部开发团队或 IT 资源以自主构建软件的公司来说,开源技术尤其有益。另一种情况是,拥有这些资源的公司采用开源技术的目的是为员工提供他们更感兴趣的尖端技术。
开源技术前景广阔。但也并非没有挑战。根据 2016 年 North Bridge 和 Black Duck 的《开源未来》研究报告,近 33% 的公司没有识别、跟踪或修复已知开源漏洞的流程,这可能会使他们面临安全威胁。
开源技术对大数据社区非常有利。借助其现成可用的代码,开源软件使企业能够更快地将产品推向市场。但它始终伴随着一定程度的风险。2014 年的 OpenSSL Heartbleed 安全漏洞就是其中一个例子。
尽管拥有众多贡献者带来了诸多优势,但开源软件同样也存在常见的编程错误和安全疏漏。大多数软件工程师不会跟踪开源技术使用情况,这导致许多企业意识不到自己可能面临的安全和合规风险。
要让开源技术完全可用且有效,大多数企业需要对其进行一定程度的集成与支持。这说起来容易做起来难,因为从某种意义上讲,开源项目永无止境。总有新的工作要做。此外,开源产品通常并非那么易用。使用开源技术可能需要进行培训。与现有应用程序和硬件的兼容性则是另一个顾虑。大多数公司最终都通过其他公司来使用开源技术。
Oracle、Databricks 和 DataStax 等公司一直以这种方式使用开源技术。这些公司将开源技术引入企业,并使其完全可用。这带来了巨大的好处,因为这些公司通过代码提交和各种其他改进为开源技术增添了价值。
在 2017 年 Open Source Summit 上,Linux 创始人 Linus Torvalds 对企业开发人员对开源项目的贡献和所做的工作表示了认可,并对此表示欢迎。“让企业参与开源项目非常重要,”他说。“这是我一直非常欣慰的一点。”
2017 年,Oracle 被评为在开发和维护开源软件方面发挥重要作用的 35 强公司之一。2010 年,Oracle 通过收购 Sun Microsystems,获得了当时世界上最受欢迎的一些开源技术。过去几年间,我们对开源大数据技术的支持一直是我们的主要增长驱动因素之一。Oracle 将继续支持开源开发和开源基金会。
在大数据领域,Oracle 在与开源软件的合作方面尤为积极。下一节将介绍 Oracle 如何将开源技术用于我们大数据平台的各个领域。在 Oracle,大数据处理涉及三个关键步骤:
我们的许多大数据客户明确要求我们提供采用开源技术的产品。Oracle 一直致力于开发、支持和推广开源技术。Oracle 数据集成产品(如 Oracle Data Integration 和 Oracle GoldenGate)以及许多其他平台都采用了开源技术。
我们还注意到,许多客户希望对其开源框架以及不断演变的支持技术进行现代化改造。在数据集成方面,我们目前支持大约二十五种不同的开源技术、数据源、目标端和执行框架。我们支持的部分技术包括:
如今,客户关注的是其大数据产品的成熟度水平。需要考虑的最重要因素之一是供应商是否围绕大数据框架制定了可接受的支持策略。供应商对开源技术的承诺绝不能敷衍了事,这一点至关重要。
除了具备优秀的产品成熟度,大数据业务解决方案通常组合使用开源技术与非开源技术。企业一直在借助开源解决方案解决大数据问题,但这需要投入大量的时间、精力和专业知识。
在适用的场景下,您不仅可以,而且应当利用开源技术。但大多数情况下,您还需要与各类其他技术供应商进行合作。
例如,在构建数据湖的早期阶段,企业希望利用 Kafka 这类产品,因为它能够接收多种输入并将其分发到多种输出。但要让 Kafka 更加可靠和稳健,就需要 Oracle GoldenGate 这样的技术。虽然 GoldenGate 并非开源技术,但 GoldenGate 与 Kafka 结合使用,比将 Sqoop 等产品与 Kafka 结合使用的数据湖摄取方案更好,因为 GoldenGate 是远比 Sqoop 更稳健、更成熟的产品。
从数据管理的角度来看,Oracle 的大数据产品堆栈在很大程度上基于开源技术。
Oracle 选择这种方法是为了充分利用开源技术创新,并进一步控制向客户提供的功能。在大数据领域,该技术栈中的多个组件都在持续演进。这就是我们决定推出自己的开源 Hadoop 发行版的原因。
我们还相信,使用开源软件让 Oracle 能够为客户提供更好的支持。与此同时,我们也知道其他软件生态系统正在开发有趣的、不断演进的开源项目。正因如此,Oracle 持续为众多不同的开发社区贡献力量。例如,Oracle 的开发工作正在向使用对象存储作为数据湖的方向演进。
Oracle 积极为开源社区做贡献,并向客户提供我们自身的一些知识产权 (IP),以增强性能和功能。
Oracle 不仅仅采用了 R 语言,我们还对其进行了实质性的改进。Oracle 提供支持的开源 R 语言再分发版本(可免费下载)兼容数据库和 Hadoop 运行环境,并已通过并行化处理实现更快的运行速度。
R 语言可以在多个节点和集群上运行,而不仅限于单台机器,因此客户可以在更多数据集上运行更大、更复杂的算法,而无需依赖采样。Oracle 对 R 语言的改进使用户能够使用 R 语法,同时在底层提供不同的实现方式,使其具备可扩展性和高效性能。
此外,Oracle 还对 R 语言进行了以下改进:
Oracle 也已扩展到 Hadoop 领域,推出了面向 Hive 的 R 接口。
Oracle 对 R 语言、Hadoop 和开源技术的承诺不仅体现在技术上。当 R 语言社区在 2015 年成立 R Consortium 时,Oracle 就是创始成员之一。R Consortium 的成立旨在为 R 开源社区提供福利和支持。Oracle 持续支持 R 语言的发展,并鼓励采用 R 包质量方面的实践范例。
Oracle Spatial 和 Oracle Graph 分析服务及数据模型支持基于 Apache Hadoop 和 NoSQL 数据库技术的大数据工作负载。两者都整合了开源库和组件来完善我们的产品。Oracle 已将其中多个组件用于基础设施用途,主要是基于 Apache 的项目。
Oracle 将这种关系视为互利共赢。例如,我们的空间/图形分析部分采用定制方案,但我们加快了这一进程,这得益于一个名为 Green-marl 的开源项目,它是一种用于图形数据分析的领域特定语言,使我们能够更快地响应客户的分析查询。
Oracle 为开源技术做出贡献的典型做法是:利用开源技术,进行定制化开发,并进一步优化提升。以下是 Oracle 为开源技术做出的贡献的示例:
注:为免疑义,本网页所用以下术语专指以下含义: