在過去的五年里,三星投入了大量精力來建立團隊、文化和流程,成為開放生態系統的積極貢獻者。那么,為什么一家硬件公司會進行這樣的投資?其價值何在?我們如何將硬件差異化與開源和標準結合起來?
在這篇博客文章中,我們嘗試澄清這些問題。具體來說,我們將詳細介紹:
對三星而言,開放生態系統是什么;
為什么我們認為通過標準和開源的開放性很重要;
硬件與生態系統協同設計如何成為硬件供應商成功的關鍵;
最后回顧三星建立開放生態系統團隊的歷程以及在過程中獲得的經驗教訓。
1. 硬件公司中的開放生態系統?
在解釋開放生態系統的作用之前,我們先花一點時間來定義它。在三星,我們將“開放生態系統”(通常內部簡稱為 eco)定義為標準、開源和行業協同的結合。客戶解決方案則是硬件和生態系統的總和。
開源 :對于我們來說,開源嚴格指的是那些被廣泛使用的、主流的開源項目,并且這些貢獻會被合并到上游代碼中。我們不認為分叉項目并在其上添加功能能夠真正為開放生態系統做出貢獻。分叉可以是開發新功能的一種方式(我們確實這樣做!),但最終目標始終是將代碼推送到上游并合并到主線中,以便通過企業發行版提供。在少數情況下,我們確實會啟動新項目,以支持不同客戶的需求,同時保持健康的社區氛圍。一個例子就是 xNVMe。
標準 :我們參與了多個與我們產品相關的標準機構,并在其中一些機構的領導團隊中進行貢獻和參與。
行業協同 :在開源和標準化工作中,一個主要挑戰是共同基礎設施應能夠涵蓋多個用例。這涉及三個方面的問題:(i) 不同公司可能有共同的用例,但內部采用不同的處理方式;(ii) 標準支持的新功能可能對一個或多個公司有意義,但對開源項目所需的更改可能會帶來重大變化;(iii) 不同公司在相同或不同的標準機構中實現了類似但不完全相同的方法來解決相同的用例。在這些情況下,行業需要進行權衡和妥協,以便覆蓋盡可能多的用例,同時使項目和標準易于維護。
通過將生態系統視為這三部分的結合,我們在設計新產品功能時做出了前期決策,將其視為社區努力和內部推動提供最佳硬件解決方案的結合。當我們提議或支持新功能時,我們與同行、競爭對手和客戶在開放的會議、委員會和標準機構中合作,做出正確的權衡,以便最終功能能夠支持盡可能多的用例。然后,我們承諾在主流開源項目中支持客戶,推動必要的更改上游,并與社區合作,使代碼變得有用和可維護。
當一種新技術出現時,少數先鋒企業通常會構建垂直解決方案,這些方案緊密集成了硬件和軟件,通過提供新的功能來作為差異化因素,但代價是將消費者鎖定在單一來源上。然而,隨著技術的成熟,圍繞它存在一個開放生態系統是廣泛采用的必要條件。以 NVMe 為例,最早的 PCIe NAND 版本依賴于供應商特定的協議和專用軟件來操作硬件。一個先行者是 Fusion I/O,它生產了 PCIe 附加的 SSD 和基于主機的閃存轉換層(FTL)。這種解決方案的性能前所未有,因為一般可用的 SSD 通過 SCSI 通信。隨著更多供應商進入 NAND PCIe 市場,對標準的需求逐漸出現,邏輯設備接口規范(NVM Express,簡稱NVMe)協會應運而生。如今,NVMe 是 PCIe 附加非易失性介質的主要協議,而圍繞它的開放生態系統確保了供應商和消費者可以依賴一個快速、安全、穩定的軟件堆棧,這個堆棧能夠支持規范的最新補充。我們在行業的不同領域中反復看到這一點。我們認為,這主要有三個原因:
供應鏈與多供應商 :當一種新的差異化技術出現時,成為首發者的好處往往超過了依賴單一供應商的風險。隨著更多供應商進入市場,差異化因素逐漸稀釋,單一來源的風險通常是不值得的。問題在于:供應商如何圍繞一個協議對齊、滿足消費者的行為預期,同時管理自身進入全新技術的風險?答案是標準、開源和一個開放的行業社區來理解共同的使用案例。除了分散風險,開放合作還完全消除了信任缺失問題。這個開放生態系統為消費者提供了穩定的多供應商供應鏈,并減少了供應商的硬件碎片化,有效地減少了需要驗證和認證的庫存單位(SKU)數量。
軟件穩定性、安全性和中立性 :依賴主流開源項目來支持標準具有固有的軟件質量。這些項目,如 Linux 內核,在合并新補丁之前實施嚴格的代碼審查過程。此外,多家公司和企業 Linux 供應商在其上運行持續集成,以防止回歸問題。此外,主流項目通常由那些在添加功能時能夠保持中立立場的個人維護,這些人通常知道如何保持代碼庫的穩定性。由于討論總是在開放的論壇中進行,任何偏袒某個公司的跡象都是非常罕見的,通常會在特定的開源社區中得到解決。這允許供應商和消費者發送補丁來支持標準的新補充。需要注意的是,我們在這里指的是核心、基礎設施開源項目(例如 Linux 內核、核心庫、工具鏈),這些項目為硬件支持提供了基礎。在此基礎上,消費者通常會添加其差異化的軟件和服務,這些是他們自己的客戶所增值的部分。
新技術采納的共享風險 :向硬件產品添加新特性是一個需要多年的努力和大量投資的過程。支持不同客戶的不同需求會增加復雜性和碎片化,從而使這一投資變得不可持續。標準有助于解決這一問題。雖然將特性添加到標準中也是一個多年的項目,但廠商和消費者需要在開放環境中達成一致并進行權衡,這樣可以減少錯誤和碎片化,使得一個特性可以同時針對不同的用例。這種情況在這些特性被實現到主線開源項目中時尤為明顯,因為不同公司會合作加速特性的采納。在硬件產品上市時,生態系統已經到位。這將風險分攤到多家公司之間,使得更復雜的特性得以成功部署。
2.硬件與開放生態系統共同設計
硬件與開放生態系統共同設計是這一思維方式的自然演變。這涉及到在硬件特性構思階段就考慮其周圍的生態系統,并定義硬件如何作為業務戰略的一部分得到支持。為了達到這一點,我們看到廠商需要經歷兩個不可并行的階段。
第一個階段是從硬件到生態系統的轉變。這是將開放生態系統視為支持硬件特性的工具。大多數硬件公司以這種方式開始其在開源和標準方面的旅程:他們為其SoC(系統芯片)提交驅動程序,啟用驅動程序中的現有功能,或將新開發的標準功能貢獻給核心子系統。大多數硬件公司理解這樣做的價值,并以某種方式希望成為支持其領域內硬件的開放社區的一部分。這些公司明白,實現大規模采納的路徑是通過上游Linux社區。
如果止步于此,則會帶來以下幾個挑戰:
特性回聲室 :當廠商通過硬件到生態系統的視角來看待世界時,他們所看到的只是如何通過硬件架構增加新特性并區分自己的產品。通常,這些進步是內部團隊提出優化和客戶提出新用例的組合結果。在這種情況下,硬件特性被設計和實現。在最壞的情況下,硬件在公司內部還沒有人審視這些特性如何融入生態系統時就已經完成生產。你需要非常幸運才能讓這個過程最終形成標準,并納入任何主線項目。通常,這會導致SKU(庫存單位)碎片化,因為硬件僅針對特定客戶,并需要專門的軟件棧來支持。
行業不對齊 :當一種新技術成為主要的差異化點時,一些公司往往會對行業和開放社區的反饋視而不見。這可能是由于對用例的誤解、對技術實際價值的夸大,或低估了支持該特性的標準或開源項目的變更范圍。與行業的不對齊是有風險的,因為它會給社區帶來壓力,要求支持一種最終沒有被使用的技術,并繼續在項目演進中進行維護。
信任缺失 :最終,上述所有問題會導致公司失去社區的信任,因為它被視為只關心推動自身特性,而忽視了對社區其他部分的影響。尤其是在主線開源項目中,維護健康的代碼庫比支持最新的協議特性更為重要。
第二個階段是從生態系統到硬件的轉變。這是通過理解開放生態系統中可以從更好的硬件和軟件交互中受益的用例來定義硬件需求。在這里,需求是在觀察到生態系統中的一個問題后引入到硬件中的。關鍵點在于,這可能不是客戶明確識別的問題(因此被請求),而是一個被廣泛理解并且最終需要解決的已知煩惱。因此,企業內部需要對開放生態系統有深刻的理解,因為新特性將基于這一理解在硬件中實現。此外,一旦生態系統成為產品戰略的一部分,企業自然會為標準或開源項目的健康發展做出貢獻,即使這對所有人都有好處,因為這些項目被理解為業務成功的關鍵因素。
3.全球開放生態系統團隊(GOST)
在三星,我們建立了一個專門的團隊來推動這一努力。我們稱之為GOST:三星全球開放生態系統團隊。最初,GOST代表全球開源團隊;隨著范圍擴展到更多的生態系統活動,我們進行了調整。
GOST是一個全球分布的團隊,專注于生態系統的不同方面。
我們為多個開源項目做出貢獻,包括Linux內核、QEMU和SPDK。在這里,我們不僅僅貢獻代碼和承擔維護責任,還積極參與推動社區的發展,擔任多個開源組織委員會、領導委員會和會議組織機構的成員。
除了確保代碼的高質量,我們的另一個重點是關心代碼背后人員的福祉。整個開源社區本質上是一個很好的工作場所,盡管我們有時會面臨激烈的討論,我們認為這主要源于兩方面的原因:
1)我們的維護者承受的壓力,包括處理大量日常補丁并確保項目的推進;
2)我們在公開場合進行所有對話(包括困難的對話)。在這種背景下,我們花時間指導新的成員(無論是內部還是外部的)如何開始貢獻代碼以及如何應對嚴格的代碼評審。
作為一個高度分布的團隊,我們在韓國、美國、印度、中國、以色列和歐洲(丹麥)均有存在,這些地點涵蓋了三星在全球最大的開發中心。我們相信,這對于實現我們雄心勃勃的生態系統愿景至關重要,原因有三個主要方面:
關注對齊與角色與責任 :領導一個分布式團隊要求明確關注對齊而不是任務管理。這有助于培養良好的文化,領導者提供業務和產品方面的重要性明確性,而不同的生態系統團隊則可以推動計劃和執行。由于同一項目中的團隊可能分布在不同地區,定義角色和責任(RnR)是自然的。在三星,我們的戰略是不斷調整GOST的活動與業務戰略的對齊,然后向團隊提供明確的指導,這成為我們的戰術和執行的一部分。
本地化需求 :盡管分布式工程團隊可以高效運作,但在規劃、生態系統和產品(硬件 + 固件)方面推動一個完全分布的垂直戰略仍然是一個挑戰。這在生態系統團隊是唯一的分布式團隊的地方尤為明顯(這種情況相對較為常見)。面對面的互動、白板討論或單純的人際交流在推動新的雄心勃勃的項目時發揮了重要作用。在三星,我們從一開始就設計了GOST為分布式團隊。大多數成員靠近開發中心,但我們也有完全遠程的同事。我們相信,維護一個能夠與相關本地團隊互動的分布式團隊對長期成功至關重要。
獲取全球人才 :這是一個“在人才所在之處招聘人才”的老問題。開源生態系統社區早在多年前就開創了遠程工作模式,由于這是我們針對GOST的人才池,我們自然會遵循這一理念。
4. 接下來會有什么?
有新伙伴加入嗎?
對于我們來說,下一步是繼續推進現有工作,同時將團隊擴展到更多領域。我們很幸運,三星是一家擁有多個業務單元的大公司,這些單元都可以從理解和貢獻開放生態系統中受益。
對于外部的下一步,我們希望看到更多硬件廠商積極參與標準制定和開源項目。在會議上,我們經常遇到業界同事,他們稱贊我們的工作或報告我們和其他人完成的工作的上游問題。盡管我們樂于看到社區的努力獲得認可,并享受修復社區報告的問題,但我們希望這些公司能夠積極參與,并將對話帶到公開論壇上。這將有助于解決前文提到的回聲室和行業不對齊問題,從而使更多技術獲得成功。如果沒有其他收獲,我們希望這篇文章能為如何入手提供一個藍圖。
最后,這篇博客文章是GOST內部新博客計劃中的第一篇。我們計劃發布關于我們認為重要的技術內容,重點關注開放生態系統。如果您覺得這很有趣,敬請關注!
-
開源
+關注
關注
3文章
3309瀏覽量
42471 -
生態系統
+關注
關注
0文章
702瀏覽量
20723 -
三星
+關注
關注
1文章
1521瀏覽量
31207
原文標題:以三星的全球開放生態系統推動創新
文章出處:【微信號:sdschina_2021,微信公眾號:三星半導體和顯示官方】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論