本文來(lái)自微信公眾號(hào)“開源云中文社區(qū)”。
AWS、谷歌云平臺(tái)(GCP)和微軟Azure等云提供商長(zhǎng)期以來(lái)一直與開源社區(qū)保持著友好的關(guān)系。
一方面,云提供商的平臺(tái)即服務(wù)(PaaS)層成功地將大部分價(jià)值從軟件維護(hù)者重定向到了他們自己身上。然而,大型科技公司也為開源生態(tài)系統(tǒng)做出了重大貢獻(xiàn)。
一個(gè)值得關(guān)注的例子是Kubernetes項(xiàng)目,它起源于谷歌。其他例子包括領(lǐng)英的Apache Kafka、臉書的Presto以及愛彼迎的Apache Airflow和Superset。
云提供商和開源維護(hù)者之間的緊張關(guān)系即將發(fā)生巨大變化,我們需要關(guān)注目前正在發(fā)生的事情。
平臺(tái)即服務(wù)模型
最明顯的緊張來(lái)源于PaaS作為云提供商的主要收入模式的建立。在AWS的早期,其核心業(yè)務(wù)是計(jì)算和存儲(chǔ)。
盡管如此,原始虛擬機(jī)和承載重要Web服務(wù)所需的完全分布式架構(gòu)之間仍存在重大技術(shù)差距。隨著時(shí)間的推移,AWS意識(shí)到它需要另一層來(lái)確保其用戶的成功,主要圍繞著數(shù)據(jù)庫(kù)、隊(duì)列和作業(yè)編排器等復(fù)雜軟件的供應(yīng)和生命周期管理。
云依靠開源來(lái)實(shí)現(xiàn)該軟件的久經(jīng)考驗(yàn)的實(shí)現(xiàn),并利用其許可在之上創(chuàng)建了利潤(rùn)豐厚的業(yè)務(wù)線。這似乎赤裸裸地剝削了開源開發(fā)人員的努力,但不妨理解為什么會(huì)這樣。
云PaaS解決了兩個(gè)主要痛點(diǎn):規(guī)模經(jīng)營(yíng)經(jīng)濟(jì)、服務(wù)的分發(fā)。
作為一名工程師,筆者可以立即看到規(guī)模經(jīng)營(yíng)經(jīng)濟(jì)的必要性。筆者親眼目睹了操作這些系統(tǒng)的難度。它需要對(duì)工程基礎(chǔ)和軟件本身的特性有豐富的經(jīng)驗(yàn)才能可靠地提供和維護(hù)它們。
大多數(shù)組織將沒有內(nèi)部專業(yè)知識(shí),必須向擁有該專業(yè)知識(shí)的人支付費(fèi)用。
理論上,像亞馬遜或谷歌這樣的組織并不是唯一可以提供這類服務(wù)的組織,事實(shí)證明,許多開源社區(qū)已經(jīng)通過(guò)創(chuàng)建自己的PaaS產(chǎn)品將其產(chǎn)品商業(yè)化,比如ElasticSearch的Elastic、Kafka的Confluent、MongoDB等。這種商業(yè)模式為這些開源項(xiàng)目提供了至關(guān)重要的持續(xù)資本,也是它們?nèi)〉贸晒Φ闹匾颉?/p>
分發(fā)是云相對(duì)于任何其他軟件來(lái)源的第二大競(jìng)爭(zhēng)優(yōu)勢(shì)。大多數(shù)企業(yè)的嚴(yán)酷現(xiàn)實(shí)是,幾乎所有的行動(dòng)都受到嚴(yán)重的官僚主義限制,任何供應(yīng)商或開源軟件包都必須經(jīng)過(guò)繁瑣的審查才能開始使用。
云提供商的優(yōu)勢(shì)在于與地球上幾乎每一家大型企業(yè)都建立了商業(yè)關(guān)系,因此通過(guò)一家公司試用新服務(wù)的摩擦要小幾個(gè)數(shù)量級(jí),從而創(chuàng)造了一臺(tái)強(qiáng)大的銷售機(jī)器。事實(shí)證明,這種競(jìng)爭(zhēng)風(fēng)險(xiǎn)如此之大,以至于一些開源項(xiàng)目認(rèn)為這是存在的,并完全改變了許可以應(yīng)對(duì)威脅,尤其是Elastic和MongoDB。
強(qiáng)調(diào)這種商業(yè)模式的另一個(gè)有趣的副作用是代碼庫(kù)本身。AWS和ElasticSearch之間的爭(zhēng)吵導(dǎo)致該項(xiàng)目出現(xiàn)分歧,AWS維護(hù)OpenSearch,Elastic維護(hù)對(duì)遺留ElasticSearch代碼庫(kù)的控制。
這種情況也發(fā)生在更深層次的層面上,AWS RDS等服務(wù)有效地為其Aurora服務(wù)重寫了Postgres等主要關(guān)系數(shù)據(jù)庫(kù)(這是數(shù)據(jù)庫(kù)設(shè)計(jì)的一個(gè)重大進(jìn)步),但沒有為開源社區(qū)貢獻(xiàn)這種創(chuàng)新。這是因?yàn)檐浖肋h(yuǎn)不會(huì)離開托管服務(wù)的圍墻花園,但最終會(huì)忽略更廣泛的開源生態(tài)系統(tǒng)。
云提供商向前邁出一步
當(dāng)你分解這個(gè)問(wèn)題時(shí),云提供商和開源關(guān)系之間有兩個(gè)主要問(wèn)題在起作用。
首先,存在著在基礎(chǔ)設(shè)施提供商和開源維護(hù)者之間找到更公平的價(jià)值分配的問(wèn)題,這種分配不會(huì)過(guò)度補(bǔ)償克服企業(yè)官僚效率低下的能力,并使軟件生態(tài)系統(tǒng)更加自我維持。
在承認(rèn)這一問(wèn)題方面取得了進(jìn)展,AWS再次領(lǐng)先,與Grafana建立了合作伙伴關(guān)系,以分發(fā)具有明確收入共享協(xié)議的軟件。這是一場(chǎng)雙贏;Grafana為其產(chǎn)品獲得了適當(dāng)?shù)难a(bǔ)償,企業(yè)可以減少繁瑣的手續(xù),AWS在其目錄中獲得了另一項(xiàng)服務(wù)。
但是,這一切的根源還在于一個(gè)技術(shù)挑戰(zhàn):開源軟件往往非常復(fù)雜,需要第三方基礎(chǔ)設(shè)施提供商來(lái)提供良好的用戶體驗(yàn)。如果情況不再如此,這個(gè)問(wèn)題將發(fā)生重大變化。
組織不需要仔細(xì)分析他們將基礎(chǔ)設(shè)施外包給誰(shuí),就可以利用標(biāo)準(zhǔn)的開源組件,從而獲得分發(fā)優(yōu)勢(shì),而不是破壞游戲規(guī)則。
開發(fā)人員可以將軟件本身的價(jià)值貨幣化,而不是將其“管理”貨幣化。而且,用戶不必為了依賴最好的開源生態(tài)系統(tǒng)而在數(shù)據(jù)租賃方面做出妥協(xié)。
現(xiàn)在有一個(gè)強(qiáng)大的工具生態(tài)系統(tǒng),如Kubernetes和Terraform,可以幾乎自動(dòng)化分布式系統(tǒng)管理的所有題,但根本沒有充分發(fā)揮它們的潛力。因此有一些公司打包主要的開源解決方案,如Airbyte、Airflow、Prefect、ElasticSearch、Kafka、PostHog、Grafana和Argo CD,使開發(fā)人員能夠在Kubernetes之上使用DevOps最佳實(shí)踐進(jìn)行部署。這樣的平臺(tái)為工程師提供了他們?cè)谕泄墚a(chǎn)品中獲得的所有操作工具,以及經(jīng)過(guò)驗(yàn)證的升級(jí)流,所有這些都部署在自己的云中,以實(shí)現(xiàn)最大的控制和安全性。