開源閱讀web服務是啥(開放共享協同)
2023-10-05 12:01:16 1
導讀
開源的本質在於開放、共享、協同。開源模式是一種依託網際網路平臺,大規模群體智慧通過共同參與和協作而不斷累積,實現持續創新的方法。
文章來源
本文由e-works編輯部楊培原創發布。
近年來,伴隨著開源的浪潮不斷奔湧向前,開源運動在國內外呈蓬勃發展之勢。比如,2021年6月和11月,華為先後將鴻蒙(HarmonyOS)核心基礎架構和歐拉開源作業系統(openEuler)捐贈給開放原子開源基金會,以共建和繁榮國內作業系統開源生態。2021年10月,阿里平頭哥宣布開源玄鐵RISC-V系列處理器,並開放系列工具及系統軟體,以推動RISC-V軟硬體技術加速融合發展與創新落地。2022年1月31日,CentOS Linux社區正式停止更新和維護CentOS Linux 8作業系統,轉而開發和維護新的CentOS Stream版本,以實現完全意義的開源模式。2022年5月,百度宣布其自主研發的產業級深度學習開源開放平臺「飛槳(PaddlePaddle)」,已凝聚477萬開發者、服務18萬家企事業單位。2022年7月,芯華章正式宣布向openDACS捐贈高性能開源數字仿真器EpicSim,促進晶片開源技術協作創新。
開源運動最早可追溯到上世紀60年代。而如果從1991年林納斯·託瓦茲(Linus Torvalds)創造並發布Linux作業系統內核,讓開源運動逐漸步入正軌開始算起,到如今也已經走過了31個年頭。在這31年間,開源運動從早期的以Linux作業系統、桌面辦公軟體和瀏覽器為主的開源項目,逐漸拓展到資料庫、中間件、物聯網、微服務、大數據、人工智慧、邊緣計算、雲計算等眾多方向和領域。與此同時,開源文化的影響力也開始受到諸多關注。
01
開放、共享、協同
「開源文化」的本質特徵
開源(Open Source)這一概念興起於軟體行業,其基本內涵是開放原始碼,也即原始碼開放共享的開發模式。在開源模式下,通過許可證的方式,使用者在遵守許可限制的條件下,可自由獲取原始碼等,並可使用、複製、修改和再發布。
中國開源軟體推進聯盟發布的《2022中國開源發展藍皮書》指出,開源的本質在於開放、共享、協同。開源模式是一種依託網際網路平臺,大規模群體智慧通過共同參與和協作而不斷累積,實現持續創新的方法。該方法中,項目的核心開發人員與大規模的外圍群體緊密合作,他們通過網際網路共享資源、開展協同開發、管理代碼等,由此使得項目開發的效率、應對需求變化的能力大幅提升。
表1
中國開源軟體推進聯盟於2016年
歸納提出的(已被國際認可)開源特徵
發展至今,開源作為一種創新協作模式,其表現形式已不僅僅局限於開源軟體(Open Source Software),而且也包括開源硬體(Open Source Hardware)、開源設計(Open Design)、開源文檔(Open Document)、開源技術(Open source Technologies)等。
1.開源的主要表現形式
◉ 開源軟體:可以理解為一種技術和立場中立的使用許可證約束的開放原始碼的軟體。根據開放原始碼促進會(Open Source Initiative)的開源定義(The Open Source Definition),開源軟體並不僅僅意味著原始碼可獲取,還必須滿足分發自由、原作者源碼完整性、不歧視個人或團體、不歧視任何領域、不限制其他軟體、許可證必須是技術中立的等十項原則。Linux作業系統是最為典型的開源軟體。
◉ 開源硬體:開源硬體的概念是受開源軟體的啟發而來,但實際上早在上世紀60年代就已經有了開源硬體。根據開源硬體協會(Open Source Hardware Association)對開源硬體的定義,開源硬體是可以通過公開渠道獲得的硬體設計,任何人可以對已有的設計進行學習、修改、發布、製作和銷售。目前較為知名的開源硬體包括Arduino、樹莓派(Raspberry Pi)、BeagleBone、micro:bit、虛谷號等。
◉ 開源設計:開源設計是開源項目的另一表現形式。開源設計被定義為遵循開源許可的可以通過公開渠道獲得的設計類項目,主要指的是非原始碼類型的項目,比如icon、UI、畫稿、圖紙等。這些項目也需要遵守開源協議,並且享受協議規章的保護。
◉ 開源文檔:開源文檔被定義為遵循開源許可的可以通過公開渠道獲得的文檔類項目。開源文檔存在於各種項目中,種類覆蓋廣泛,比如博客、百科、菜譜、項目說明文檔等都可以作為開源文檔進行分享。
◉ 開源技術:指的是從代碼託管平臺、開源社區、開源機構官網等渠道獲取,或通過合作研發、商業採購等方式引入的開原始碼、開源組件、開源軟體和基於開源項目的雲服務等。
2.主流開源技術盤點
伴隨著開源的浪潮奔湧向前,目前圍繞開源已經形成了巨大的技術生態體系,並且越是在新興領域,開源技術的比例就越大。
(1)Docker——開源的應用容器引擎
近年來,容器技術迅速席捲全球。應用程式容器化,顛覆了應用的開發、交付和運行模式,在雲計算、網際網路等領域得到廣泛應用。容器化是指將軟體代碼和所需的所有組件(例如庫、框架和其他依賴項)打包在一起,讓它們隔離在自己的「容器」中。這樣,容器內的軟體或應用就可以在任何環境和任何基礎架構上一致地移動和運行,不受該環境或基礎架構的作業系統影響,實現「一次構建,隨處運行」。
本質上,容器化技術借鑑的是貨物運輸的「貨櫃」解決方案。貨櫃解決方案通過將貨物集中裝入大型標準化的貨箱內,從而可以適用於火車、卡車、輪船以及飛機等運輸場景,進而簡化裝卸工作,加快貨物運輸。而容器化技術打包的是「應用及其依賴的包」,讓應用變成一種標準化的組件,擺脫與系統之間的緊耦合關係,能在任何主流系統中開發、調試和運行,進而幫助開發者和企業更加便捷地上雲和進行雲上遷移,讓應用在自有數據中心和雲端實現動態遷移。
圖1 容器技術借鑑了貨櫃解決方案
當前,Docker幾乎已成為容器技術的代名詞。然而,實際上Docker本身並不是容器,而是創建容器的工具,是開源的應用容器引擎。Docker作為一種應用虛擬化技術,由Docker(原名dotClould)公司開發,並於2013年宣布開源。Docker讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的Linux或Windows作業系統的機器上,也可以實現虛擬化。如今,Docker作為一項熱門的開源的容器技術,正受到越來越多的開發者和面臨IT轉型的大型企業的青睞。
(2)Kubernetes——開源的容器編排平臺
在Docker技術備受追捧的同時,問題也隨之而來。人們發現,隨著微服務技術的廣泛應用,部署項目容器的數量越來越多,如果將Docker應用於具體的業務實現,編排、管理和調度等各個方面都存在困難,因此迫切需要一套管理系統,以對Dcoker及容器進行更簡單、高效、靈活的管理。於是,Kubernetes技術應運而生。
Kubernetes源於希臘語,意為「舵手」或「領航員」,縮寫為K8s,用「8」代替了「ubernete」這8個字符。Kubernetes是一個可移植、可擴展且開源的容器編排工具。容器編排是指自動執行容器的部署、管理、擴展和聯網,用戶可以利用該工具來管理集群化容器應用。Kubernetes的前身是谷歌(Google)的Borg系統,谷歌於2014年開源了該系統,命名為Kubernetes,並於2015年捐贈給了雲原生計算基金會(CNCF)。目前,Kubernetes已擁有一個龐大且快速增長的生態,其服務、支持和工具的使用範圍相當廣泛。
(3)OpenStack——開源的雲計算管理工具
OpenStack被稱為當今世界部署最廣泛的開源的雲計算管理工具,它通過命令或者基於Web的可視化控制面板來管理IaaS雲端的資源池(伺服器、存儲和網絡)。OpenStack是由美國國家航空航天局(NASA)和Rackspace於2010年合作研發並發起,旨在為公共及私有雲的建設與管理提供軟體的開源項目。2012年,OpenStack基金會作為獨立組織來管理和推廣這項技術,成為該項目的分水嶺時刻。根據OpenStack基金會官方數據,如今OpenStack為100多個公有雲數據中心及上千個私有雲的運行提供支持,整體部署規模超過2500萬計算核心。
(4)Hadoop——開源的分布式存儲計算架構
混合雲時代,為了應對數據的爆發式增長、生產系統對系統連續性的要求,提升運維效率,降低運維風險和管理成本,企業紛紛構建「數據湖」,以打破數據孤島與信息孤島,實現對海量數據的高效存儲、管理和使用。而談及大數據、數據湖,人們往往會把它們與Hadoop聯繫到一起。
Hadoop是由Apache基金會開發,較早用於處理大數據集合的開源的分布式存儲計算架構,主要是為了解決海量數據的存儲和分析計算問題。Hadoop包括4個基本模塊,分別是Hadoop基礎功能庫、HDFS分布式文件系統、YARN分布式資源調度系統和MapReduce分布式離線並行計算框架。此外,Hadoop生態圈還包括Ambari、Avro、Hive、Pig、Spark等組件。在工業界,Hadoop已經是公認的大數據通用存儲和分析平臺,許多廠商都圍繞Hadoop提供開發工具、開源軟體、商業化工具和技術服務。
圖3 Hadoop開源生態
當下熱門的開源技術還有很多,比如MySQL、openGauss、Hyperledger、RISV-C、TensFlow、PyTorch、ROS(Robot Operating System)、EdgeX Foundry、EdgeGallery等,涉及資料庫、區塊鏈、晶片設計與開發、人工智慧與深度學習、機器人以及邊緣計算等眾多領域。
02
開源推動敏捷開發
持續交付與雲計算創新
對於開源的優勢,開源運動的靈魂人物埃裡克·雷蒙德(Eric S.Raymond)曾經做過非常生動形象的比喻。在他的著作《大教堂與集市(The Cathedral & the Bazaar)》中,他把等級森嚴的閉源世界比作大教堂,而把開源的軟體開發世界比作集市;相比莊嚴肅穆的大教堂,集市更有生機和活力,也更適合人與人之間的交流。
事實上,開源也正是如此。開源作為一種扁平化、自洽管理的協作形式,能夠匯聚眾智,高效調動開發資源,更好地實現優勢互補,促進多方協同和技術迭代演進。而且,開源共享也是當前數位技術深入發展的鮮明特徵,以開源開放的形式來集聚力量,實現「技術共建」,往往要比各自為戰的效果更好。當前,開源在助力敏捷開發、DevOps與持續交付,以及雲計算創新等方面發揮著重要作用。
1.開源推動敏捷開發
近年來,在科學技術飛速進步、市場競爭加劇、消費者需求多樣化和個性化以及不確定風險增加等多重因素的疊加之下,產品更新換代的速度越來越快,產品生命周期也正在變得越來越短,這尤其體現在高科技電子、軟體和網際網路等行業。「敏捷開發」(Agile Development)作為一種能應對快速變化的需求,縮短交付周期的開發模式越來越受到關注。
敏捷開發常常被拿來與瀑布模型(Waterfall Model) 作對比。瀑布模型,是一個經典的理想化的軟體開發模型,也被稱為傳統模型(Conventional Model),於1970年被溫斯頓·羅伊斯(Winston Royce)提出。瀑布模型的核心思想是,按照工序將問題化繁為簡,將功能的實現與設計分開,便於分工協作,即採用結構化的分析與設計方法將邏輯實現與物理實現分開;它將軟體生命周期劃分為制定計劃、需求分析、軟體設計、程序編寫、軟體測試和運行維護等六個基本活動,並且規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,自上而下逐級下落,完成一個階段後再繼續下一個階段。
圖4 瀑布模型/V模型
瀑布模型非常符合軟體工程學的分層設計思路,適用於大型軟體的開發,因此成為軟體開發企業使用最多的開發模型。瀑布模型的優點是,它借鑑了建築工程領域的思想,使得軟體開發如同蓋房子一樣簡單易行;而且,它也讓軟體開發過程有序可控,能實現項目經理、產品經理、架構師、軟體工程師、測試工程師、運維工程師良好的分工協作,同時也能保障所開發出的軟體產品的質量。
然而,瀑布模型的缺點在於,一是難以及時響應需求變更。需求具有不確定性,而且並不是一次性或者一段時間內,就能完全定義清楚的;在瀑布模式裡,當需求發生變更時,越到後期代價越大。二是工作量分布不均衡。比如前期開發、測試人員無法參與,而後期開發、測試人員又會特別忙碌,如果上個階段進度受阻,則會一直壓縮後續階段的時間,導致延期或影響質量;三是價值交付周期長。在瀑布模型裡,一個產品從立項到交付給用戶,一般需要幾個月、一年甚至幾年的時間。四是開發出的軟體產品可能並非用戶所需。在瀑布模型下,用戶通常只有在最後階段才能看到可運行的軟體產品,最終開發出的產品可能並不是用戶真正所需要的。
敏捷開發以用戶的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。在敏捷開發中,軟體項目被切分為多個子項目,各個子項目的成果都經過測試,具備可視、可集成和可運行的特徵。簡單來說,敏捷開發並不追求在前期就實現完美設計、完美編碼,而是力求在很短的時間內開發出產品的核心功能,儘早發布出可用的版本,然後在後續的生產周期內,按照新需求不斷迭代升級,完善產品,做到「小步快跑、快速迭代」。
敏捷開發本質上是一種思維,並沒有固定的流程和方法論。目前敏捷開發的實現方式,主要包括SCRUM(迭代式增量開發)、XP(全稱「Extreme Programming」,極限編程)、Crystal Methods(水晶方法)、FDD(特性驅動開發)等。其中,SCRUM和XP最為流行。與瀑布模型相比,敏捷開發的優點是能更加靈活地應對需求變更,縮短功能開發時間,並可儘早得到市場反饋,從而快速響應市場變化,提高規避風險的能力。
圖5 極限編程
實際上,要實現敏捷開發,擁抱開源是比較可行的方法。這是因為,在目前敏捷開發、快速迭代的需求下,對大多數企業而言,試圖獨立完成所有工作可能並非是最好的方法。當一個企業已經完成了一個軟體項目並準備推出時,它的競爭對手很有可能已經領先了好幾圈,而藉助開源可以形成後發者優勢。有了開源,許多軟體開發的基本構件已經就位,因此項目可以更快地完成,並且可以將更多的注意力集中在那些對業務最有價值的領域。
在當今的敏捷開發實踐中,開源技術已被大量使用,並已從軟體開發擴展到更廣泛的領域,成為增強敏捷性的關鍵。比如,在晶片設計與開發領域,伴隨著摩爾定律幾近失效,傳統的追求通用性能的晶片開發策略難以持續,但晶片領域過高的門檻和商業限制又阻礙了進一步創新和對市場的響應速度,在此背景下,開放指令集(如RISC-V)、開源硬體構造語言(如Chisel)以及開源EDA等的出現及崛起,使得開源技術成為降低晶片開發門檻、助力晶片敏捷開發的關鍵因素。
而且,中國信通院於2021年發布的《開源生態白皮書》數據顯示,物聯網行業89%的代碼庫中包含開原始碼;生產製造和網絡安全領域開原始碼佔比均為84%;移動應用軟體、教育技術、醫藥健康以及營銷技術行業開原始碼佔比均為 82%,開源正深刻地影響著千行百業信息技術的革新與演進。
2.開源推動DevOps與持續交付
現代化軟體不僅追求開發階段的敏捷性,也需要填補開發端和運維端之間的信息鴻溝,促進開發、測試、運維之間的高效協同,從而以持續交付來實現修復,並更快地解決問題。這是因為,敏捷開發雖然極大地提高了軟體開發速度,但是它僅注重開發階段,並未兼顧到運維階段。在開發人員、測試人員與運維人員進行交接的時候,並沒有體現敏捷的價值和原則,因此開發、測試和運維之間仍缺少必要的協作效率。在此背景之下,DevOps應運而生。
DevOps是Development(開發)和Operations(運維)的縮寫。各大廠商對DevOps的定義雖然焦點不一,但本質上基本一致,即開發和運維的一體化。參考主流廠商的定義,DevOps可以理解為一種文化理念、流程和工具的組合。它可以在保證產品卓越質量的同時,提高組織交付軟體的能力,以便更好地為客戶提供服務,並在市場上搶佔競爭優勢。DevOps的宗旨在於消除開發團隊和運維團隊這兩個傳統上孤立的團隊之間的壁壘,將開發人員、測試工程師、運維工程師以及其它相關人員集成到一個高度自動化的工作流程中,共同關注快速交付高質量的軟體,滿足所有用戶要求,同時保持整個系統的完整性和穩定性。
表2
各主流廠商對DevOps的定義及描述
(來源:各廠商官網)
DevOps在敏捷開發和精益原則的基礎上發展而來,支持企業最大限度地提高產品或服務的交付速度,覆蓋從初步創意、生產發布、客戶反饋到基於反饋實施改進的各個環節。在DevOps的具體實踐中,需要各種工具以支持異步協作,無縫集成DevOps工作流程,以及儘可能自動執行整個DevOps。DevOps工具的類別,一般包括項目管理工具、協作式代碼存儲庫、持續集成/持續部署(CI/CD)管道、測試自動化框架、配置管理(基礎架構即代碼)工具、監控工具和持續反饋工具等。
圖6 DevOps參考架構 (圖源:《DevOps傻瓜書》,IBM限量版,第3版)
如今,在開發、測試、部署、交付、維護以及監控分析工作中,有越來越多的開源DevOps工具可以使用。比如,版本控制系統Git、代碼評審工具Gerrit、項目管理平臺Taiga、自動化測試工具selenium、應用容器引擎Docker、容器編排工具Kubernetes、持續集成和持續交付工具Jenkins、配置管理工具Chef、自動化運維工具Ansible、監控工具Nagios等都是開源的。
3.開源推動雲計算創新
當前,新一輪科技革命和產業變革不斷深入,數字經濟蓬勃發展,計算能力已成為產業核心競爭力之一。作為主流的先進計算模式,雲計算既為大數據、人工智慧、5G等新技術提供了基礎支撐,也為產業轉型和數字經濟發展帶來新動能。
開源與雲計算密不可分、相互促進。一方面,開源日漸成為雲計算技術的主流。開源生態為雲計算行業的產品創新提供了持續的動力,在雲計算興起過程中發揮了至關重要的作用,在雲原生等新興領域也將持續產生深刻影響。
近些年來,在開源技術的支持和推動下,雲原生的理念不斷豐富和落地,並迅速從以容器技術、容器編排技術為核心的生態,擴展至涵蓋微服務、自動化運維、服務監測分析等領域。這具體表現在:Docker技術熱度不減;Kubernetes已成為被企業選用最多的容器編排技術;Redis作為在微服務和容器開發者中最受歡迎的高性能開源鍵值存儲資料庫,目前已被9億個容器使用;雲原生應用開發框架SpringCloud已經成為分布式微服務框架中的領導者之一;開源分布式存儲系統Ceph,憑藉其高可靠、高性能、易擴容三大特性,搶佔了大部分雲平臺存儲市場;發展至今,OpenStack幾乎成為雲計算開源技術的事實標準等。
而且,多家國際巨頭也通過收購開源公司,以開拓更為廣闊的市場,整體提升在雲計算領域的市場競爭力。比如,Salesforce收購開源應用集成服務發行商MuleSoft,以繼續鞏固其在雲服務中的領先地位;微軟收購開源雲計算平臺jClarity,以此來增強微軟Azure雲計算平臺;IBM收購紅帽RedHat,使自身成為全球領先的混合雲供應商。
另一方面,雲計算也促進了開源的發展。雲計算與雲平臺所提供的按需使用、隨需彈性、輕運維等關鍵特徵,為各類開源軟體提供了最佳的運行時環境和重要的市場分發渠道。開放核心(OpenCore)和雲原生,為開源的商業化提供了新的模式,並成為當前開源商業公司採用的主要模式。雲平臺與開源社區的有效合作,賦予了用戶靈活的選擇權,不用擔心被廠商鎖定。
不過,值得注意的是,由於開源許可證一般都規定只有在「分發」時才需要遵守相關許可證的要求對外公開原始碼,目前大部分主流的開源許可證並沒有將以SaaS形式提供服務視為「分發」場景,因此,雲服務提供商在使用開源軟體提供雲服務時,一般不必提供相應的原始碼。而隨著多個著名開源軟體廠商紛紛修改原軟體所使用的開源許可證,旨在對雲服務商使用開源軟體提供SaaS服務而不回饋社區的行為進行約束,會在一定程度上限制雲服務商向雲用戶提供開源軟體產品和服務的能力。
03
開源≠免費
開源的五大商業模式
開源軟體的定義起源於自由軟體(Free Software)。所謂自由軟體,是指那些尊重用戶和社區自由的軟體。粗略地說,自由軟體賦予用戶運行、複製、分發、學習、修改並改進軟體的自由(Liberty),而並不意味著它就可以免費(Free)獲得和使用。為了減少意識形態上的溝壑,以及避免「自由(Free)」一詞造成免費軟體的誤解,成立於1998年的開放原始碼促進會(OSI),決定使用「Open Source Software」(開源軟體)作為共通名稱,並被越來越多的人接受。如今開源軟體一詞的使用頻率也遠遠高於自由軟體。由此可以看出,開源軟體脫胎於自由軟體,它並不等於免費軟體;開源和免費之間也不能劃上等號。
實際上,雖然開源項目在早期大多都是項目創造者「用愛發電」,但是為了讓開源項目能夠可持續發展,同時吸引更多開發者參與,共同改進缺陷和豐富功能,開源項目並不排斥商業化。而且,一個成功的開源項目通常離不開市場的推動和商業公司的支持。開源與商業化之間的互補,有力促進了開源技術的革新。如今,圍繞著開源項目,已經形成了五大商業模式。
1.訂閱式產品化和技術支持模式
受到一些嚴格的開源協議的限制,開源軟體在授權轉讓的時候不允許收取費用,於是一個新詞彙「Subscription(訂閱)」被用來指代這一收費過程。在開源軟體免費的前提下,用戶可通過付費訂閱,獲得每一版本產品一定時間內的技術服務支持,諸如產品升級、電話支持等;而如果用戶不想付費訂閱,除了能獲得開源產品及其原始碼,其它的諸如代碼質量、產品穩定性等都無法保證。採用這種商業模式的典型代表就是紅帽(RedHat)公司。於2022年7月卸任紅帽公司總裁的Paul Cormier,是開源商業化「訂閱」模式的提出者。雖然這一模式提出之後引起了巨大爭議,但也促使紅帽公司逐步發展成為全球最大的開源軟體公司,Paul Cormier也因此成為紅帽公司轉型的關鍵人物。
2.雙授權(Dual License)模式
所謂雙授權模式,指的是代碼具有兩套許可證,一套是傳統的開源許可證(如GPL、AGPL等),另一套是商業許可證。如果一個開源軟體完全由一個廠商獨立完成,也即該廠商擁有該軟體的代碼所有權,那麼它就有可能採用雙授權模式。如此一來,一方麵廠商可以對商業用戶收取授權費用;另一方面,產品也仍能夠融入開源社區生態系統,獲得改進信息,得到開發者支持,贏得口碑,增加用戶基數,進而佔領市場。關係型資料庫管理系統MySQL就是雙授權模式的典型。
3.開放核心(OpenCore)模式
顧名思義,開放核心指的是核心代碼開源,而專有的工具或功能包閉源。簡單來說,開放核心模式,就是在開源版本基礎上添加一些付費特性,打造成商業化版本進行售賣,並不斷迭代。我們經常見到很多「社區版」的軟體可能是開源的,而與之對應的「企業版」就有可能提供了很多額外功能並收費。採用這類模式,典型的有Kafka、Cassandra、GitLab等。而且,谷歌對於Android作業系統所採取的市場策略,在某種意義上也是開放核心模式。
如今,各大手機廠商可以免費獲得的是作為作業系統框架的AOSP(Android Open Source Project),在此基礎上,各手機廠商可以進行進一步定製開發。比如,小米的MIUI、OPPO的ColorOS等,都是基於AOSP深度定製研發。在AOSP之外,谷歌還提供收費的GMS服務(Google Mobile Service)。只有獲得授權許可的Android手機,才能使用GMS服務;而在國際市場,GMS服務是不可或缺的。
4.軟體即服務(SaaS)模式
近年來,伴隨著雲服務技術的成熟,雲基礎設施的完善,SaaS模式逐漸興起。SaaS是一種基於網際網路提供軟體服務的軟體應用模式,具有投入低、收益高、易於實施和管理等特點。在SaaS模式下,用戶不需要部署自己的伺服器,軟體開發商不需要投入大量的線下運維人員,SaaS模式擁有高可用性、應用高可配置性、功能服務的高擴展性,用戶完全可以根據自己的需要進行靈活配置,使用效率高。
雖然SaaS模式並不是開源軟體專有的商業模式,但如今越來越成為開源軟體的主流商業模式。比如,大數據領域的獨角獸廠商Databricks就是通過開源SaaS模式來服務企業客戶,這種業務模式也成為其發展過程中的關鍵優勢。
5.捆綁銷售模式
這種模式主要針對硬體製造商。市場競爭壓力迫使硬體公司開發並維護軟體,但是軟體本身卻並不是利潤中心,因而採用開源軟體。這種模式為大型公司廣泛採納。比如IBM 、惠普等伺服器供應商巨頭,通過捆綁免費的Linux作業系統銷售硬體伺服器。另外,也存在將免費的開源軟體與可贏利商業軟體捆綁銷售,以開源軟體帶動商業軟體銷售的情況。
當然,開源項目的商業模式還有很多,還包括銷售品牌周邊產品,比如Mozilla基金會、維基百科基金會等會銷售一些T恤、咖啡杯等周邊產品,這實際上也可以視為一種開源商業化的模式;廣告模式,比如火狐瀏覽器Mozilla Firefox作為開源的網頁瀏覽器,通過與谷歌公司達成合作,將谷歌搜索作為默認搜尋引擎,從而從谷歌公司獲得大量收入;培訓(或諮詢)模式,即基於開源項目提供培訓、認證或諮詢服務;以及利用開源軟體來搭建應用系統,壯大開源生態,通過開源生態上的產品分成等模式。
04
促進開源生態發展
四類開源組織發揮重要作用
開源軟體及開源硬體等的發展,離不開背後強大的開源組織的管理和推動。通常來說,國內外的開源組織主要可以分為以下幾類:
1.開源解決方案供應商開源解決方案供應商,主要包括開源軟體、開源硬體、開源技術等的提供商。比如,紅帽(RedHat)作為全球領先的企業級開源解決方案供應商,依託社區力量為客戶提供Linux、OpenShift、容器和Kubernetes等技術。Arduino公司作為開源硬體的先驅,其研發的開源硬體Arduino深受電子愛好者、硬體極客等的歡迎,成為最主流的開源硬體平臺之一,也推動了開源硬體的發展。此外,國際廠商如微軟、IBM、谷歌、甲骨文、英特爾等,國內廠商如華為、百度、阿里巴巴、騰訊等科技企業,如今也都積極擁抱開源發展戰略,參與開源技術生態建設。
2.開源聯盟組織開源聯盟組織又可分為綜合性開源聯盟組織、專業性開源聯盟組織等。比如,綜合性開源聯盟組織包括開放原始碼促進會(Open Source Initiative)、開源硬體協會(OSHWA)、中國開源軟體推進聯盟、「科創中國」開源創新聯合體等。專業性的開源聯盟組織包括開放設計聯盟(Open Design Alliance)、國際ITC組織(The IntelliCAD Technology Consortium)、開源GitOps產業聯盟、OpenStack中國聯盟、中國人工智慧開源軟體發展聯盟等。
3.開源基金會開源基金會是開源生態中的重要組成部分。一般而言,開源基金會是具備公益性、非營利性以及非政府性的社會公益組織,目的是幫助開源項目的成長。開源基金會通過非營利方式如捐贈、會員費等渠道籌集資金,接受企業捐贈和申請將滿足基金會要求的開源項目納入基金會名下,並以提供軟硬體基礎設施、僱傭專業人員購買服務、組織市場宣傳活動等方式將資金投入於項目發展。與投資基金不同,開源基金會不會以股權投資形式將資金投入企業和項目。
對於非營利性且處於中立位置的開源基金會而言,它們擁有開源項目的智慧財產權,而且沒有任何商業利益,這為貢獻者、開發者以及用戶提供了良好的協作平臺;基金會也會通過技術服務和項目孵化來幫助開發者和開源企業,如軟體倉庫、問題跟蹤、技術指導、法律支持、項目投資、公共關係維護等;基金會還會提供項目日常的運營和治理,以滿足在項目生命周期不同階段對於管理項目的需求。開源基金會在國外(尤其在美國)較為流行,全球著名的開源基金會包括Apache軟體基金會、Linux基金會、Eclipse基金會等。我國的開源基金會還處於發展初期。2020年設立的開放原子開源基金會(OpenAtom Foundation),是我國首個開源基金會,具有裡程碑意義。
圖7 開放原子開源基金會官網
4.代碼託管平臺代碼託管平臺在開源生態中也具有突出價值。一是為開源軟體開發提供協作環境,集聚廣大開發者智慧,快速實現軟體迭代更新。二是作為代碼託管基礎設施,匯聚大量重要開源項目,成為開原始碼數據儲備資源池。三是託管開源項目、孵化項目社區,促進開源軟體的推廣應用。四是設立活躍度、受歡迎程度等指標,折射開源技術熱點及創新發展趨勢。工信部印發的《「十四五」軟體和信息技術服務業發展規劃》明確提出「加快建設開原始碼託管平臺等基礎設施」。
目前,全球主流的代碼託管平臺包括GitHub、GitLab和Gitee(碼雲)等。2018年10月26日,微軟斥資75億美元收購了GitHub。我國許多開發者和企業使用GitHub,用戶數僅次於美國,位居全球第二。2021年3月18日,GitLab Inc.與紅杉寬帶、高成資本共同成立了中國合資公司極狐信息技術(湖北)有限公司,致力於為中國用戶提供一站式覆蓋軟體開發生命周期的開放一體化DevOps平臺。Gitee是開源中國社區於2013年推出的基於Git的代碼託管服務,目前已經成為國內最大的代碼託管平臺,致力於為國內開發者提供優質穩定的託管服務。
此外,我國的代碼託管平臺還包括百度效率雲、華為雲CodeHub、阿里云云效代碼管理Codeup、騰訊旗下騰雲扣叮(CODING)以及CSDN旗下 GitCode等。
- 參考資料
1.中國開源軟體推進聯盟.《2022中國開源發展藍皮書》.
2.艾瑞諮詢.2022年中國開源軟體產業研究報告.https://mp.weixin.qq.com/s/71C_gElix5stCQyn9IYnLA
3.開放原始碼促進會(OSI).The Open Source Definition (Annotated).https://opensource.org/docs/definition.php
4.Gitee.一篇文章帶你了解「開源」和它的前世今生.https://my.oschina.net/gitosc/blog/5016932
5.谷業凱.在開源開放中推動國產基礎軟體發展.http://cpc.people.com.cn/n1/2021/1227/c64387-32317470.html
6.微軟.什麼是 DevOps?.https://azure.microsoft.com/zh-cn/resources/cloud-computing-dictionary/what-is-devops
7.IBM.什麼是DevOps?.https://www.ibm.com/cn-zh/cloud/learn/devops-a-complete-guide.
8.亞馬遜雲科技.什麼是DevOps?.https://aws.amazon.com/cn/devops/what-is-devops
9.「相愛相殺」的開源與雲計算.https://baijiahao.baidu.com/s?id=1651422669393621070
10.雪哥視野.開源的商業模式與創新.https://www.36kr.com/p/801990980906757
11.紙飛機.自由/開源軟體/硬體的商業模式.https://zhuanlan.zhihu.com/p/360893820
12. Driss.Vin.開原始碼託管平臺調研(附行業人士訪談).https://mp.weixin.qq.com/s/DS3H0gnTwdfUDmRYn2s0oA
,