別拿開源當創新,從另一種角度思考開源

danny_2018發表於2023-12-22

有人說開源是時代發展趨勢,我並不認同這樣的觀點。開源更多是利益所趨。我並不否認有很多偉大的開源先驅和朋友們沒有太多的利益訴求,只是樂於貢獻自己的智慧和能力,和更多的人分享技術成就和快樂,但大部分企業開源都是利益驅動。不管是為了企業宣傳、佔領市場、構建生態,或者是為了免費利用大眾智慧引領技術發展趨勢,完善產品等,都是有企業利益訴求,和個人純粹的技術交流和奉獻是不一樣的。因此談開源可能需要從個人和企業的不同利益視角來討論,更好的理解開源、使用開源、促進開源的發展。

開源目的更多還是為了抗衡企業閉源產品所帶來的昂貴的軟體使用費用,特別對於個人而言,軟體許可費用成本往往不低,所以不管學習還是個人事務處理,個人更傾向於免費的軟體。另外,開源並不解決軟體的靈活性、可擴充套件性、敏捷迭代、自主可控等問題。軟體靈活性、可擴充套件性是軟體架構問題,跟開源沒有關係;敏捷迭代取決於開源運維團隊,是否能夠做到敏捷迭代和釋出;自主可控是國家或企業行為,跟開源也沒有根本關聯,不是說使用開源就自主可控了,使用開源就靈活可擴充套件了。自主可控是自主研發、不受制於人的能力,和使用開原始碼是兩回事。用別人的開原始碼並不代表自己能夠理解並控制原始碼,至多是複製一份自行修改擴充套件而已。所以,全面理解開源的優勢和劣勢,對個人和企業來說,既能利用開源的優勢,避免誤解而走入誤區,特別在全面資訊科技創新的階段,不能拿開源當創新,不能用開源誤導創新。

雲原生技術基本上都是開源的,所以促進了雲原生的快速發展和應用,到目前基本上成為了大部分企業的首選技術方向。根據本人調查,超過80%的金融企業應用了微服務、容器和DevOps 等技術和工具。開源有其巨大的優勢,特別是由關鍵企業主導的開源。

開源優勢

1、開源是技術人員個人學習提升的一個免費的重要的途徑

對個人而言,利用開源學習提升是一個免費的、重要的、快速的途徑。也正是開源,讓眾多的人員能夠接觸到先進的理念和技術,能夠學習和提升自己的能力,同時貢獻自己的智慧,促進技術的應用和發展。利用開源軟體,技術人員個人就可以快速測試並搭建自己的系統,瞭解開源軟體設計理念、方法、架構等,研讀原始碼學習編碼方式方法等等,如同站在“巨人”的肩膀上,大大節省了時間和精力。無論對個人或者所服務的企業,都是雙贏。

開源也是技術人員自我驅動的一種很好的方式。開源社群為優秀的技術人員提供了一個實現自我價值的渠道。可以按照自己的想法、天馬行空、不受約束地嘗試,推出自己的開源元件。透過與社群技術人員之間的交流、碰撞,會不斷產生新的思路和想法,持續地擴充套件場景和能力,從而促進個人和開源軟體的雙向完善。

2、開源是企業宣傳、構建生態和標準、佔領市場的重要方式

開源對企業來說是很好的宣傳手段。特別如果有一款非常受歡迎的軟體開源出來,在擴充套件企業影響力的同時,也會幫助企業構建自己的生態和標準,從而快速的佔領市場。當然這往往取決於企業自身的能力和判斷力。也有企業跟風推出了開源元件,但都是邊角料的元件,沒有什麼市場價值,這樣的開源對企業來說不但無法帶來收益,反而需要額外成本去維護和管理這些元件,可能得不償失。因此,開源不是隨便的、隨意的,一定要經過規劃和調查。選擇合適的方向和元件,能夠引領市場,為自己的企業帶來巨大收益才是好的開源。

雲原生容器是非常典型的一個成功的開源工具。一方面在於有像G oogle 這樣的大公司的加持,另一方面也帶來了新的理念,引領著技術發展趨勢。能夠引領眾多的技術人員的參與,在學習提升自己能力的同時,促進了雲原生技術的推廣和應用,也形成了眾多的標準和規範。也因此有很多的大企業都不斷地推出自己的開源軟體,建立社群,引導技術趨勢和技術應用,從而獲取更多的市場份額。

3、開源可以免費利用大眾智慧

對企業來說,開源很重要的一點是要利用大眾智慧來解決和完善自身的產品。當然這對個人和企業是一個雙贏的局面,都可以免費學習和提升。不過對企業來說更有利,可以利用大眾的智慧來快速解決和完善自身產品存在的問題,使新技術的成熟和應用週期大大縮短,開發更多的業務應用場景和觸達更多的使用者。也因此,對企業來說,選擇一個合適的開源產品或元件是非常關鍵的前提。對個人來說可以隨意開放自己的元件原始碼,成不成功並不是最重要的;而對企業來說,如果有沒有一個好的規劃和管控,開源軟體難以獲得預期的收益,反而需要很多的人力、管理維護等成本。所以,一定要明白開源的真正目的,並不是隨便拿個元件跟風開源。

