Categories
程式開發

華為開源的道和術


從2019 年華為全面提出軟件開源戰略以後,一年多時間華為開源多點開花。開源這項事業不是一項短期工程,卻能為世界帶來深遠的影響。華為為什麼要做開源?華為開源項目背後的故事是什麼?開源與商業之間有什麼糾葛和聯繫?帶著這些問題,InfoQ 在2020 華為全聯接大會上採訪了華為雲與計算開源業務總經理、開放原子開源基金會TOC(技術監督委員會)主席堵俊平。

華為開源的道和術 1

軟硬件的巨變,唯有開源能直面

在過去的十多年裡,軟件開發的各個領域發生了巨大的變化。

  • 雲計算從虛擬機到容器再到雲原生,十年時間已經迎來送往了多個時代;
  • 數據庫從關係型到NoSQL 再到NewSQL,商業型數據庫、開源數據庫互相印證一路前行;
  • 運維們也從“人肉運維”到DevOps、AIOps,引發了行業性的被替代危機。
  • 即便是在相對穩定的軟件架構領域,以十年為單位去回顧信息產業的發展歷史,也能發現每個時代都有各自的計算機架構模式。

“全面雲計算”時代的到來,計算機硬件的性能提升速度已經趕不上軟件所需的算力極致。隨著5G 的又一次時代降臨,終端接入設備呈現了超百倍的增長,直接帶來的就是超過80% 的非結構數據的增加,數據的存儲傳輸計算分析應用都對雲、邊緣、大數據、AI 等創新場景帶來了全新的挑戰。

從全面雲計算到5G 設備的普及,我們可以認為大前提​​是全球算力分佈的一個變化。從60 年代大型機的集中式算力到互聯網時代的分佈式算力,再到當前5G 時代的多算力,本質上都是算力資源的分配方式。全面雲計算時代其實是雲、邊、端一體化的時代,而5G 設備的通信能力在其中必不可少,讓創新場景成為可能。

整體上來說,過去幾十年間從底層的算力分配到上層的應用都在快速發展,軟件尤其是基礎軟件也要去適應這種潮流趨勢。從華為的角度看,在這個時代潮流中既有機遇也有挑戰。一方面華為在網絡通信領域的技術積累非常豐厚,另一方面如何利用這種優勢去聯接開發者共同打造創新的行業生態是接下來要探索的問題。華為選擇了以開源的方式去聯接合作夥伴和千萬開發者,共同探索行業破局之道。

2019 年,華為全面提出了軟件開源的戰略,而其中開源的重心則落在了基礎軟件層面。華為不是這個商業模式的創新者,Intel、Nvidia、ARM 的成功不約而同地都構築在強大的硬件能力和繁榮的軟件生態之上,開源也是他們繁榮軟件生態的重要實現手段之一。一年時間,華為開源做到了多點開花,但這背後卻遠非旦夕之功。

三個“open”和一大戰略

在7 月召開的線上開源峰會與嵌入式Linux 大會上,Linus 談到了為開源操作系統尋找未來維護者時的種種挑戰。這次討論很快就涉及到了一個令人不安的問題:在目前這一代維護者逐漸老去之後,Linux 項目將走向何處?面對Linus 等這批五零後、六零後項目管理者,Hohndel 提到:“我們這個社區終歸要考慮代際變更的問題。到那時,我們該怎麼辦?”

這次線上的討論沒有得出結論,但堵俊平在採訪中卻給出了一個數據:

今年8月Linux kernel 5.8 版本發布,華為在內核代碼貢獻上全球排名第二。

華為軟件全面開源的戰略始於一年前,但這個內核代碼貢獻量的排名卻源於過去十多年的貢獻積累。

開發者們可能發現華為最近一段時間密集性地發布、開源了一些突破性的技術,但這其實是得益於過去十年,華為分佈在全世界各個研究所的數千工程師持續不斷的研發投入。除了前面提到的Linux 內核,華為內核工程師ARM 64 架構、內核缺陷發現、容器核心功能Cgroup 等項目上都有持續貢獻,擁有超過20 位的Linux 內核maintainer,這不是簡單地砸錢就可以取得的成績和社區的認可。

在此之前,華為也有一些Apache 的項目比如 服務梳,在雲原生領域的KubeEdge 等開源項目在試水,在這個過程中華為上下也凝聚了一個共識:

硬件開放,軟件開源應該成為全公司的戰略。如果要把生態做好,就一定要用開源開放的方式。硬件再強大,軟件再優秀,如果構建不起良好的生態,沒有開發者、合作夥伴的共建,是很難走得下去的。

