云時(shí)代的開源,必須了解的7件事

凌云時(shí)刻
基礎(chǔ)軟件是計(jì)算產(chǎn)業(yè)的“魂”。過(guò)去幾十年來(lái),隨著開源的蓬勃發(fā)展,早期開源軟件集中在應(yīng)用側(cè),但是重要的基礎(chǔ)軟件,如操作系統(tǒng)、數(shù)據(jù)庫(kù)等,依舊采用封閉專有的開發(fā)模式和商業(yè)模式。

2345截圖20211028093243.png

新的時(shí)代,開源的發(fā)展越來(lái)越蓬勃,開源和云的關(guān)系越來(lái)越復(fù)雜,耦合度越來(lái)越高,云是開源軟件允許的最佳環(huán)境之一,也為開源軟件插上安全高效的騰飛引擎。

1997年5月,埃里克·雷蒙德(Eric S.Raymond)發(fā)表了被譽(yù)為“開源圣經(jīng)”的《大教堂與集市》,開源運(yùn)動(dòng)從此有了自己的獨(dú)立宣言。開源發(fā)展至今,從Linus Torvalds、Kenneth Lane Thompson、Richard Matthew Stallman、Eric Steven Raymond等個(gè)人英雄的出現(xiàn),到越來(lái)越多的企業(yè)組織意識(shí)到開源的價(jià)值,并加入到開源中,開放、平等、協(xié)作、共享的開源模式逐漸成為新一代軟件開發(fā)模式。開源已成為全球軟件技術(shù)和產(chǎn)業(yè)創(chuàng)新的主導(dǎo)力量之一,尤其到了云時(shí)代,開源覆蓋了軟件開發(fā)的全域場(chǎng)景。

本文試圖從企業(yè)軟件的歷史,結(jié)合開源軟件發(fā)展規(guī)律,介紹軟件開發(fā)和交付方式的演進(jìn)過(guò)程,分析常見的開源軟件開發(fā)和使用誤區(qū),討論開源軟件的業(yè)務(wù)模式和生態(tài),以及在云時(shí)代下,開源軟件和云的結(jié)合與相互促進(jìn)。

為什么開源難以回避

特征一:開源基礎(chǔ)軟件的應(yīng)用廣度與深度提升

基礎(chǔ)軟件是計(jì)算產(chǎn)業(yè)的“魂”。過(guò)去幾十年來(lái),隨著開源的蓬勃發(fā)展,早期開源軟件集中在應(yīng)用側(cè),但是重要的基礎(chǔ)軟件,如操作系統(tǒng)、數(shù)據(jù)庫(kù)等,依舊采用封閉專有的開發(fā)模式和商業(yè)模式。

今天,基礎(chǔ)軟件也逐漸演變成開源、開放的方式。97%的軟件開發(fā)者和99%的企業(yè)使用開源軟件,基礎(chǔ)軟件、工業(yè)軟件、新興平臺(tái)軟件采用開源成為彎道超車的重要?jiǎng)恿ΑP磐ㄔ骸堕_源生態(tài)白皮書(2020年)》指出,近年來(lái)國(guó)內(nèi)企業(yè)逐漸側(cè)重基礎(chǔ)軟件領(lǐng)域開源項(xiàng)目布局,在操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件等領(lǐng)域涌現(xiàn)多個(gè)開源項(xiàng)目,其中不乏國(guó)際基金會(huì)的頂級(jí)開源項(xiàng)目。

特征二:開源軟件創(chuàng)造的價(jià)值凸顯

開源已成為全球數(shù)字科技創(chuàng)新的動(dòng)力,成長(zhǎng)為一種強(qiáng)大的技術(shù)創(chuàng)新模式,并從最初的軟件行業(yè)走向了硬件、芯片、視頻、IoT、AI等多個(gè)領(lǐng)域,開源的商業(yè)模式也在逐漸成熟。如今,新產(chǎn)品在開源,新架構(gòu)在開源,新平臺(tái)也在開源,連頂尖的研究成果也都以開源形式發(fā)布。開源逐漸成為全球科技進(jìn)步至關(guān)重要的創(chuàng)新方向。

特征三:國(guó)家對(duì)開源軟件前所未有的重視

2021年,《中華人民共和國(guó)國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展第十四個(gè)五年規(guī)劃和2035年遠(yuǎn)景目標(biāo)綱要》明確指出要“支持?jǐn)?shù)字技術(shù)開源社區(qū)等創(chuàng)新聯(lián)合體發(fā)展,完善開源知識(shí)產(chǎn)權(quán)和法律體系,鼓勵(lì)企業(yè)開放軟件源代碼、硬件設(shè)計(jì)和應(yīng)用服務(wù)”。毫無(wú)疑問,開源被提到國(guó)家戰(zhàn)略層面進(jìn)行支持,將走上跨越式發(fā)展的快車道。

