在过去的五年里,三星投入了大量精力来建立团队、文化和流程,成为开放生态系统的积极贡献者。那么,为什么一家硬件公司会进行这样的投资?其价值何在?我们如何将硬件差异化与开源和标准结合起来?
在这篇博客文章中,我们尝试澄清这些问题。具体来说,我们将详细介绍:(i) 对三星而言,开放生态系统是什么,(ii) 为什么我们认为通过标准和开源的开放性很重要,(iii) 硬件与生态系统协同设计如何成为硬件供应商成功的关键,最后 (iv) 回顾三星建立开放生态系统团队的历程以及在过程中获得的经验教训。
1. 硬件公司中的开放生态系统?
在解释开放生态系统的作用之前,我们先花一点时间来定义它。在三星,我们将“开放生态系统”(通常内部简称为 eco)定义为标准、开源和行业协同的结合。客户解决方案则是硬件和生态系统的总和。
通过将生态系统视为这三部分的结合,我们在设计新产品功能时做出了前期决策,将其视为社区努力和内部推动提供最佳硬件解决方案的结合。当我们提议或支持新功能时,我们与同行、竞争对手和客户在开放的会议、委员会和标准机构中合作,做出正确的权衡,以便最终功能能够支持尽可能多的用例。然后,我们承诺在主流开源项目中支持客户,推动必要的更改上游,并与社区合作,使代码变得有用和可维护。
当一种新技术出现时,少数先锋企业通常会构建垂直解决方案,这些方案紧密集成了硬件和软件,通过提供新的功能来作为差异化因素,但代价是将消费者锁定在单一来源上。然而,随着技术的成熟,围绕它存在一个开放生态系统是广泛采用的必要条件。以 NVMe 为例,最早的 PCIe NAND 版本依赖于供应商特定的协议和专用软件来操作硬件。一个先行者是 Fusion I/O,它生产了 PCIe 附加的 SSD 和基于主机的闪存转换层(FTL)。这种解决方案的性能前所未有,因为一般可用的 SSD 通过 SCSI 通信。随着更多供应商进入 NAND PCIe 市场,对标准的需求逐渐出现,逻辑设备接口规范(NVM Express,简称NVMe)协会应运而生。如今,NVMe 是 PCIe 附加非易失性介质的主要协议,而围绕它的开放生态系统确保了供应商和消费者可以依赖一个快速、安全、稳定的软件堆栈,这个堆栈能够支持规范的最新补充。我们在行业的不同领域中反复看到这一点。我们认为,这主要有三个原因:
2. 硬件与开放生态系统共同设计
硬件与开放生态系统共同设计是这一思维方式的自然演变。这涉及到在硬件特性构思阶段就考虑其周围的生态系统,并定义硬件如何作为业务战略的一部分得到支持。为了达到这一点,我们看到厂商需要经历两个不可并行的阶段。
第一个阶段是从硬件到生态系统的转变。这是将开放生态系统视为支持硬件特性的工具。大多数硬件公司以这种方式开始其在开源和标准方面的旅程:他们为其SoC(系统芯片)提交驱动程序,启用驱动程序中的现有功能,或将新开发的标准功能贡献给核心子系统。大多数硬件公司理解这样做的价值,并以某种方式希望成为支持其领域内硬件的开放社区的一部分。这些公司明白,实现大规模采纳的路径是通过上游Linux社区。
如果止步于此,则会带来以下几个挑战:
第二个阶段是从生态系统到硬件的转变。这是通过理解开放生态系统中可以从更好的硬件和软件交互中受益的用例来定义硬件需求。在这里,需求是在观察到生态系统中的一个问题后引入到硬件中的。关键点在于,这可能不是客户明确识别的问题(因此被请求),而是一个被广泛理解并且最终需要解决的已知烦恼。因此,企业内部需要对开放生态系统有深刻的理解,因为新特性将基于这一理解在硬件中实现。此外,一旦生态系统成为产品战略的一部分,企业自然会为标准或开源项目的健康发展做出贡献,即使这对所有人都有好处,因为这些项目被理解为业务成功的关键因素。
3. 全球开放生态系统团队(GOST)
在三星,我们建立了一个专门的团队来推动这一努力。我们称之为GOST:三星全球开放生态系统团队。最初,GOST代表全球开源团队;随着范围扩展到更多的生态系统活动,我们进行了调整。
GOST是一个全球分布的团队,专注于生态系统的不同方面。
我们为多个开源项目做出贡献,包括Linux内核、QEMU和SPDK。在这里,我们不仅仅贡献代码和承担维护责任,还积极参与推动社区的发展,担任多个开源组织委员会、领导委员会和会议组织机构的成员。
除了确保代码的高质量,我们的另一个重点是关心代码背后人员的福祉。整个开源社区本质上是一个很好的工作场所,尽管我们有时会面临激烈的讨论,我们认为这主要源于两方面的原因:(i) 我们的维护者承受的压力,包括处理大量日常补丁并确保项目的推进;(ii) 我们在公开场合进行所有对话(包括困难的对话)。在这种背景下,我们花时间指导新的成员(无论是内部还是外部的)如何开始贡献代码以及如何应对严格的代码评审。
作为一个高度分布的团队,我们在韩国、美国、印度、中国、以色列和欧洲(丹麦)均有存在,这些地点涵盖了三星在全球最大的开发中心。我们相信,这对于实现我们雄心勃勃的生态系统愿景至关重要,原因有三个主要方面:
4. 接下来会有什么?有新伙伴加入吗?
对于我们来说,下一步是继续推进现有工作,同时将团队扩展到更多领域。我们很幸运,三星是一家拥有多个业务单元的大公司,这些单元都可以从理解和贡献开放生态系统中受益。
对于外部的下一步,我们希望看到更多硬件厂商积极参与标准制定和开源项目。在会议上,我们经常遇到业界同事,他们称赞我们的工作或报告我们和其他人完成的工作的上游问题。尽管我们乐于看到社区的努力获得认可,并享受修复社区报告的问题,但我们希望这些公司能够积极参与,并将对话带到公开论坛上。这将有助于解决前文提到的回声室和行业不对齐问题,从而使更多技术获得成功。如果没有其他收获,我们希望这篇文章能为如何入手提供一个蓝图。
最后,这篇博客文章是GOST内部新博客计划中的第一篇。我们计划发布关于我们认为重要的技术内容,重点关注开放生态系统。我们计划每6到8周发布一篇深入的文章。如果你觉得这很有趣,敬请关注!