堵俊平向筆者介紹了華為過去一年來的三大開源項目,分別是去年12 月開源的Linux 發行版openEuler 和今年6 月底開源的企業級數據庫openGauss、數據虛擬化引擎openLooKeng。這三個“open”分別承擔了數據驅動創新的三個場景:openEuler 協調不同架構之間數據的流動;openGauss 高效地存儲、管理和運維數據庫;openLooKeng 成為連接各種不同數據源的虛擬化引擎分析工具。

openEuler:全場景協同的統一操作系統

軟件行業相伴相生的兩條定律:摩爾定律和安迪·比爾定律揭示了創新的來源——硬件提供算力,軟件釋放算力,而操作系統則是介於硬件層和應用層之間的一種根科技,協同調度。隨著硬件向多樣性計算和新介質發展,應用場景向泛雲化、邊緣、AI 發展,對現有操作系統在算力釋放、數據安全、智能運維、開發體驗、場景協同等方面提出新的挑戰,也帶來了新的機遇。

x86、ARM、RISC-V 這些主流架構都有其各自的場景和生命力,尤其是在雲邊端協同一體化的現在,很難有一種架構可以做到全場景協同統一。我們目前處在一個多樣化算力的時代,操作系統如何去更好地適應底層硬件情況是一個高頻的問題。 openEuler 願意去做這樣的兼容,向下區兼容硬件,向上更好地支撐軟件。

openEuler 是一個兼容多算力的操作系統,它不是一個傳統意義上的操作系統的概念。我們更願意稱其為 openEuler 社區,我們的合作夥伴和社區成員構建了很多SIG 組(興趣小組),每個SIG 組可能都面向不同的場景,雲、邊、端、AI、IOT 等等,甚至不乏一些跨場景的創新。所以這些主流架構的支持,其實並不僅僅來源於華為,這其中還有更多來自社區的創新與創造。 openEuler 開源以後的開發工作都是華為與社區共同參與,未來的發展除了華為本身的貢獻,還要依靠社區的力量,一起把開源的生態做好,用開源的方式去滿足更多或主流、或長尾的需求。

openGauss:企業級開源數據庫

在數據庫場景下,以MySQL, PgSQL 為代表的開源數據庫已經成為主流選擇,但企業級用戶對企業關鍵數據、核心業務的承載體,有著性能,安全和運維的更高要求。

2019 年5 月,華為發布了企業級數據庫GaussDB,2019 年9 月,華為宣布將開源GaussDB,開源後將其命名為 高斯。 2020 年6 月30 日,openGauss 正式面世,數據庫源代碼對外開放。

  • 6 月30 日發布第一個開源版本,聚焦openGauss 與鯤鵬協同性能優化。基於2 路鯤鵬服務器,性能可以達到150 萬tpmc ,相對業界主流產品有50% 性能超越;
  • 12 月底將發布多引擎融合版本,通過HTAP 行列混合存儲、MOT 內存存儲、PITR 在線備份以及即時恢復等三個創新技術,打造支持事務型和分析型混合負載的融合數據庫引擎。以MOT 技術為例,通過把數據表分析內存化,經過實測,性能提升到250 萬tpmc;
  • AI-Native 也是一個重要的數據庫特性,目前openGauss 已經支持AI 參數調優,SQL 性能預測等功能,12 月底還會加入智能索引推薦,智能負載預測等功能。明年openGauss 將會推出推薦系統、監督學習等DB4AI 的高級特性。

openLooKeng:大數據虛擬化引擎

華為在大數據領域的耕耘也有很長時間,我們觀察到了大數據領域的一個痛點就是開源的平台有很多,比如Hadoop、Spark,HBase,Key-Value 等等不同的平台、引擎、存儲。這些不同的數據引擎其實又成為了另一種數據孤島,開羅坑 可以跨不同的大數據引擎做統一的數據虛擬化的查詢、數據湖的分析,可以解決實際上的一些痛點。