人民銀行辦公廳、中央網(wǎng)信辦秘書局、工業(yè)和信息化部辦公廳、銀保監(jiān)會(huì)辦公廳、證監(jiān)會(huì)辦公廳聯(lián)合發(fā)布《關(guān)于規(guī)范金融業(yè)開源技術(shù)應(yīng)用與發(fā)展的意見》(以下簡(jiǎn)稱《意見》)。近年來(lái),開源技術(shù)在金融業(yè)各領(lǐng)域得到廣泛應(yīng)用,在推動(dòng)金融機(jī)構(gòu)科技創(chuàng)新和數(shù)字化轉(zhuǎn)型方面發(fā)揮著積極作用,但也面臨安全可控等諸多挑戰(zhàn)。《意見》的出臺(tái),有助于規(guī)范金融機(jī)構(gòu)合理應(yīng)用開源技術(shù),提高應(yīng)用水平和自主可控能力,促進(jìn)開源技術(shù)健康可持續(xù)發(fā)展。

軟件的發(fā)展與開源的歷史

在計(jì)算機(jī)行業(yè)的早期,軟件是作為幫助硬件發(fā)揮功能的輔助角色存在。在20世紀(jì)70年代Unix誕生之前,業(yè)界并沒有使用高級(jí)語(yǔ)言開發(fā)操作系統(tǒng)的先例。由于軟件不具備通用性,而且軟件本身并不作為獨(dú)立銷售實(shí)體存在,只是軟件開發(fā)項(xiàng)目,交付項(xiàng)目的同時(shí)交付源代碼也是常規(guī)做法??蛻粜枰掷m(xù)維護(hù)系統(tǒng)的運(yùn)行,開發(fā)方也不愿意承擔(dān)軟件全生命周期的維護(hù)責(zé)任。

隨著Unix的誕生并且主要以C語(yǔ)言實(shí)現(xiàn),開放的通用操作系統(tǒng)成為可能,軟件的開發(fā)與授權(quán)售賣也隨著硬件和軟件對(duì)兼容性和通用性的追求成為可能。在Unix發(fā)展的早期,由于其擁有者AT&T回避進(jìn)入軟件行業(yè)的特殊態(tài)度(原因是主營(yíng)電信業(yè)務(wù)正在嚴(yán)厲的反壟斷高壓之下,不愿意添加額外的麻煩),在授權(quán)給用戶使用時(shí),以源代碼形式提供并且不提供后續(xù)技術(shù)支持,允許用戶在自己的環(huán)境中修正問題和移植到新的硬件平臺(tái)。這一階段得到授權(quán)的高校、政府和一些商業(yè)機(jī)構(gòu)為后續(xù)Unix的發(fā)展打下了基礎(chǔ),也為后來(lái)的Unix紛爭(zhēng)和分裂埋下了種子。

進(jìn)入20世紀(jì)80年代,隨著計(jì)算機(jī)的通用性增強(qiáng)與逐漸普及,可以在大量計(jì)算機(jī)上運(yùn)行的通用軟件逐漸催生了商業(yè)軟件行業(yè)并且持續(xù)蓬勃發(fā)展。大批軟件公司涌現(xiàn)并且時(shí)至今日很多仍然是行業(yè)巨頭,如Microsoft、SAP、Oracle、Adobe等。這個(gè)時(shí)代的一個(gè)特點(diǎn)是隨著計(jì)算機(jī)的使用者從專業(yè)人員擴(kuò)大到普通用戶,軟件的交付形態(tài)逐漸變成了只提供運(yùn)行態(tài)程序而不再提供源代碼,銷售給用戶的也是廠商定義的使用授權(quán),廠商除了銷售軟件之外,還提供收費(fèi)的技術(shù)支持服務(wù):為客戶升級(jí)軟件、修正問題,為新的設(shè)備提供運(yùn)行環(huán)境。消費(fèi)者作為使用者不再擁有修改運(yùn)行軟件的權(quán)限,軟件的授權(quán)使用與技術(shù)支持服務(wù)形成了商業(yè)軟件行業(yè)的重要商業(yè)模式。

在個(gè)人電腦領(lǐng)域,時(shí)至今日,客戶使用軟件的方式?jīng)]有本質(zhì)變化。由于絕大部分用戶不是軟件開發(fā)專業(yè)人士,不存在自行修改系統(tǒng)或應(yīng)用軟件的需求,這種模式很好適應(yīng)了用戶需求并得以持續(xù)。

在服務(wù)器領(lǐng)域,Unix陣營(yíng)發(fā)源于AT&T分發(fā)的早期代碼,SUN、HP、DEC、IBM等基于不同的硬件架構(gòu)發(fā)展了各自的Unix系統(tǒng),形成了所謂的開放系統(tǒng)的生態(tài)格局。通用與兼容的需求催生了后續(xù)的POSIX等統(tǒng)一標(biāo)準(zhǔn),但是Unix的授權(quán)與法律條文的模糊性以及后續(xù)持有者的態(tài)度和野心等導(dǎo)致了大量問題,各種源自Unix的系統(tǒng)分別改成了各家自己品牌分別發(fā)展,與Unix主干間也缺乏統(tǒng)一的協(xié)調(diào),這種分裂給了Windows NT巨大的商業(yè)機(jī)會(huì),發(fā)展成了今天的Windows Server系列操作系統(tǒng),這些商業(yè)操作系統(tǒng)仍然是只提供運(yùn)行時(shí)的使用許可給最終用戶,并且提供商業(yè)性的技術(shù)支持服務(wù)。

