從某種程度上說,開源在云端已經(jīng)取得了巨大的成功。像Kubernetes這樣的開源解決方案已經(jīng)把封閉源代碼作為主力。然而,在其他方面,云中的開源完全失敗了?;谠频募軜?gòu)繼續(xù)為實(shí)現(xiàn)開源保護(hù)用戶自由的創(chuàng)始目標(biāo)帶來根本問題。對(duì)于許多組織來說,使用云意味著將控制權(quán)交給專有解決方案提供商,并面臨著嚴(yán)格的鎖定風(fēng)險(xiǎn)。
目前創(chuàng)新互聯(lián)公司已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、定西網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。這些觀察提出了一個(gè)問題:為什么開放源代碼在云中沒有更大的影響力?如何使云計(jì)算對(duì)開放源代碼更友好?
云的開源問題
從云時(shí)代的早期開始,開源和云之間就一直處于緊張狀態(tài)。
當(dāng)自由和開放源碼軟件在1980年代由Richard Stallman和GNU項(xiàng)目首次出現(xiàn)時(shí),其主要目標(biāo)(正如Stallman當(dāng)時(shí)所說的那樣)是向任何想要它的人提供軟件源代碼,以便用戶可以使用計(jì)算機(jī)并相互協(xié)作。
如果在本地設(shè)備上運(yùn)行軟件,那么訪問源代碼就可以實(shí)現(xiàn)這些目標(biāo)。它確保您可以研究程序的工作原理,與他人共享修改并自己修復(fù)錯(cuò)誤。只要源代碼可用并且您可以在自己的設(shè)備上運(yùn)行軟件,軟件供應(yīng)商就不能“分割用戶并征服他們”。
但是,當(dāng)軟件遷移到基于云的體系結(jié)構(gòu)時(shí),這種計(jì)算方式會(huì)發(fā)生根本變化。在云計(jì)算中,作為最終用戶訪問的軟件運(yùn)行在由其他人控制的設(shè)備上。即使該軟件的源代碼可用(在SaaS平臺(tái)上通常不可用,盡管從理論上講可能是這樣),但其他人(尤其是擁有運(yùn)行該軟件的服務(wù)器的人)仍可以控制您的數(shù)據(jù),決定軟件的配置方式,決定何時(shí)更新軟件等等。最終用戶之間沒有團(tuán)結(jié),最終用戶與軟件提供商之間沒有平等。
Stallman和其他自由軟件的倡導(dǎo)者早就意識(shí)到了這一點(diǎn)。到2010年,Stallman 感嘆用戶使用基于云的軟件時(shí)放棄的控制權(quán),并創(chuàng)造了“服務(wù)軟件替代品”之類的術(shù)語來模擬SaaS架構(gòu)。他們還引入了Affero通用公共許可證,旨在將GNU通用公共許可證(主要的免費(fèi)軟件許可證)的保護(hù)范圍擴(kuò)展到網(wǎng)絡(luò)上托管的應(yīng)用程序。
這些努力的成果充其量是平庸的。自2000年代中期以來,Stallman對(duì)用戶不使用SaaS平臺(tái)的要求對(duì)阻止云的爆炸性增長(zhǎng)幾乎沒有任何作用。如今,很難想到無法通過SaaS架構(gòu)獲得的主要軟件平臺(tái),也很難找到在軟件自由性問題上回避SaaS的最終用戶。
而且,盡管Affero許可證獲得了廣泛的關(guān)注,但其推動(dòng)云計(jì)算中自由和開源軟件事業(yè)發(fā)展的能力受到限制。Affero許可證的主要目的是確保軟件供應(yīng)商不能聲稱基于云的軟件未“分發(fā)”給用戶,因此不受傳統(tǒng)開源許可證(如GPL)的約束。這總比沒有好,但是對(duì)于解決與用戶使用基于云的服務(wù)時(shí)面臨的數(shù)據(jù)控制,軟件修改等相關(guān)的問題,它卻無濟(jì)于事。
因此,基于云計(jì)算的體系結(jié)構(gòu)繼續(xù)對(duì)自由和開源軟件的基本目標(biāo)構(gòu)成根本挑戰(zhàn)。很難想像一種解決這些挑戰(zhàn)的方法,更難以想象它們?cè)谠朴?jì)算應(yīng)用比以往任何時(shí)候都強(qiáng)大的世界中消失。
開源云計(jì)算的成功
通過另一種更積極的方式講述云中開源的故事。從某些領(lǐng)域的角度來看,例如私有云和“云原生”基礎(chǔ)架構(gòu)技術(shù),開源取得了巨大的成功。
像Kubernetes這樣的項(xiàng)目,Kubernetes是一個(gè)開放源代碼應(yīng)用程序編排平臺(tái),它已經(jīng)變得非常占主導(dǎo)地位,甚至不再?zèng)]有競(jìng)爭(zhēng)對(duì)手了。即使是VMware(其虛擬機(jī)編配工具與Kubernetes競(jìng)爭(zhēng))現(xiàn)在也在運(yùn)行自己的Kubernetes發(fā)行版,Kubernetes贏得了編排器戰(zhàn)爭(zhēng)。
OpenStack是一個(gè)用于構(gòu)建私有云的平臺(tái),對(duì)于基于云計(jì)算的體系結(jié)構(gòu)的開源而言,也取得了類似的成功案例。也許它還沒有像Kubernetes那樣徹底抹殺競(jìng)爭(zhēng)者,但是OpenStack對(duì)于尋求建立私有云的公司來說仍然是一個(gè)非常成功的,廣泛使用的解決方案。
可以對(duì)Docker得出類似的結(jié)論,Docker是一個(gè)開放源代碼容器化平臺(tái),對(duì)于那些想要比專有虛擬機(jī)更敏捷,更節(jié)能的解決方案的公司而言,它已成為選擇解決方案。
甚至在公司確實(shí)希望使用普通的虛擬機(jī)構(gòu)建云計(jì)算的情況下,Linux內(nèi)置的開源虛擬機(jī)管理程序KVM現(xiàn)在也可以與來自VMware和Microsoft等廠商的競(jìng)爭(zhēng)VM平臺(tái)保持競(jìng)爭(zhēng)。
在構(gòu)建基于私有(或較小程度上為混合)的云基礎(chǔ)架構(gòu)時(shí),開源在過去十年中做得很好。十年前,不得不依靠專有工具來填補(bǔ)空白,而Kubernetes、OpenStack、Docker和KVM等平臺(tái)現(xiàn)在已成為事實(shí)上的解決方案。
開源與公共云
但是,當(dāng)查看公共云時(shí),開源似乎不太成功。盡管主要的公共云為Kubernetes和Docker之類的平臺(tái)提供SaaS解決方案,但它們傾向于將它們包裝在專有擴(kuò)展中,這些專有擴(kuò)展使這些平臺(tái)的開源程度不如實(shí)際。
同時(shí),公共云中的大多數(shù)核心IaaS和SaaS服務(wù)均由封閉源軟件提供支持。如果要在Amazon S3中存儲(chǔ)數(shù)據(jù),或在Azure Functions中運(yùn)行無服務(wù)器功能,或在Google Cloud中啟動(dòng)連續(xù)交付管道,則將使用其源代碼永遠(yuǎn)都看不到的專有解決方案。盡管事實(shí)上存在許多此類服務(wù)的開源等效項(xiàng)(例如Qinling、無服務(wù)器功能服務(wù)或CI/CD的Jenkins)。
云市場(chǎng)的消費(fèi)者方面也由封閉源解決方案主導(dǎo)。盡管存在諸如Zoom和Webex之類的平臺(tái)的開源替代方案,但即使在專有協(xié)作平臺(tái)的隱私和安全性缺陷引起恐慌的情況下,它們也很少受到關(guān)注。
建立更好的開源云
對(duì)于在云中運(yùn)行更多開源軟件的一個(gè)明顯反對(duì)意見是,云服務(wù)需要花費(fèi)托管費(fèi)用,這使供應(yīng)商更難提供免費(fèi)的開源解決方案。由于用戶提供了自己的基礎(chǔ)架構(gòu),因此可以輕松地將Firefox交給人們安裝在自己的計(jì)算機(jī)上。但是,托管等效于Zoom的開源程序要昂貴得多,這需要龐大且昂貴的基礎(chǔ)架構(gòu)。
但是,這種觀點(diǎn)反映了缺乏想象力。有傳統(tǒng)的集中式云基礎(chǔ)架構(gòu)的替代方案。與傳統(tǒng)的IaaS基礎(chǔ)架構(gòu)相比,分布式對(duì)等網(wǎng)絡(luò)可用于托管開源云服務(wù),而服務(wù)提供商的成本要低得多。
同時(shí)也要指出,許多專有的云服務(wù)都是免費(fèi)的。從這個(gè)意義上說,有關(guān)SaaS提供商需要補(bǔ)償其基礎(chǔ)設(shè)施費(fèi)用,因此不能提供免費(fèi)和開源解決方案的說法沒有任何意義。如果Zoom可以免費(fèi)使用基本用法,則沒有理由也不能將其開源。
誠然,將更多的云服務(wù)開源是無法解決上面討論的有關(guān)用戶在他人擁有的服務(wù)器上運(yùn)行代碼時(shí)放棄的控制的根本問題。但這至少將為用戶提供一些了解他們使用的SaaS應(yīng)用程序或公共云IaaS服務(wù)如何工作的能力,以及擴(kuò)展和改進(jìn)它們的更多機(jī)會(huì)。
想象一下一個(gè)世界,例如,F(xiàn)acebook或Gmail的源代碼處于打開狀態(tài)。我們懷疑對(duì)于隱私問題的關(guān)注會(huì)減少,如果有人可以看到代碼,那么第三方將有更多的機(jī)會(huì)構(gòu)建與這些平臺(tái)集成的出色解決方案。
但是,就目前而言,這些愿景似乎是不現(xiàn)實(shí)的。幾乎沒有跡象表明云中的開源將超越已經(jīng)占據(jù)主導(dǎo)地位的私有云和應(yīng)用程序部署壁ni。對(duì)于任何同意Linus Torvalds認(rèn)為該軟件免費(fèi)的軟件更好的人來說,這是一個(gè)恥辱。