openLooKeng 具備三個重要的能力:

  1. 跨源關聯分析:通過開放數據連接框架支持異構的數據源接入,從而實現跨多個數據源的碰撞和關聯查詢,真正實現了對數據源的採集變連接,減少傳統ETL 操作,實現數據0 搬遷,釋放多源數據的碰撞潛力。當前的openLooKeng 支持接入hadoop 體系生態的數據源,比如Hive,HBase 等,同時也支持NoSQL 和RDBMS 等數據庫的接入。
  2. 跨域協同計算:作為支持跨域協同計算的開源大數據引擎,openLooKeng 實現了高效的跨域跨DC 的數據查詢,讓應用在廣域網的部署下擁有局域網的體驗。
  3. 高性能:openLooKeng 目前在北向通過統一SQL 提供查詢入口,同時在引擎內核層通過跨源索引、動態過濾、算子下推等關鍵技術,支持海量數據複雜場景的高性能需求,最終實現了從ms—s 級的交互式查詢能力。

不到一年時間,三個“open”社區迎來了蓬勃發展,近一百家企業組織機構加入了社區貢獻者的行業。其中openEuler 社區有超過2000 的貢獻者,僅僅開放了三個月的openGauss 和openLooKeng 社區,也都迎來了500 和200 的貢獻者。而這些貢獻者裡面,非華為的貢獻者已經超過了70%。

開源、商業與技術未來

雲計算發展至今,顛覆了業界傳統的商業模式。以雲為依托,探索一條軟硬結合的破局之道,這是當前各大巨頭云廠商的發力支點。華為在過去兩年間在硬件、軟件的產品發布以及二者的協同、調優方面做了很多的工作。背後的邏輯很簡單,只做硬件,你就沒有生態。只做軟件,你就失去了基石。

雲是一個肉眼可見的發展趨勢,在其之下很多創新都會發生。雲上支撐的業務已經遠超我們所能想像,在這種創新的大前提下,單純只做硬件或軟件的創新可能都不夠,軟硬件的結合創新是背後的驅動力所在。雲的好處一是降低成本,二是加速開發部署速度,在此基礎上必然不斷帶來新的需求,包括調度、打包、分發等,對軟硬件配合的能力要求更高,倒逼雲廠商探索新的模式。

在雲邊端的協同方面,你會發現在這三個不同的場景下的硬件架構可能都不一樣,在openEuler 出來之前我們缺乏一個統一的操作系統能夠把三者結合起來,這種跨平台、跨算力的操作系統業界幾乎還沒有。這也是華為努力推動開放開源的openEuler 社區發展的原因所在。

開源的魅力,在於聯接各方力量,重新分配資源以取得更大創新。

很多人覺得開源是一種商業模式,但在我看來,開源是一種資源組織模式,它更類似於一種生產關係。在開源以前,很多創新都是由單一的企業來進行,但在開源以後卻是由整個社區裡的企業、開發者來一起實現創新,這是開源的魅力和強大所在。另一方面,不管是對企業還是個人,對開源抱有一定的目的性都無可厚非。企業的本質就是自給自足,商業盈利,如果說哪家企業說自己主要出發點不是為了商業回報,這顯然不符合商業邏輯。

一個好的開源項目如果有好的商業模式,可以吸納更多的資源進來,社區中的企業或者開發者如果找到更好的商業模式,本身也能為其帶來助力作用。從組織的角度是不是一定要去做開源,利用開源去達成商業化,需要看組織是不是想要構建一個大的生態,以此來輔助商業目標的達成。從華為的角度看,選擇開源這條路,是因為我們認為團結盡可能廣泛的開發者和合作夥伴一起能實現我們的目標和願景。

所以從我的角度看,開源和商業是一個正交的關係。你可以站在開源角度看商業,也可以站在商業角度看開源。

對於國內的開源環境,堵俊平認為開發者們應該對於國內企業的開源更加寬容,開源本身是一個勇敢者的遊戲,中國開源的現狀有其歷史包袱,也有一些局限性。但把時間跨度拉長,我們可以發現這個局面的轉變是向好的。

我們在開源社區的建設中也發現,目前國內開源貢獻者中來自高校的學生群體越來越多。我覺得學生群體做開源有幾個好處,第一學生時間相對比較充裕,第二學生包容性更高,第三學生在參與開源社區的建設以後,在未來的工作中將為國內的各大企業帶來開源的火種。

受訪者介紹

堵俊平,現為華為雲與計算開源業務(OSDT)總經理,開放原子開源基金會TOC(技術監督委員會)主席,Apache 軟件基金會Member, Apache Hadoop PMC & Committer 以及Apache NuttX, YuniKorn 等項目導師。

加入華為前,歷任騰訊開源聯盟主席/ 數據平台部總監,Hotonworks Hadoop 核心團隊(美國)負責人等角色,積累了在雲計算,大數據以及開源領域長期的研發、管理和業務經驗,具有廣闊的技術視野和業界影響力。