20世紀(jì)80年代,軟件行業(yè)的另外一個(gè)重要事件是自由軟件基金會(huì)(Free Software Foundation,簡(jiǎn)稱FSF)的成立,在學(xué)術(shù)與科研機(jī)構(gòu)中,“黑客精神”始終是很多人的追求,對(duì)軟件極致自由追求的基礎(chǔ)是擁有對(duì)源代碼的修改權(quán)。這里不得不說(shuō),理查德·斯托曼(Richard Stallman)(對(duì)他的各種毀譽(yù)不影響GNU和FSF的意義和價(jià)值)發(fā)起的GNU(GNU is Not Unix)行動(dòng)重新開發(fā)實(shí)現(xiàn)了Unix的大部分工具系統(tǒng),并且以GPL的許可發(fā)行這些軟件,GPL對(duì)衍生軟件強(qiáng)制要求持續(xù)提供源代碼,GNU實(shí)現(xiàn)了絕大部分的Unix常見工具體系,但是仍然無(wú)法擺脫對(duì)Unix操作系統(tǒng)核心的依賴,直到1991年林納斯·托瓦茲(Linus Torvalds)開始的Linux核心的開發(fā)工作填補(bǔ)了這個(gè)空白,同樣采用GPL許可的Linux核心和外圍工具體系一起形成了Linux的生態(tài)系統(tǒng),大批積累了豐富Unix使用與開發(fā)經(jīng)驗(yàn)的高校、科研機(jī)構(gòu)與商業(yè)機(jī)構(gòu)的積極參與促成了Linux的快速成長(zhǎng)和成熟。

20世紀(jì)90年代中期以后,互聯(lián)網(wǎng)開始蓬勃發(fā)展,各種Unix衍生品與Windows NT在起步階段也支撐了這個(gè)發(fā)展過(guò)程。

隨著用戶規(guī)模爆炸式增長(zhǎng),成本成為一個(gè)不可忽視的因素,尤其很多新創(chuàng)互聯(lián)網(wǎng)企業(yè)并不愿意把寶貴的資金消耗在昂貴的硬件設(shè)備和僵化的軟件授權(quán)上。在這個(gè)階段,Intel也從PC的CPU提供者,逐漸進(jìn)入了服務(wù)器CPU的提供者行列,規(guī)模優(yōu)勢(shì)也使其CPU能力逐漸可以比肩服務(wù)器的RISC CPU,這些CPU為運(yùn)行開放系統(tǒng)的各種Unix服務(wù)器提供核心能力,Linux因其不強(qiáng)制收費(fèi)和開放后續(xù)源代碼修改的優(yōu)勢(shì),被很多新興互聯(lián)網(wǎng)企業(yè)選為后臺(tái)服務(wù)運(yùn)行平臺(tái)。廣泛應(yīng)用和大規(guī)模的部署也幫助Linux持續(xù)快速發(fā)展,演進(jìn)成了支持關(guān)鍵業(yè)務(wù)的服務(wù)器操作系統(tǒng),與此同時(shí),操作系統(tǒng)之上的各種開源系統(tǒng)也得到了廣泛的運(yùn)用與持續(xù)發(fā)展,逐漸形成了今天互聯(lián)網(wǎng)巨頭們基于開源軟件和自研業(yè)務(wù)軟件的普遍現(xiàn)狀。

進(jìn)入21世紀(jì),隨著開源軟件在互聯(lián)網(wǎng)領(lǐng)域的廣泛使用,同時(shí)結(jié)合CPU領(lǐng)域Intel的統(tǒng)治地位的逐漸確立和各種封閉式的開放系統(tǒng)的持續(xù)衰落,很多商業(yè)企業(yè)也開始接受開源操作系統(tǒng)和開源技術(shù)平臺(tái)軟件,應(yīng)用場(chǎng)景的豐富進(jìn)一步促進(jìn)了各種開源軟件的發(fā)展,形成了今天仍然激烈競(jìng)爭(zhēng)的格局。

開源軟件的定義與許可體系的發(fā)展

從字面上看,開源是指開放軟件的源代碼給使用者,但是單純提供源代碼并不是目前“開源軟件”的標(biāo)準(zhǔn)定義,“開源軟件”是指軟件向使用者提供源代碼并且授予修改和持續(xù)演進(jìn)的自由,因此對(duì)修改后的軟件再分發(fā)在規(guī)定上的差異,形成了不同的開源軟件許可體系。

目前開源軟件的許可體系主要分為兩大類:

一類強(qiáng)制要求再開源,代表性的有GPL許可體系;

另一類不強(qiáng)制要求衍生開源,為寬松開源許可證,代表性的有BSD、MIT、Apache等許可體系。

GPL許可體系強(qiáng)制要求下游“發(fā)行”時(shí)提供源代碼,不得改變GPL的兼容性,限制從開源軟件轉(zhuǎn)變成非開源軟件(但“發(fā)行”的定義,存在可被利用的空間)。強(qiáng)制繼續(xù)開源,又衍生出對(duì)服務(wù)提供者,尤其是云服務(wù)提供者的不同變種許可,如AGPL等。由于限制過(guò)多、過(guò)于復(fù)雜,所以AGPL的接受程度有限。寬松開源許可,要求聲明來(lái)源并保留原始軟件的許可證部分,但不要求衍生部分強(qiáng)制開源。

