開源風(fēng)險要規(guī)避 一步上云難解后顧之憂
近年來,可以看到幾乎所有的閉源軟件公司都在采用開源的方法提供服務(wù),像微軟、甲骨文、IBM等都在擁抱開源,甚至砸出了數(shù)以十億、百億美元計的收購案。產(chǎn)業(yè)數(shù)字化走向深水區(qū)使得企業(yè)之間的創(chuàng)新協(xié)作變得越來越重要,而開源則是加速技術(shù)創(chuàng)新融合的關(guān)鍵手段,根據(jù)Synopsys的報告,有近99%的企業(yè)在其代碼庫中運(yùn)行著開源軟件。

與此同時,企業(yè)應(yīng)用新技術(shù)的速度也會加快,AI、5G、邊緣計算等領(lǐng)域的應(yīng)用實(shí)例在各行各業(yè)逐級深入,越來越多的復(fù)雜場景融入了開源技術(shù),但另一方面,企業(yè)使用開源方案的門檻也在提升。不過,在人們爭相擁抱開源之時,往往也會忽視一些潛在隱憂。安全分析軟件Black Duck曾對超過1000個商業(yè)代碼庫進(jìn)行了掃描,發(fā)現(xiàn)其中有96%的商業(yè)應(yīng)用在使用開源組件,平均每個應(yīng)用會調(diào)用257個開源組件,開源代碼庫的使用率也顯著提升。
安全分析軟件Black Duck曾對超過1000個商業(yè)代碼庫進(jìn)行了掃描,發(fā)現(xiàn)其中有96%的商業(yè)應(yīng)用在使用開源組件,平均每個應(yīng)用會調(diào)用257個開源組件,開源代碼庫的使用率也顯著提升。從Linux到OpenStack,再到Kubernetes,都在印證著開源這一理念對世界的貢獻(xiàn)。
Dynatrace委托研究機(jī)構(gòu)Vanson Bourne進(jìn)行的一項(xiàng)調(diào)查顯示,86%的企業(yè)已采用云原生技術(shù),其中包括微服務(wù)、容器及Kubernetes,以加快技術(shù)創(chuàng)新、獲得更為豐碩的業(yè)務(wù)成果。但也有63%的受訪者表示,企業(yè)云環(huán)境的復(fù)雜性已超出了人類能夠管理的極限。74%的CIO擔(dān)憂,云原生技術(shù)的廣泛使用會大幅增加在“確保正常運(yùn)轉(zhuǎn)”上所投入的人工成本和時間,69%的受訪者正在尋求全新的運(yùn)營方式,他們認(rèn)為“Kubernetes的興起”增加了IT環(huán)境復(fù)雜性,使其難以通過純手動方式管理。
容器技術(shù)迅速席卷全球,顛覆了應(yīng)用的開發(fā)、交付和運(yùn)行模式,在云計算、互聯(lián)網(wǎng)等領(lǐng)域得到了廣泛應(yīng)用,起源于谷歌內(nèi)部Borg項(xiàng)目的Kubernetes已經(jīng)成為容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。對于使用Kubernetes的企業(yè)來說,面對Kubernetes部署規(guī)模的指數(shù)級增長,如何能夠以一種可擴(kuò)展的方式迅速運(yùn)行操作Kubernetes,以及如何讓更多的開發(fā)人員可以輕而易舉地用上Kubernetes,是面臨的主要挑戰(zhàn)。
例如,很多企業(yè)會以一種細(xì)顆粒度的方式使用Kubernetes,構(gòu)建了大量的小型Kubernetes集群,而自身的技術(shù)能力又沒有跟上,難以對這些集群進(jìn)行及時升級,無法快速獲得上游項(xiàng)目帶來的創(chuàng)新,拖累了業(yè)務(wù)進(jìn)展、引發(fā)了安全隱患。
從開發(fā)角度來看,Kubernetes的復(fù)雜性問題一直存在,像在Spring上就比較有代表性。相關(guān)調(diào)查顯示,有75%的Spring開發(fā)者在Kubernetes平臺運(yùn)行著他們的應(yīng)用程序。正因如此,長期支持Spring社區(qū)發(fā)展的VMware開始思考通過將Kubernetes和Spring整合在一起,大幅提升運(yùn)維便利性,讓開發(fā)者專注于代碼本身,不用擔(dān)憂運(yùn)行環(huán)境和基礎(chǔ)架構(gòu)層面的問題。
為此,VMware推出了Tanzu Kubernetes Grid(TKG),讓Kubernetes更易于獲得和運(yùn)維,通過將Kubernetes集成至vSphere,使得用戶無論處于公有云、私有云等何種環(huán)境,都能快速應(yīng)用Kubernetes的豐富特性,去完成監(jiān)控、登錄、集群生命周期管理、容器注冊表等任務(wù)。
當(dāng)然,除了Kubernetes,開源的隱憂也體現(xiàn)在其他方面。選擇開源方案的時候先要了解什么是開源,并且熟知開源代碼的相應(yīng)風(fēng)險,尤其是對于項(xiàng)目采購或負(fù)責(zé)人來說。首先開源是需要許可證的,是的你沒有看錯,代碼免費(fèi)不代表背后的商業(yè)模式免費(fèi),而且開源也會有一些附加信息,Open Source Initiative公布的數(shù)十種開源許可證(license)就是一種,借助其版權(quán)所有者有權(quán)是否允許他人免費(fèi)使用、修改、共享版權(quán)軟件。
也就是說,如果版權(quán)所有者禁止共享,那么用戶就只有看看代碼,不能直接拿來使用,否則就是侵權(quán)。在當(dāng)前80多種開源許可證中,基本都可以讓用戶免費(fèi)使用,但使用條件則更有不同,例如permissive類的許可證可以讓用戶在修改代碼后做閉源處理,但有些是要著名原始作者的。再如像另外一些常見的許可證,只有在分發(fā)的時候才要遵守許可,如果自己用(公司內(nèi)部)就不用遵守。
企業(yè)不知道使用開源工具的隱性成本,那么如果企業(yè)在選擇IT架構(gòu)之初就設(shè)立一定的標(biāo)準(zhǔn)或者等級劃分,就可以對預(yù)期開銷進(jìn)行評估,并且對潛在的風(fēng)險做出預(yù)測,一旦成本入不敷出就能及時選擇替代的方案。要知道,當(dāng)用戶選擇開源框架時會被第三方服務(wù)商要求取得合法授權(quán),而這筆費(fèi)用通常并不低。如果有人試圖躲過License,就會承擔(dān)可能出現(xiàn)的法律風(fēng)險。
除此之外,使用開源框架還要考慮到最終的應(yīng)用程序是否可用,盡管開源部分可能在整個業(yè)務(wù)系統(tǒng)中占有較小的部分,但要是遭遇兼容性的問題,就會大幅降低產(chǎn)品或服務(wù)的穩(wěn)定性,直接影響使用體驗(yàn)。對于企業(yè)的技術(shù)人員來說,他們有責(zé)任在產(chǎn)品架構(gòu)設(shè)計之初找到開源可能產(chǎn)生的漏洞,但事實(shí)卻是:44%的開源項(xiàng)目從未進(jìn)行過安全審計。
顯然,這對業(yè)務(wù)的可用性造成了困擾,而且即使上游社區(qū)推出了最新補(bǔ)丁,開發(fā)商也不一定都會及時更新,更不要說企業(yè)內(nèi)部的自查的。此時,企業(yè)的IT管理者有必要建立一道審查機(jī)制,對在核心系統(tǒng)中運(yùn)行的開源框架進(jìn)行嚴(yán)查,及時對補(bǔ)丁進(jìn)行更新升級。要知道,業(yè)內(nèi)因?yàn)檠a(bǔ)漏不及時而發(fā)生的數(shù)據(jù)泄漏事件成堆,而其中多數(shù)是可以被預(yù)見的。