數字化時代人才最貴,如果能夠利用好大眾的智慧,對其來說將是巨大的幫助。如前所述,在企業宣傳、生態建設、標準建設、市場開拓等方面都有巨大幫助,同時更有助於獲取真實的市場需求。

4、開源引領技術發展趨勢,得到最真實的技術需求

開源在引領技術趨勢的同時,很重要的一點是獲取市場真實的需求。從客戶那裡的調查往往和最真實的需求是有差別的,因為很多客戶根本不知道自己要什麼,根本不理解技術的應用趨勢和發展趨勢。另外,客戶往往基於自身的利益提出一些需求,並不一定是合理的需求。其實我也跟我們廠商一再強調過,自身需要具備區分合理性需求和不合理性需求的能力,不是客戶提了需求就完全按照客戶的要求實現,一定要經過思考、提煉、抽象、重組為產品級需求,而不是專案需求。而開源往往是優秀的人才的思維,具備全域性和大局意識,能夠更好的提出技術需求,認識技術發展和應用趨勢。

開源存在的風險

開源有很多優點,但也有很多風險。

1、對企業使用者而言,開源是最貴的

開源軟體雖然免費,但需要專人來維護和跟蹤開源的發展,而不是部署一個版本就萬事大吉了。開源很重要的一個特點是不成熟、頻繁變化的。因為技術不成熟,企業才需要將這些技術拿出來共同研究和完善,一旦成熟了,就沒必要再開源了。因此,如果選擇開源,往往會遇到各種各樣的問題,需要有人能夠深入學習和研究、跟蹤,否則可能在使用過程中導致重大的問題,無人能夠解決。另外,開源軟體架構也往往會有很大的變更和迭代,甚至是不相容,都會導致研發和遷移等眾多的成本。

開源適合學習和測試,嘗試新的技術和應用,但往往並不適合生產環境。相對於成熟的閉源軟體,其人力投入成本等可能更多,相對更貴。

2、開源安全問題

今年攻防演練一個趨勢是打供應鏈,而開源軟體無疑是最好的切入點。開源軟體原始碼是公開的,所有的漏洞都是公開的,如果企業使用眾多的開源軟體,在網路安全方面做的不夠好,就很容易被打穿。還有一個很重要的問題是,開源軟體在安全能力和安全管控方面並不強,也不受重視,甚至很多開源軟體連基本的登入認證都沒有,關注更多是其功能實現,因此,大部分開源軟體都存在非常大的安全風險的。還有就是可能和當前企業的網路安全策略是矛盾的。典型比如雲原生容器技術,期望的是一個大一統的網路,以軟體來定義邊界,但企業網路安全往往是劃分很多安全域,透過硬體防火牆來進行隔離,容器虛擬網路和實際物理網路之間的互通導致管理複雜化,也會帶來漏洞。還有諸如儲存資源池等,掛載到不同的容器叢集,就面臨著防火牆埠開通等問題。因此,在使用開源軟體時,需要特別關注安全問題 ,通常致命、高嚴重級別漏洞必須要立即著手處理修復,中、低階別漏洞可協調安排便利時間進行修復。

3、面臨著隨時閉源或斷更等問題

開源軟體面臨的一個額外風險是隨時修改l icense 可能閉源的問題。比如說C entO S,大家都習慣使用C entOS 幾十年了,但廠商依然有權力根據自身發展需要修改服務協議,不再支援和提供服務。開源維護需要極大的精力和投入,雖然說企業從中也可以獲得很多收益,但並不是一致都成正比,特別產品一旦成熟,投入和產出就可能不成正比,所以企業也需要調整服務協議。或者某些情況下,企業出於某種原因或開源更新難以為繼時,就可能不得不停止更新。企業還是以追求利益為中心,開源只是一種手段,因此不能完全依賴開源,自身要真正具備自主研發的能力。

4、信創問題

利用開源推進資訊科技創新其實是一個很好的方式。不過國內做的並不是很好。一方面在於國內企業和個人更關注個人利益和短期利益,缺乏持續的投入和奉獻精神。另一方面,中小企業生存優先,沒有能力持續投入,開源難以為繼。國內更多是在開源基礎上的封裝,不過這也可能是深埋的地雷。特別一些以信創名義廣泛推廣的中介軟體等,和開源幾乎沒有太大區別。資訊科技創新需要大企業的擔當和責任,能夠建設並推動中國開源社群的成熟,讓更多的技術人員參與到開源中來,沒有後顧之憂,真正做到自主可控。

來自 “ twt企業IT社群 ”, 原文作者:汪照輝;原文連結:https://mp.weixin.qq.com/s/GMPbxdm6Kb_0e3CvlGWNBg,如有侵權,請聯絡管理員刪除。

相關文章