開源軟件判斷的具體標(biāo)準(zhǔn)可以參見[1]的十條原則:

一、不限制軟件的再次分發(fā)的自由;

二、提供可用于持續(xù)開發(fā)的源代碼;

三、允許在源代碼基礎(chǔ)上進(jìn)行修改和開發(fā)工作;

四、確保原創(chuàng)源代碼完整性,變更可以是補(bǔ)丁方式,也可以改變名稱或版本號(hào)以進(jìn)行區(qū)別;

五、不存在針對(duì)特定人或人群的差異性限制條款;

六、不存在對(duì)軟件使用領(lǐng)域的限制;

七、衍生產(chǎn)品發(fā)行時(shí)不施加更嚴(yán)格的使用許可限制;

八、軟件許可在每一個(gè)組件級(jí)生效而不是僅適用于整體;

九、軟件許可不擴(kuò)散到同介質(zhì)發(fā)行的其他軟件;

十、軟件許可不附帶影響技術(shù)中立的條款。

開源軟件對(duì)軟件行業(yè)商業(yè)模式的影響

開源沒有改變軟件運(yùn)行的基本模式

在一個(gè)成熟的軟件市場(chǎng)上,軟件本身的技術(shù)支持服務(wù)和開發(fā)發(fā)行本身同樣重要,迄今為止無(wú)人能夠證明一個(gè)復(fù)雜軟件的正確性。軟件的質(zhì)量取決于設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和運(yùn)行過(guò)程中暴露問題的持續(xù)修復(fù),開源軟件改變的只是開發(fā)階段和發(fā)行形態(tài),其他周期軟件規(guī)律仍然是一樣的,尤其是提供給大量非開發(fā)者使用的基礎(chǔ)平臺(tái)類軟件,完全把技術(shù)支持工作交給使用者是不可行的,技術(shù)支持能力也直接影響軟件可以支持的業(yè)務(wù),以順應(yīng)軟件本身發(fā)展的方式支持客戶的業(yè)務(wù)運(yùn)行并保證服務(wù)質(zhì)量,仍然是軟件業(yè)務(wù)的重要組成部分。

開源成為分布式協(xié)作開發(fā)模式的典范和推動(dòng)者

今天的開源軟件,更重要的意義是一種協(xié)同開發(fā)模式,開源軟件項(xiàng)目的治理方式也有封閉與開放的差異,開源項(xiàng)目的主導(dǎo)權(quán)與管理權(quán)有兩種常見方式,一種是項(xiàng)目歸屬于某個(gè)基金會(huì)組織,如Apache,另外一種是由發(fā)起者或創(chuàng)建者為主導(dǎo)的管理模式,如MySQL和Linux核心等。很難用簡(jiǎn)單的方法判斷哪種方式一定就是最好的,但是相對(duì)來(lái)說(shuō),由一個(gè)有信用的、有成熟制度模式的非營(yíng)利組織管理,更容易受到信任和吸引更廣泛的參與者。跨組織跨地域的協(xié)同在有效支持各種軟件能力的持續(xù)發(fā)展,像Linux核心這樣以千萬(wàn)行代碼計(jì)的軟件仍在持續(xù)快速迭代,也推動(dòng)了整個(gè)IT行業(yè)持續(xù)快速發(fā)展。

開源不等于免費(fèi)

開源軟件起源于自由軟件運(yùn)動(dòng),自由軟件選擇的Free Software的名字往往被誤解為“免費(fèi)”,其實(shí)在這里free的含義是“自由”,開源是軟件自由精神的體現(xiàn)。今天即便是承諾完全開源的軟件,如Linux,主要的商業(yè)化形態(tài)仍然是提供有質(zhì)量保證的發(fā)行版和技術(shù)支持服務(wù),收取許可費(fèi)用不是被認(rèn)可的業(yè)務(wù)形態(tài)。MySQL是一個(gè)特例,因?yàn)樗瑫r(shí)提供不同的軟件許可,商業(yè)版軟件和社區(qū)版軟件本質(zhì)上是兩個(gè)產(chǎn)品,只不過(guò)在集中的控制之下共享了社區(qū)版的絕大部分代碼,根本原因在于MySQL相關(guān)的所有知識(shí)產(chǎn)權(quán)完全屬于單一商業(yè)實(shí)體。

以發(fā)行版的方式提供軟件和在云上提供服務(wù)仍然是主流業(yè)務(wù)模式

目前絕大部分軟件的使用者,都不是軟件本身的開發(fā)者。系統(tǒng)和平臺(tái)軟件的功能復(fù)雜、規(guī)模龐大,依靠使用者自行解決問題和持續(xù)演進(jìn),既不必要也不現(xiàn)實(shí)。軟件發(fā)行版和云服務(wù)除了提供單獨(dú)的軟件外,還要進(jìn)行整體的驗(yàn)證測(cè)試和優(yōu)化工作。這些保證質(zhì)量和兼容性的工作與不開源的專有軟件的發(fā)布沒有本質(zhì)差異,而這些工作是軟件與運(yùn)行環(huán)境配合運(yùn)行時(shí)不可或缺的,持續(xù)的技術(shù)支持是軟件運(yùn)行的必要保障手段,認(rèn)可這些工作的價(jià)值也是提升效率和保障系統(tǒng)運(yùn)行的選擇。

