技術(shù)創(chuàng)業(yè)者對(duì)開源文化和商業(yè)的再思考
原創(chuàng)嘉賓 | 張建鋒
整理 | 陳豪
策劃 | 徐杰承
目前,開源技術(shù)在國內(nèi)企業(yè)已經(jīng)得到了廣泛的應(yīng)用,且國家級(jí)綱要文件中也表示鼓勵(lì)開源發(fā)展,但國內(nèi)技術(shù)社區(qū)對(duì)于開源的理解卻不盡相同。很多企業(yè)只是把開源產(chǎn)品拿來使用,并沒有認(rèn)真思考和對(duì)待開源涉及到的商業(yè)、權(quán)屬、貢獻(xiàn)等問題。
在日前由51CTO主辦的??WOT全球技術(shù)創(chuàng)新大會(huì)??中,永源中間件創(chuàng)始人張建鋒老師為廣大聽眾帶來了《技術(shù)創(chuàng)業(yè)者對(duì)開源文化和商業(yè)的在思考》專題演講,重點(diǎn)分享了開源協(xié)作的一手經(jīng)驗(yàn);國內(nèi)外企業(yè)開展的開源相關(guān)工作,以及對(duì)開源技術(shù)和商業(yè)的實(shí)踐經(jīng)驗(yàn)與思考。本文對(duì)張建鋒老師的演講內(nèi)容進(jìn)行了整理,望能對(duì)開源愛好者們有所幫助。
國內(nèi)開源現(xiàn)狀
目前國內(nèi)開源和十年前或二十年前相比有著很大的變化。我們有開源基金會(huì)、開源組織,每個(gè)商業(yè)公司里也都會(huì)有一些專門做開源的團(tuán)隊(duì),公司與投資機(jī)構(gòu)對(duì)開源領(lǐng)域也都有很多的關(guān)注。國內(nèi)開發(fā)者在例如Github等開源平臺(tái)上也貢獻(xiàn)了很多的項(xiàng)目,有一些項(xiàng)目的Star數(shù)非常高,使用的人也很多,國際影響力也很大。
隨著影響力逐步增強(qiáng),開源在近年來也得到了前所未有的關(guān)注和重視。在“十四五”的規(guī)劃綱要中,首次提到了“支持?jǐn)?shù)字技術(shù)開源社區(qū)等創(chuàng)新聯(lián)合體發(fā)展,完善開源知識(shí)產(chǎn)權(quán)和法律體系,鼓勵(lì)企業(yè)開放軟件源代碼、硬件設(shè)計(jì)和應(yīng)用服務(wù)”。能夠在國家頂層文件中看到對(duì)開源的肯定,這也給予了開源愛好者們很大的鼓舞。
開源社區(qū)的分工協(xié)作
?開源社區(qū)的分工協(xié)作,首先非常重要的是代碼的所有權(quán)是屬于團(tuán)隊(duì)的每一個(gè)人,國內(nèi)開發(fā)者較難有這樣的一個(gè)認(rèn)知。核心是一個(gè)團(tuán)隊(duì)中的每個(gè)成員都要承擔(dān)責(zé)任,每個(gè)人都要有提出意見和修改的權(quán)利。
在開源的領(lǐng)域中有一個(gè)很關(guān)鍵的認(rèn)知,開源團(tuán)隊(duì)一定是一個(gè)開放平等的組織,當(dāng)然也要有l(wèi)eader,leader在團(tuán)隊(duì)中起著決定性的作用。只要建立一個(gè)開源團(tuán)隊(duì)或開源組織,每一個(gè)人在團(tuán)隊(duì)中的平等性是非常重要的,這是一種團(tuán)隊(duì)文化,往大了說甚至和國家的文化有一定關(guān)系。
開源不是特指源碼
?開源并不是特指源代碼,雖然現(xiàn)在一般稱開源為Open Source,譯為開放源代碼,但其實(shí)源代碼只是其中之一。source一詞譯為“來源、出處、起源、根源”的意思。開源是指將一個(gè)事物的本源對(duì)公眾開放,這件事的來龍去脈都是公開透明的。軟件中源代碼只是開源中的一部分,真正的開源還要包括軟件開發(fā)過程中的文檔、討論記錄、代碼提交注解、問題處理過程和結(jié)果等。例如,Github中除了記錄軟件代碼的本身和提交記錄以外,還有處理PR的過程、Issue的創(chuàng)建、跟蹤和關(guān)閉記錄等信息,這些內(nèi)容共同構(gòu)成了開源軟件的開發(fā)過程。
對(duì)于一個(gè)軟件產(chǎn)品或軟件應(yīng)用,如果只能夠拿到代碼,其實(shí)并沒有很大的用處。如果真的想要了解產(chǎn)品的全貌,就需要了解它的整個(gè)過程。從第一行代碼開始就要開源,用戶需要知道項(xiàng)目是怎么構(gòu)成的,還有整個(gè)協(xié)作的過程,這些全部都是要公開的。此外,技術(shù)服務(wù)也需要開源,對(duì)于開源軟件將能夠提供什么服務(wù)、達(dá)到什么程度、能給客戶帶來什么收益,這些都應(yīng)當(dāng)公開透明。通過定價(jià)或其它量化方式,讓客戶有一個(gè)比較。
開源 != 免費(fèi)
?開源不等于免費(fèi),免費(fèi)和開源是兩碼事?,F(xiàn)在所講的Open Source并沒有提到任何free的東西。如果項(xiàng)目的開發(fā)者不掙錢,那該拿什么更好的維護(hù)項(xiàng)目呢?如果真的想打造一個(gè)正向業(yè)務(wù)循環(huán),項(xiàng)目的開發(fā)者最擔(dān)心的是工作成果怎樣才能夠不被別人無償?shù)啬米?,根本是在這里。
例如當(dāng)你寫出一本好書的時(shí)候,并不會(huì)擔(dān)心這本書已經(jīng)發(fā)表或出版了,后續(xù)就賺不到錢了。書的背后會(huì)有版權(quán),如果這本書真的很知名,別人也不會(huì)再去費(fèi)盡心思地盜版,你的名譽(yù)各方面已經(jīng)形成了有價(jià)值的東西。開源并不是別人拿到項(xiàng)目的源代碼后,項(xiàng)目就會(huì)失去商業(yè)價(jià)值,使用者拿到源代碼未必能夠真正很有效地使用。
開放的文化和商業(yè)收費(fèi)之間是沒有沖突的,對(duì)國內(nèi)而言,做開源表面看可能會(huì)失去一些商業(yè)利益相關(guān)的東西。但是從另一個(gè)角度講,做開源能夠收獲更多的市場關(guān)注,從而獲得一些其他方面的支持和利益,這是一個(gè)取舍的過程。任何人都能夠免費(fèi)得到開源的產(chǎn)品,并對(duì)其進(jìn)行評(píng)估,但使用的權(quán)限應(yīng)當(dāng)是保留在開發(fā)者或團(tuán)隊(duì)手中的,開發(fā)者或團(tuán)隊(duì)可以對(duì)使用者進(jìn)行要求和約束,使用者也可以通過付費(fèi)的方式獲得來自開源軟件開發(fā)者提供的增值服務(wù)。
開源軟件質(zhì)量
開源的質(zhì)量是大家也很關(guān)心的問題。首先,要與商業(yè)產(chǎn)品進(jìn)行對(duì)比。對(duì)于頭部的開源軟件,關(guān)注和使用的人很多,它的完整提交記錄,包括參與的人數(shù)是一種比較理想的情況,滿足這些條件的軟件質(zhì)量一般都會(huì)很好。因?yàn)檐浖切枰蚰サ模退闶窃诖髲S,很有經(jīng)驗(yàn)的開發(fā)者,做出來的東西肯定都有bug。好的項(xiàng)目一定要經(jīng)過打磨,經(jīng)過很多人去使用,不斷地讓它變得更好。因此,開源軟件的優(yōu)勢(shì)就是在于它會(huì)受到更多人的關(guān)注,有更多人去使用,提出更多的意見。因此,對(duì)于使用者較多的頭部開源軟件,一般來說軟件的質(zhì)量都是很不錯(cuò)的。而且對(duì)基礎(chǔ)軟件來說更是這樣,在基礎(chǔ)軟件領(lǐng)域,比如操作系統(tǒng)、容器,包括中間件領(lǐng)域,開源軟件市場份額最大。
促成正向循環(huán)發(fā)展
?開源軟件之所以能夠做得越來越好,正是由于它的開放性。因?yàn)殚_放性,使用的人多,反饋也更加全面。社區(qū)力量大、版本更新快,這樣使用的體驗(yàn)也會(huì)變得越來越好,隨之形成一個(gè)正向循環(huán)。一種商品,最好的形態(tài)就是廣泛使用、市場公平競爭,最終能達(dá)到一個(gè)相對(duì)的平衡點(diǎn),這也是開源的核心價(jià)值之一。
目前有很多機(jī)構(gòu)都在關(guān)注開源軟件的價(jià)值,甚至有些機(jī)構(gòu)根據(jù)軟件的代碼行數(shù)、獲取星星的個(gè)數(shù)等指標(biāo)來判斷軟件價(jià)值,其實(shí)這些方法都不太精確。關(guān)鍵在于產(chǎn)品自身的價(jià)值,以及是否能提供高質(zhì)量的產(chǎn)品服務(wù),開源產(chǎn)品只是一個(gè)商業(yè)的引領(lǐng),真正能夠?yàn)榭蛻籼峁﹥r(jià)值的是附加在開源軟件上的服務(wù)。提供了什么服務(wù)、到什么程度,都可以在開放透明化的前提下,通過定價(jià)或其他量化方式制定規(guī)則。使用者則需要通過付費(fèi)來獲得更好的支持,這樣開源的商業(yè)就能夠正常運(yùn)作下去。
開源理念與商業(yè)模式
?開源存在一定的理想成分,真正能做到純開源精神的,只有實(shí)現(xiàn)了財(cái)富自由的一些個(gè)體。即便是商業(yè)成功的開源公司,也無法做到真正意義的完全開源。開源是希望開放很多東西,但是也希望通過這種行為,獲取一定的經(jīng)濟(jì)價(jià)值。這其中是有一些方法的,第一種是通過更多功能的商業(yè)版軟件獲取利益,這是我們看到的最多的一種方式。很多軟件有開源版、社區(qū)版,也有專門收費(fèi)的商業(yè)版。這種方式的開源,我個(gè)人認(rèn)為不是一種特別好的選擇,因?yàn)橄喈?dāng)于將產(chǎn)品分為兩種,對(duì)客戶來說開源意義打了折扣。采用這種方式的公司非常多,這是無可厚非的。但如果選擇開源模式,勢(shì)必不是能夠賺取最大利益的一種方法,我們還是應(yīng)當(dāng)更加開放一些。
第二種模式,通過商業(yè)許可來進(jìn)行約束、收費(fèi),這是沒有問題的。如果他人違反了開源條約,又沒有進(jìn)行付費(fèi),可以通過法律的方式去尋求一些幫助或采取一些其他行動(dòng)。項(xiàng)目的開發(fā)者付出了勞動(dòng),別人是不可以不勞而獲的。
第三種模式,開源但隱藏掉一些關(guān)鍵的文檔或開發(fā)過程,甚至將文檔寫得比較生澀,以此來提高軟件的使用門檻。一般而言軟件或產(chǎn)品的開發(fā)者,希望客戶能夠熟悉產(chǎn)品,這樣用戶對(duì)產(chǎn)品的使用才能夠更加充分、更加順利。當(dāng)然也有一些開發(fā)者希望用戶對(duì)產(chǎn)品的細(xì)節(jié)特性不要太過了解,這樣客戶就會(huì)尋求產(chǎn)品方更好的技術(shù)服務(wù),這就是第三種模式的思想,這類模式也是可行的。而且一般而言,開源公司相對(duì)來說資源是比較少的,所以在某些產(chǎn)品細(xì)節(jié)方面做的沒那么好,也是可以被接受的。
開源許可證
開源許可證的種類是非常多的。開放的形式應(yīng)該允許開源作者使用任何形式的開源許可證,甚至后續(xù)根據(jù)意愿對(duì)其進(jìn)行修改。只要是真實(shí)的開源,在不觸犯法律法規(guī)、不泄漏他人隱私的情況下使用他人的軟件,這都是可以允許的。這方面有很多的例子,比如GPL利用“傳染性”確保衍生代碼繼續(xù)開放;Apache 鼓勵(lì)更多開發(fā)者貢獻(xiàn)和商業(yè)友好;一些學(xué)院派有著更加寬松和自由的方式。對(duì)一個(gè)公司或企業(yè)而言,如果需要使用開源軟件做一些產(chǎn)品,要非常注意許可證的使用規(guī)則,不能對(duì)其視而不見。
開源的參與者
?開源的參與者一般分為三類:使用者、參與者、引領(lǐng)者。這三類參與者對(duì)開源文化而言都是非常好的,沒有所謂的高下之分。
使用就是利用開源軟件,國內(nèi)大多數(shù)群體都是開源的使用者,包括很多大型的商業(yè)公司。而使用者需要注意的,首先是不要違反開源許可證和相應(yīng)商業(yè)公司的權(quán)利。其次,在使用開源軟件的過程中,遇到了問題要以正確的方式反饋給軟件的社區(qū),幫助軟件進(jìn)步,維護(hù)整個(gè)開源文化。
參與則是充分融入開源社區(qū),積極貢獻(xiàn)代碼和參與討論,回饋社區(qū)。這里所指的不一定是貢獻(xiàn)代碼,幫助項(xiàng)目翻譯或完善文檔、布道、校對(duì)代碼,甚至修改一些代碼中的拼寫,都可以算是參與開源。在這個(gè)過程中保持活躍、熱情、持續(xù)貢獻(xiàn),便能快速融入社區(qū)組織,與社區(qū)中的其他人熟悉后,大家也會(huì)更愿意幫助你了解項(xiàng)目,熟悉開發(fā)過程。這樣的例子在各大社區(qū)中非常多,雖然對(duì)于有些不太擅長英語的同學(xué)而言,一開始可能會(huì)遇到一些困難,但這并不是主要阻礙,更重要的是你是否愿意不斷地參與其中。
而引領(lǐng)者是開源上游社區(qū)發(fā)展的驅(qū)動(dòng)力量。這一點(diǎn)國外的上游社區(qū)會(huì)更多,但近年來國內(nèi)也出現(xiàn)了越來越多的上游力量。大家了解Git的分支方式就會(huì)知道,上游是可以更改的,參與的越多,就越有可能成為上游。國內(nèi)在這方面是非常有優(yōu)勢(shì)的,因?yàn)槲覀兊拈_發(fā)者眾多。上游是開源的根,如果想要做開源商業(yè)公司,更需要抓住這一點(diǎn)。
開源面臨的問題
開源同樣也面臨著很多問題,比如被濫用、存在安全漏洞等。因?yàn)樗跏嫉氖褂贸杀竞艿停绕涫窃趪鴥?nèi),很多企業(yè)在做項(xiàng)目時(shí),會(huì)直接將開源軟件拿來使用?,F(xiàn)有很多開源軟件的確會(huì)存在安全漏洞的問題。安全漏洞并不是開源軟件特有的,任何軟件都會(huì)存在這個(gè)問題,商業(yè)軟件有時(shí)會(huì)更多,因?yàn)樗氖褂谜唧w量沒有開源大,對(duì)于漏洞的發(fā)現(xiàn)能力也就不會(huì)那么強(qiáng)、那么迅速。因此,開源軟件在更新很快的情況下,反而能夠更好地避免漏洞。同時(shí)開源項(xiàng)目治理也是非常重要的,需要形成一套完備的開源社區(qū)管理制度,例如: 如何提交代碼、如何審核與檢查質(zhì)量、討論內(nèi)容范圍等。
開源商業(yè)訂閱模式
開源的商業(yè)模式就是訂閱,就像現(xiàn)在大家去購買在線的視頻是一樣的,訂閱不是為一次購買行為付費(fèi),而是對(duì)一個(gè)時(shí)間段的使用權(quán)付費(fèi)。紅帽公司在這一方面做的就比較成功,它的方式就是所有的產(chǎn)品都開源,但使用者可以選擇為訂閱服務(wù)付費(fèi),以此來獲得后續(xù)的支持,包括各種各樣的安全補(bǔ)丁,在整個(gè)訂閱期獲得商業(yè)公司的支持,使用者的體驗(yàn)和對(duì)安全的需求便能夠得到更好的滿足。
開源商業(yè)機(jī)會(huì)及中間件發(fā)展總結(jié)
?開源商業(yè)機(jī)會(huì):1.投資熱點(diǎn);2.基礎(chǔ)軟件IT服務(wù);3. 市場宣傳效應(yīng);4.通過云服務(wù)獲得商業(yè)收入。
關(guān)于開源中間件的發(fā)展,首先中間件是重要的基礎(chǔ)軟件組成部分,能夠幫助更高效的開發(fā)優(yōu)質(zhì)軟件。中間件的發(fā)展方向就是PaaS,現(xiàn)在國內(nèi)外都做得比較好。目前國內(nèi)外的中間件商品并不像原來銷售那么旺盛,但畢竟有市場需求在,未來我們希望在這方面通過開源,通過產(chǎn)品+咨詢+培訓(xùn)+開發(fā)的組合方式能夠有一些著力點(diǎn)。
最后,對(duì)開源而言更重要的是重視其真正的價(jià)值所在,明確開源的真正價(jià)值,重視上游,圍繞開源做一些商業(yè)的工作,把握其市場效應(yīng)。開源更看重的其實(shí)是它背后的市場行為。
嘉賓介紹:
張建鋒,永源中間件創(chuàng)始人。原紅帽公司 JBoss 應(yīng)用服務(wù)器核心開發(fā)組成員。畢業(yè)于北京郵電大學(xué)和清華大學(xué),供職于金山軟件,IONA 科技公司,紅帽軟件,初創(chuàng)永源中間件,金蝶天燕CTO。開源技術(shù)愛好者,熟悉JavaEE/JakartaEE 的各項(xiàng)規(guī)范,在分布式計(jì)算,企業(yè)應(yīng)用設(shè)計(jì),移動(dòng)行業(yè)應(yīng)用,DevOps 等技術(shù)領(lǐng)域有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)和見解,善于思考軟件背后蘊(yùn)涵的管理思想,致力于將管理學(xué)和軟件開發(fā)進(jìn)行結(jié)合。