張海濤
他山之石,可以攻玉,我們在厘清思路的基礎(chǔ)上,可以借鑒已有的經(jīng)驗,將中國的開源項目推向成功。
當前,使用自主安全可控的信息和服務(wù)是國家的重要決策,也是保障國家信息安全的必然趨勢。開源給軟件的自主安全可控提供了支撐,本文從開源的歷史、現(xiàn)狀、未來談起,分析開源的戰(zhàn)略價值和意義,同時探討成功實現(xiàn)開源項目的思路,希望能夠起到拋磚引玉的作用。
開源的歷史、現(xiàn)狀和未來:從小眾的極客技術(shù)到商業(yè)組織逐鹿的戰(zhàn)場
1.從開源歷史看,技術(shù)如果能夠解決產(chǎn)業(yè)和行業(yè)痛點,就能得到大的發(fā)展,否則只能是技術(shù)極客的玩具。
開源軟件的發(fā)展大致經(jīng)歷了三個階段。第一階段是上世紀80到90年代,這個階段是以個人和大學(xué)的技術(shù)極客為主的小眾市場;第二階段主要是互聯(lián)網(wǎng)時代,Linux和Apache Web服務(wù)器在互聯(lián)網(wǎng)業(yè)務(wù)占據(jù)了統(tǒng)治地位;第三階段是2007年云計算出現(xiàn)后,商業(yè)模式和市場需求推動了開源業(yè)務(wù)出現(xiàn)新的變化,人們開始考慮用開源作為工具,滿足商業(yè)和變現(xiàn)的訴求。
在第一階段,Linus Torvalds于1991年開始了著名的Linux內(nèi)核項目,但沒有用在生產(chǎn)系統(tǒng)和主流商業(yè)場景,因此這個時候開源領(lǐng)域沒有主流廠商的影子,甚至有些領(lǐng)頭企業(yè)比如微軟是反對開源的。在互聯(lián)網(wǎng)時代,開源軟件開始進入業(yè)務(wù)系統(tǒng)。當時很多互聯(lián)網(wǎng)公司還沒有摸索到正確的商業(yè)模式,不能負擔(dān)商業(yè)軟件高昂的成本,同時,互聯(lián)網(wǎng)業(yè)務(wù)的擴展性和穩(wěn)定性又深受詬病,因此開源的Linux和Apache服務(wù)器就成了標配,并經(jīng)受了互聯(lián)網(wǎng)流量的檢驗。從2007年開始的云計算浪潮將開源軟件推到了一個新的高度。云計算基礎(chǔ)技術(shù)的復(fù)雜度使技術(shù)成本越來越大,而開源使得眾多廠商能夠“共享”技術(shù),因為云計算廠商利潤不是靠賣技術(shù)實現(xiàn)。開源不僅解決了云計算時代技術(shù)成本的問題,還能構(gòu)建開發(fā)者生態(tài)、應(yīng)用生態(tài)和解決方案,更快地應(yīng)對客戶的需求。
2.開源已經(jīng)從技術(shù)極客的無序活動,發(fā)展到當前領(lǐng)導(dǎo)企業(yè)不惜重金投入
當前開源項目的特點之一是眾多公司投入開源項目,使原本只有技術(shù)特性的開源項目帶著服務(wù)產(chǎn)業(yè)和行業(yè)的目標性,各公司在開源項目中不惜投入,以占領(lǐng)話語權(quán)。這種公司級別的投入,對開源軟件和開源社區(qū)來說,是一枚硬幣的兩個面。一方面,開源項目容易獲得資金和資源支持,能夠迅速成長,并實現(xiàn)行業(yè)落地;另一方面,項目不可避免地帶有公司的商業(yè)訴求,影響了開源軟件的中立性。因此,廠商、用戶、SI、開發(fā)者等多方參與和中立的治理成為項目是否能走遠的關(guān)鍵。
同時開源項目是否有前途、是否成功,不在于發(fā)起方是否是大公司和項目技術(shù)是否高超,而在于開源項目能否解決產(chǎn)業(yè)或者行業(yè)共同的痛點、能否引起其他公司共鳴和參與、方案能否被用戶使用。大公司投入資源相對多,在開源項目中容易占據(jù)有影響力的位置,但是小公司和眾多初創(chuàng)企業(yè)仍然有很多機會。當前仍有很多初創(chuàng)企業(yè)和小公司主導(dǎo)的開源項目,比如Apache Kafka背后的Confluent公司、MapD后面的MapD Technologies公司等??傊?,開源不只是大公司的工具,也給小公司的生長帶來了希望。
3.開源:趨勢已定,未來已來
在云計算流行之前,基礎(chǔ)技術(shù)總是被當做公司和業(yè)務(wù)的差異點加以保護;在云計算時代,給客戶提供的是個性化的服務(wù),公司和業(yè)務(wù)的差異點不是技術(shù)和產(chǎn)品,技術(shù)反而成為了重復(fù)制造的車輪?;A(chǔ)的共享技術(shù)的開源,有利于開放和共享成本,開源技術(shù)給第三方合作提供多樣性、個性化的業(yè)務(wù),同時吸引包括開發(fā)者、用戶、系統(tǒng)集成商、技術(shù)提供方等多方構(gòu)建生態(tài)。可以看到,開源之路方興未艾。
開源是中國企業(yè)實現(xiàn)商業(yè)戰(zhàn)略的工具
開源最早興起于美國,最近幾年中國政府和企業(yè)開始對其加大投入。開源,對中國政府和企業(yè)來說,也不應(yīng)是單純的技術(shù)問題,而應(yīng)有著更高層面的戰(zhàn)略考慮。
1.通過開源構(gòu)筑市場優(yōu)勢,搶占和開辟市場
最典型的例子是當前銷售服務(wù)器的廠商,裝機的操作系統(tǒng)都是開源的Linux,這些公司聚焦在硬件設(shè)計、制造優(yōu)化、成本降低和市場渠道上面。除了開源軟件銷售硬件模式,企業(yè)還有很多可以利用開源的方法去占領(lǐng)和開拓市場,比如銷售開源軟件的企業(yè)版本、開源平臺軟件銷售增值軟件或服務(wù)、開源硬件設(shè)計銷售服務(wù)等。思科甚至利用OpenDayLight引導(dǎo)開源方向,避免開源項目朝不利于自身業(yè)務(wù)的方向演進??傊_源作為一種戰(zhàn)略工具,可以有很多種拓展市場的使用場景,這些對中國企業(yè)是有參考和借鑒意義的。
2.使用開源提高研發(fā)效率,降低成本
除了使用開源產(chǎn)品構(gòu)建商業(yè)產(chǎn)品和解決方案,越來越多的公司會使用內(nèi)源(inner-source)來開發(fā)自己的產(chǎn)品。內(nèi)源是把開源開發(fā)的最佳實踐應(yīng)用在組織內(nèi)部,并在內(nèi)部建立類似開源的文化,以提高內(nèi)部研發(fā)效率。即使公司在開發(fā)專有軟件,內(nèi)部開發(fā)仍可以使用內(nèi)源,對內(nèi)開放,共享部分代碼的開發(fā)。
3.通過開源吸引客戶和合作伙伴構(gòu)筑生態(tài),催熟產(chǎn)業(yè)
開源生態(tài)并不依賴與軟件公司的商業(yè)聯(lián)系,而是依賴開源社區(qū),因此具有長期的技術(shù)保證性。越來越多的互聯(lián)網(wǎng)企業(yè)、軟件和硬件廠商、應(yīng)用方案提供商、運營商、芯片廠商、學(xué)校和研究機構(gòu)等,都成為開源軟件的應(yīng)用者、參與者和貢獻者,并成為開源社區(qū)的重要成員。在中國,有關(guān)方面均已著手于打造和推動開源社區(qū)、開源平臺、開源基金會等開源生態(tài)的建立,僅2018年,其就在云計算、大數(shù)據(jù)、人工智能、工業(yè)互聯(lián)網(wǎng)、數(shù)字經(jīng)濟等領(lǐng)域啟動了大量與開源相關(guān)的重大專項、重大工程。開源生態(tài)也在不斷完善,例如,在網(wǎng)絡(luò)七層堆棧的最下一層,開源項目包括了Open vSwitch等;在網(wǎng)絡(luò)管理和編排層,有OPEN-O項目;而再往上的編程框架層,如Node.js,擁有的服務(wù)器端JavaScript是全球發(fā)展速度最快的網(wǎng)頁技術(shù)平臺……在堆棧的每一層,都有各類創(chuàng)新。
4.開源和標準
基礎(chǔ)軟件之間的互操作性涉及相當多標準的制定,由于標準與商業(yè)利益掛鉤,企業(yè)也會通過開源社區(qū)來控制標準。2016年,Docker還是云計算的容器技術(shù)標準制定者,CNCF開源社區(qū)通過OCI瓦解了它的優(yōu)勢,背后就是公司間標準的博弈。此外,在電信領(lǐng)域開源項目中,標準的爭奪更加激烈。標準組織如ETSI、MEF和TMForum發(fā)起了一些開源項目,以推進標準的形成,各公司也在積極備戰(zhàn)開源項目,從而影響開源項目之間的標準。
5.招人才
幾乎所有與開源相關(guān)的公司,都不會放過利用開源招聘人才。但是,是否能留住人才,給人才提供未來的發(fā)展空間,還需要在公司文化和內(nèi)部管理上與開源有一定匹配。因此,雖然招聘人才是公司開源的訴求之一,但是公司的文化才能決定人才能留住多久。
他山之石,可以攻玉
什么樣的方法可以讓我們在方興未艾的開源領(lǐng)域占領(lǐng)一席之地呢?中國政府和企業(yè)可以借鑒當前一些國家的成熟做法,避免走彎路。
1.成熟的開源產(chǎn)業(yè)生態(tài)
一個成熟的開源產(chǎn)業(yè)生態(tài),不僅需要開發(fā)者和技術(shù)貢獻方、社區(qū)、媒體、基金會、政府,還需要成熟的風(fēng)險資金投入和退出機制。如果沒有風(fēng)險投資的成功退出,開源只能停留在技術(shù)極客階段,這對做大開源產(chǎn)業(yè)是不利的。中國開源目前在技術(shù)和社區(qū)方面追趕比較快,但有開源的引導(dǎo)基金且有成功的營銷模式,才能形成開源產(chǎn)業(yè)的閉環(huán)。中國政府和中國領(lǐng)導(dǎo)企業(yè)可以在打造成熟開源生態(tài)方面貢獻更大的力量。
2.中國企業(yè)可以借鑒成熟的開源項目運作規(guī)則,趕超世界上的領(lǐng)先企業(yè)
(1)洞察行業(yè)趨勢,解決業(yè)務(wù)痛點
“只要站在風(fēng)口,豬也能飛起來”。開源的技術(shù)項目很多,但是能夠火起來的不一定是技術(shù)最厲害的,反而是那些能解決熱點問題、管理得當?shù)捻椖?。因此,如何進行風(fēng)口的把握、守住項目中的占位以及對行業(yè)趨勢的判斷,就要比拼真正的實力了。
(2)用源代碼說話
開源項目只有用源代碼做敲門磚,才能在社區(qū)和項目中占據(jù)關(guān)鍵位置,才能以專業(yè)能力影響項目進度。中國企業(yè)目前的困境是,缺少開疆擴土的架構(gòu)師,跟在別人后面修修補補,貢獻的代碼多是影響力不大的補丁。相信隨著中國技術(shù)的崛起,這種情況會有根本的改變。
(3)開源項目合作和市場上的競爭:加入還是發(fā)起開源項目
開源項目中合作的企業(yè)往往是市場上的競爭對手,西方企業(yè)能將競合關(guān)系玩的得心應(yīng)手,這點值得中國企業(yè)借鑒。由于競爭關(guān)系,中國的領(lǐng)導(dǎo)企業(yè)往往喜歡“重新發(fā)明輪子”,而漠視競爭對手主導(dǎo)的開源項目。其實,開源是利用社區(qū)的力量來共享開發(fā)成本,形成產(chǎn)業(yè)的生態(tài),因此“重新發(fā)明輪子”的做法往往消耗資源、分化生態(tài),不利于做大產(chǎn)業(yè)和發(fā)揮開源的優(yōu)勢。
(4)客戶成功
開源已經(jīng)從十幾年前純粹的技術(shù)行為,逐漸演化成能夠解決產(chǎn)業(yè)和行業(yè)痛點的重要力量。因此,成功的開源項目背后總是有企業(yè)的背影,客戶的成功應(yīng)用對于開源項目的技術(shù)推進有示范作用,是開源項目成功的保證之一。因此,關(guān)注客戶的成功,也是開源項目成功的催化劑。
(5)其它
其它促進開源項目成功的因素還有很多,包括開源項目上下游合作、開源許可的選擇和根據(jù)項目進展的PR活動等。開源上下游的項目負責(zé)人往往根據(jù)技術(shù)、客戶、陣營(比如Linux或者Apache基金會)、團隊等因素的互補關(guān)系來決策,因此成功的開源項目往往是生態(tài)的成功。
3.開源的公司治理
在大公司,負責(zé)公司開源事務(wù)的部門可以是central office,而小公司可能就是一或兩個負責(zé)人,但無論如何,公司戰(zhàn)略與開源投入的匹配總是需要獲得高層認可。由于開源社區(qū)涉及外部組織的利益,因此項目的推動并不會一帆風(fēng)順,這就更加需要厘清公司訴求,折中各方利益,在曲折中推動前進。此外,怎么考核和評價公司資源投入的價值,也是要明確的。
4.開源軟件的許可
據(jù)說當前的開源軟件許可有幾百種,但最常用的只有幾種,包括GPL、LGPL、Apache License、Mozilla、BSD和MIT等。開源許可的選擇對于項目的推進和成功有著很大的影響。
開源項目究竟選擇什么開源許可,需要結(jié)合項目的地位、目標、競爭甚至商業(yè)考慮才能最終確定。
5.社區(qū):領(lǐng)頭羊、牧羊犬和社區(qū)運作
一個好的開源社區(qū),既要有領(lǐng)頭羊,也要有牧羊犬。領(lǐng)頭羊是能洞察遠景、看清技術(shù)方向的領(lǐng)頭人,牧羊犬是看護社區(qū)、維持社區(qū)運作的職業(yè)經(jīng)理人。
社區(qū)運作對于項目成功是非常重要的。有一種說法:好的開源代碼+差的項目運作=失敗項目;差的開源代碼+好的項目運作 =成功項目。這說明即使開始開源代碼質(zhì)量不高,在高質(zhì)量的項目運作下,代碼質(zhì)量可以提升從而達到項目成功的目的。因此,重視開源社區(qū)運營,對開源項目的成功至關(guān)重要。
總結(jié)
隨著云計算市場的發(fā)展壯大,未來會有越來越多的開源項目生根發(fā)芽。開源項目是對國家提倡的信息技術(shù)和服務(wù)的自主安全可控的支撐,因此未來無論是國外還是國內(nèi),開源將持續(xù)發(fā)展。他山之石,可以攻玉,我們在厘清思路的基礎(chǔ)上,可以借鑒已有的經(jīng)驗,將中國的開源項目推向成功。