企業(yè)作為開源使用者的挑戰(zhàn)

按照工信部對(duì)開源生態(tài)組成要素的分析,開源生態(tài)以五要素、三環(huán)節(jié)構(gòu)成。其中以開源項(xiàng)目為中心,依托開源社區(qū)協(xié)作形成軟件、硬件等開源項(xiàng)目。涉及開源貢獻(xiàn)者、開源使用者、開源運(yùn)營(yíng)者、開源服務(wù)者多個(gè)相關(guān)方,包含開源治理、開源運(yùn)營(yíng)、開源商業(yè)布局等多個(gè)環(huán)節(jié),依托代碼托管平臺(tái)等基礎(chǔ)設(shè)施,滿足開源規(guī)則要求。

大多數(shù)企業(yè)是以行業(yè)開源者和行業(yè)使用者存在,它們所面臨的挑戰(zhàn)也不盡相同。

IT架構(gòu)治理的挑戰(zhàn)——CIO的視角

不同的企業(yè)因?yàn)樽陨鞩T建設(shè)階段的不同,使用開源軟件的方式也各有不同。但不管哪種方式,最終都需要考慮IT架構(gòu)統(tǒng)一治理。

第一種,新型企業(yè)全部業(yè)務(wù)從一開始就使用開源軟件構(gòu)建。常見于互聯(lián)網(wǎng)公司和開源達(dá)到比較成熟階段后創(chuàng)立的企業(yè),一般沒有形成為軟件和軟件服務(wù)付費(fèi)的習(xí)慣。而且這類公司把IT能力作為核心競(jìng)爭(zhēng)力,基于開源技術(shù)平臺(tái)構(gòu)建自身核心業(yè)務(wù)系統(tǒng)。平臺(tái)技術(shù)團(tuán)隊(duì)完全有能力采用開源和定制化修改的開源衍生產(chǎn)品,定制與適配往往由自己的開發(fā)團(tuán)隊(duì)承擔(dān)。但隨著定制系統(tǒng)的發(fā)展和業(yè)務(wù)重要性的提升,代碼改動(dòng)和軟件升級(jí)則面臨很大挑戰(zhàn),被迫選擇持續(xù)加大技術(shù)投入,或走向避免改動(dòng)的保守狀態(tài),長(zhǎng)此以往,便會(huì)陷入落后和僵化的局面,技術(shù)升級(jí)時(shí)面臨很高的復(fù)雜性和影響業(yè)務(wù)連續(xù)運(yùn)行。

第二種,傳統(tǒng)企業(yè)局部使用開源軟件替換商業(yè)軟件。常見于成立時(shí)間已久的大中型企業(yè),長(zhǎng)期使用商業(yè)軟件享受軟件技術(shù)服務(wù),對(duì)降本增效和技術(shù)掌控的追求催生了對(duì)開源軟件的訴求,新技術(shù)與新開發(fā)方式也使新的業(yè)務(wù)發(fā)展無(wú)法拒絕已經(jīng)成為平臺(tái)級(jí)技術(shù)主流的開源軟件。

第三種,經(jīng)歷開源與商業(yè)軟件之間的選擇與切換過(guò)程。特定行業(yè)在一定發(fā)展階段選擇了商業(yè)軟件,越過(guò)發(fā)展臺(tái)階后重新?lián)肀ч_源軟件和加大自身研發(fā)投入,典型如阿里巴巴,電商業(yè)務(wù)對(duì)交易一致性有很高要求,主要靠關(guān)系數(shù)據(jù)庫(kù)提供支撐能力。淘寶起步時(shí)MySQL可以幫忙跑通,規(guī)??焖贁U(kuò)大后依靠商業(yè)數(shù)據(jù)庫(kù)軟件渡過(guò)了快速成長(zhǎng)期,后續(xù)的發(fā)展更多依賴分布式架構(gòu)的支撐能力,隨著技術(shù)和架構(gòu)能力的積累,最終用分布式架構(gòu)消除了對(duì)商業(yè)數(shù)據(jù)庫(kù)產(chǎn)品的依賴,整體技術(shù)棧也采用了開源體系并且持續(xù)發(fā)展。

鑒于開源軟件自身的特點(diǎn)、版本路線不同,以及不同應(yīng)用開源組合的復(fù)雜性,不同企業(yè)有選擇不同企業(yè)級(jí)技術(shù)架構(gòu)路線的權(quán)利,但都需要考慮避免在開源的使用上重復(fù)造輪子。

自主可控的挑戰(zhàn)

“自主”的含義大致有兩種理解。

一種是指采用主權(quán)范圍內(nèi)廠商具有完全知識(shí)產(chǎn)權(quán)掌控力的軟件,不受國(guó)外產(chǎn)品和服務(wù)體系供應(yīng)的限制,因此這里的“主”是指的國(guó)家主體;

另一種“主”是指的企業(yè)本身,企業(yè)可根據(jù)自主意志,按自己的需求、想法,在不違反授權(quán)的情況下,自由地修改和使用軟件。

“可控”對(duì)應(yīng)的是“卡脖子”,無(wú)論是開源社區(qū)還是商業(yè)授權(quán)的軟件。一些企業(yè)想從現(xiàn)在開始就不再采購(gòu)開源軟件的商用發(fā)行版和商業(yè)服務(wù)。誠(chéng)然,集中精力自己研發(fā)、自己把控,在特定的場(chǎng)景上,放棄外部的商用依賴,另起爐灶,做出一套完全自主的產(chǎn)品,這樣的成功例子是有的,部分企業(yè)也真的做到了,但這畢竟是極少數(shù);客觀上,這種做法也需要有大量?jī)?yōu)秀的軟件工程師,并且在開源軟件上積累了大量的經(jīng)驗(yàn),才能夠?qū)崿F(xiàn),如果軟件業(yè)務(wù)不是主業(yè),長(zhǎng)期也有很大挑戰(zhàn)。

對(duì)大多數(shù)企業(yè)而言,要想做到自主可控、規(guī)避風(fēng)險(xiǎn),需要對(duì)運(yùn)行和依賴的軟件的適度掌握,最好能仔細(xì)鉆研開源軟件的代碼、架構(gòu)、測(cè)試,即便不能,也要一定程度掌握關(guān)鍵的驗(yàn)證能力和調(diào)試能力,結(jié)合軟件的升級(jí)和部署能力,確??梢詰?yīng)對(duì)緊急問題。這里的訣竅就是,與軟件產(chǎn)品的主流社區(qū)協(xié)同,通過(guò)學(xué)習(xí)和模仿快速構(gòu)建自身能力。因此,企業(yè)不僅不應(yīng)該切斷與開源廠商的聯(lián)系,相反,自己越是有可能面臨風(fēng)險(xiǎn),越應(yīng)該廣泛建立與開源商業(yè)生態(tài)體系的聯(lián)系,除非這種聯(lián)系真的被外部客觀不可抗拒原因所切斷。

成本可控的挑戰(zhàn)

大多數(shù)開源軟件的成本,都是隱藏的,來(lái)自持續(xù)的質(zhì)量控制、升級(jí)和運(yùn)維服務(wù)的成本。開源軟件本身也是軟件產(chǎn)品,也會(huì)遵從軟件的基本規(guī)律,使用大量開源軟件組合對(duì)于技術(shù)支持能力的要求非常高。雖然廣泛使用的開源軟件的質(zhì)量和可靠性水平都很高,但是靠單一企業(yè)內(nèi)部的技術(shù)力量支持海量源代碼產(chǎn)品的持續(xù)運(yùn)行難度非常大,只有少數(shù)把IT作為核心競(jìng)爭(zhēng)力的巨頭才有可能為自己的業(yè)務(wù)提供非常高的穩(wěn)定性保障。

雖然各企業(yè)在數(shù)字化時(shí)代都在不斷加大IT投入,但是仍需要避免一個(gè)認(rèn)知誤區(qū):某個(gè)單獨(dú)軟件的授權(quán)成本,并不是投入的全部,后續(xù)支撐性投入才是重頭戲。企業(yè)必須超越簡(jiǎn)單的底線成本模型或ROI計(jì)算邏輯,站在業(yè)務(wù)視角看整體成本。

安全的挑戰(zhàn)

開源軟件漏洞數(shù)量的上升,可以歸因于開放源組件的廣泛采用。過(guò)去幾年開源社區(qū)的大量增加,以及媒體對(duì)最近一些數(shù)據(jù)泄露事件的報(bào)道,使得人們對(duì)開放源代碼安全的關(guān)注提高。根據(jù)統(tǒng)計(jì)數(shù)字,84%的開源代碼庫(kù)至少含有一個(gè)漏洞,60%的已審核代碼庫(kù)包含高風(fēng)險(xiǎn)漏洞。2021年12月,最新的log4j2的遠(yuǎn)程代碼執(zhí)行漏洞就是典型的事件,該漏洞影響巨大,一旦被攻擊者利用會(huì)造成嚴(yán)重危害。

開源軟件安全問題多被認(rèn)為是源于管理上的疏漏,主要體現(xiàn)在:

開源軟件使用者更新不及時(shí);

開源項(xiàng)目缺少如SDL這樣的流程和管理工具;

攻擊者對(duì)開源生態(tài)的攻擊增加。

合規(guī)的挑戰(zhàn)

以對(duì)合規(guī)要求最為嚴(yán)格的金融行業(yè)為例,《關(guān)于規(guī)范金融業(yè)開源技術(shù)應(yīng)用與發(fā)展的意見》明確提出:金融機(jī)構(gòu)應(yīng)當(dāng)遵循開源技術(shù)相關(guān)法律和許可要求,合規(guī)使用開源技術(shù),明確開源技術(shù)的使用范圍和使用的權(quán)利與義務(wù),保障開源技術(shù)作者或權(quán)利人的合法權(quán)益。

考慮到開源的合規(guī)性,源碼的授權(quán)模式變得至關(guān)重要。為了主動(dòng)發(fā)現(xiàn)問題,起步階段可以考慮采用集中掃描的方式,在企業(yè)內(nèi)對(duì)使用的軟件版本發(fā)布前批量進(jìn)行源碼開源合規(guī)的掃描。但是隨著開源軟件日益廣泛使用,一方面掃描本身是一個(gè)復(fù)雜過(guò)程,另一方面一旦發(fā)現(xiàn)問題留給開發(fā)人員修復(fù)問題的時(shí)間太短。如何能高效地統(tǒng)計(jì)企業(yè)內(nèi)開源產(chǎn)品許可情況和使用情況、快速修正不合規(guī)的使用,形成企業(yè)開源軟件合規(guī)一覽表,是目前企業(yè)使用開源軟件合規(guī)性所面臨的重大挑戰(zhàn)之一。

企業(yè)作為行業(yè)開源者的挑戰(zhàn)

構(gòu)建生態(tài)的挑戰(zhàn)

早期的開源社區(qū)運(yùn)營(yíng),并不能很好地反映開源技術(shù)在各行業(yè)各企業(yè)的實(shí)際應(yīng)用情況。目前,開源社區(qū)與基金會(huì)的運(yùn)營(yíng)更看重產(chǎn)業(yè)溝通和用戶分享,軟件產(chǎn)品基于云的使用量統(tǒng)計(jì)可能形成一個(gè)新的生態(tài)運(yùn)營(yíng)機(jī)制。

商業(yè)模式的挑戰(zhàn)

開源產(chǎn)品的商業(yè)模型基本上融合了以下四種模型:開放核心(Open-Core),同時(shí)提供差異化的商業(yè)產(chǎn)品;專業(yè)服務(wù)(Professional Services);托管(Hosting);市場(chǎng)(Market place),提供應(yīng)用商店、應(yīng)用市場(chǎng)、插件。

對(duì)于成功的開源公司來(lái)說(shuō),最常見的模式是開放核心產(chǎn)品,將托管、服務(wù)作為第二和第三收入來(lái)源。這些組合可能在某一時(shí)期對(duì)開源產(chǎn)品或某一行業(yè)來(lái)說(shuō)是有效的。不過(guò)隨著市場(chǎng)競(jìng)爭(zhēng)和客戶的不斷變化,這些模式可能都不適用,可能需要為自己產(chǎn)品找到獨(dú)特的商業(yè)模式。而傳統(tǒng)線下的軟件銷售、分發(fā)和交付模式,很難成為開源的商業(yè)模式。

云時(shí)代企業(yè)使用開源軟件的變化

云計(jì)算帶來(lái)的變化

客戶從購(gòu)買軟件自己負(fù)責(zé)整個(gè)使用過(guò)程,轉(zhuǎn)變成直接使用服務(wù),不需要關(guān)注服務(wù)之外的支撐細(xì)節(jié)。客戶對(duì)于軟件本身相關(guān)的商業(yè)條款敏感度下降,服務(wù)包裝后的不透明性也會(huì)削弱使用者對(duì)軟件開發(fā)的參與程度,尤其是確保運(yùn)行和能力提供的責(zé)任會(huì)轉(zhuǎn)移到云計(jì)算的提供者。

廣泛使用的開源軟件許可制定時(shí)間較早,當(dāng)時(shí)云計(jì)算還沒有出現(xiàn)或沒有形成大影響,許可條款主要針對(duì)的軟件以發(fā)行為主的情況。云服務(wù)尤其是封裝后的PaaS服務(wù)包含的軟件,規(guī)避了GPL這樣的強(qiáng)制再開源的義務(wù),開源衍生出的云服務(wù)一定程度縱容了云廠商減少對(duì)開源軟件本身的貢獻(xiàn)和分享。

互聯(lián)網(wǎng)巨頭們廣泛使用開源軟件的成功經(jīng)驗(yàn)和公共云的持續(xù)發(fā)展已經(jīng)證明了絕大部分場(chǎng)景下閉源的基礎(chǔ)設(shè)施和支撐平臺(tái)類軟件不再具有普遍的發(fā)展前途。

云與開源協(xié)同發(fā)展

沒有客戶希望自己被特定供應(yīng)商綁定,公共云也是一樣,支持應(yīng)用運(yùn)行的基礎(chǔ)平臺(tái)也從軟件年代的操作系統(tǒng)和數(shù)據(jù)庫(kù)演進(jìn)到了容器調(diào)度,混合云作為一種會(huì)長(zhǎng)期存在的支撐方式也會(huì)持續(xù)發(fā)展?;谶@些條件,云平臺(tái)應(yīng)該提供的是一種通用的開放技術(shù),在應(yīng)用使用的功能性接口方面,遵守標(biāo)準(zhǔn)的通用性,不限制應(yīng)用的可遷移性;在下層的運(yùn)行引擎方面,提供差異化的非功能支撐,幫助客戶更有效地實(shí)現(xiàn)業(yè)務(wù)目標(biāo);結(jié)合具有自身特色構(gòu)建的關(guān)鍵領(lǐng)域差異化服務(wù)能力,如數(shù)據(jù)庫(kù)等,為用戶提供敏捷靈活的開發(fā)能力和穩(wěn)定高效的支撐能力。

主流云計(jì)算廠商正在企業(yè)IT市場(chǎng)發(fā)揮越來(lái)越大的作用,主流開源軟件與云平臺(tái)的有效集成是云平臺(tái)的重要能力體現(xiàn)。開源技術(shù)也是云服務(wù)未來(lái)的發(fā)展方向,積極有效的參與主流開源項(xiàng)目是云廠商的重要機(jī)會(huì)。大型云廠商投入人力和資金幫助開源項(xiàng)目持續(xù)發(fā)展,有助于云技術(shù)能力得到有效發(fā)揮。

對(duì)于使用者來(lái)說(shuō),市場(chǎng)上主流云平臺(tái)在容器、中間件和數(shù)據(jù)庫(kù)這些主要技術(shù)能力方面,提供的功能一致性遠(yuǎn)遠(yuǎn)高于客戶自主搭建。用戶在設(shè)計(jì)自己的業(yè)務(wù)系統(tǒng)時(shí),也要充分考慮對(duì)技術(shù)平臺(tái)的不同層級(jí)的抽象和管理,減少對(duì)特定管理能力的硬性綁定。應(yīng)用想要實(shí)現(xiàn)在不同云平臺(tái)之間一行代碼都不改的切換并不現(xiàn)實(shí),但是追求云特有能力不侵入應(yīng)用代碼而只是在管控層面發(fā)揮作用,應(yīng)該是現(xiàn)實(shí)可行的做法,這也是平臺(tái)中立的云原生追求的方向。

公共云和各種形態(tài)的混合云是未來(lái)IT能力的主流承載形式。開源軟件已經(jīng)證明自身是平臺(tái)技術(shù)軟件有效的、主流的發(fā)展形態(tài),云計(jì)算與開源的結(jié)合會(huì)成為必然趨勢(shì)。開源軟件以不同程度托管在云上運(yùn)行,提供技術(shù)能力,會(huì)是未來(lái)企業(yè)IT面臨的主要選擇。不同的托管程度,在管理層和云集成程度的差異,運(yùn)行時(shí)的優(yōu)化能力,都會(huì)是云服務(wù)的差異所在,更強(qiáng)的管理能力集成往往會(huì)伴隨更深的運(yùn)行優(yōu)化和更少的管理需求,提供的服務(wù)也會(huì)具備更強(qiáng)的自主運(yùn)行能力,形成的結(jié)果就是PaaS類服務(wù),如數(shù)據(jù)庫(kù)等,客戶也會(huì)選擇自行部署和管理,這種情況下云基礎(chǔ)設(shè)施需要提供足夠開放性供客戶自己集成。

同時(shí)基礎(chǔ)設(shè)施的服務(wù)能力也會(huì)直接反映在最終服務(wù)和業(yè)務(wù)應(yīng)用的整體性價(jià)比上。軟件尤其是技術(shù)平臺(tái)軟件,需要大量的測(cè)試驗(yàn)證和優(yōu)化調(diào)整,來(lái)達(dá)到穩(wěn)定性和性價(jià)比的最優(yōu),公共云的運(yùn)行環(huán)境及其支持的海量、差異化客戶場(chǎng)景,為軟件的成熟提供了最佳的環(huán)境。大型公共云廠商也是未來(lái)有能力投入軟件開發(fā)驗(yàn)證和持續(xù)支持服務(wù)的最重要資源池。除了優(yōu)化之外,保持托管的軟件服務(wù)本身的開放性和兼容性,是非常重要的努力方向,以運(yùn)行效果而不是黑盒方式吸引并留住客戶會(huì)成為云平臺(tái)的核心競(jìng)爭(zhēng)力。

云計(jì)算的持續(xù)發(fā)展為開源軟件提供了新的舞臺(tái),云平臺(tái)與開源社區(qū)有效合作,并且避免鎖定,來(lái)獲得用戶的信任,是云平臺(tái)開放性的重要體現(xiàn),也會(huì)是未來(lái)IT行業(yè)持續(xù)發(fā)展的支撐力量。

總體來(lái)說(shuō),云自誕生開始與生俱來(lái)的特性以及不斷發(fā)展的能力,天然就具備了解決企業(yè)可持續(xù)的使用開源軟件所帶來(lái)的挑戰(zhàn)。

目前,云被證明是最好的企業(yè)IT架構(gòu)治理的平臺(tái),這個(gè)治理包括對(duì)開源技術(shù)的治理。

云平臺(tái)能夠更好地集中解決安全與合規(guī)的問題,針對(duì)不同的開源軟件合規(guī)掃描、漏洞掃描、升級(jí)等等。

云原生的發(fā)展使得各個(gè)不同的基礎(chǔ)開源軟件和創(chuàng)新開源軟件的技術(shù)融合,云時(shí)代開源軟件的可觀測(cè)性、開發(fā)效率和管理效能大大提升。

云廠商本身就是開源最大的使用者、最佳實(shí)踐,可以幫企業(yè)管理屏蔽試錯(cuò)風(fēng)險(xiǎn)。

云平臺(tái)天然是一個(gè)協(xié)作平臺(tái),可以讓開源貢獻(xiàn)者、開源使用者,在云上互通需求驅(qū)動(dòng)發(fā)展。

新的時(shí)代,開源的發(fā)展越來(lái)越蓬勃,開源和云的關(guān)系越來(lái)越復(fù)雜,耦合度越來(lái)越高,云是開源軟件允許的最佳環(huán)境之一,為開源軟件插上安全高效的騰飛引擎。

[1]https://opensource.org/osd

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論