這篇故事改編自 Replicated 聯(lián)合創(chuàng)始人 Marc Campbell 和 Grant Miller 最初撰寫(xiě)的客座文章。若要深入了解 Campbell 和 Miller 如何利用 Cloudflare Access 和 Argo Tunnel 開(kāi)發(fā)基于云的 IaaS 解決方案,請(qǐng)?jiān)L問(wèn) Cloudflare 博客。
毫無(wú)疑問(wèn),這個(gè)世界的 Internet 連接程度越來(lái)越高,部署環(huán)境也越發(fā)復(fù)雜。我們有足夠的理由相信,所有軟件開(kāi)發(fā)都通過(guò) Internet 完成并與 Internet 保持協(xié)同只是時(shí)間問(wèn)題。
成立于 2014 年的 Replicated 是一家基礎(chǔ)設(shè)施軟件公司,致力于開(kāi)發(fā)一種新型企業(yè)軟件交付模型,稱(chēng)為 Kubernetes 現(xiàn)成(KOTS)軟件。他們的目標(biāo)是方便用戶(hù)安裝并操作第三方軟件,這樣一來(lái),將數(shù)據(jù)發(fā)送給多租戶(hù) SaaS 提供商就不再是使用這些提供商服務(wù)的唯一方式了。
“我們認(rèn)為,在不產(chǎn)生大量運(yùn)營(yíng)開(kāi)銷(xiāo)的前提下安全地為你的數(shù)據(jù)提供應(yīng)用程序,既是可能做到的,也是很容易做到的,”Campbell 和 Miller 說(shuō)。
挑戰(zhàn)
Replicated 的開(kāi)發(fā)環(huán)境需要在 Kubernetes 上運(yùn)行,這是因?yàn)?KOTS 在 Kubernetes 中運(yùn)行并在 Kubernetes 群集中管理第三方應(yīng)用程序的生命周期。構(gòu)建和驗(yàn)證產(chǎn)品需要開(kāi)發(fā)人員能夠訪(fǎng)問(wèn)群集。
Replicated 的工程團(tuán)隊(duì)已經(jīng)擴(kuò)大了規(guī)模,包含了專(zhuān)門(mén)的前端工程師和其他專(zhuān)家,而這些專(zhuān)家不應(yīng)該為如何構(gòu)建和維護(hù)自己的群集而擔(dān)心,因此,管理本地環(huán)境變得十分復(fù)雜,成為了一種負(fù)擔(dān)。為了保持開(kāi)發(fā)人員的生產(chǎn)力,他們需要進(jìn)行簡(jiǎn)化。
“我們的工程師每周都要浪費(fèi)幾個(gè)小時(shí)來(lái)對(duì)本地環(huán)境進(jìn)行故障排除,”Campbell 和 Miller 解釋說(shuō)?!爱?dāng)不太熟悉 Kubernetes 的前端工程師遇到問(wèn)題時(shí),他們需要與后端工程師配對(duì)并從后端工程師那里獲得幫助;這樣占用的就不僅僅是一個(gè)人,而是兩個(gè)人的寶貴時(shí)間。我們需要有更好的解決方案?!?/span>
在尋找一款易于實(shí)施和維護(hù)的解決方案時(shí),Replicated 將目光投向了 Cloudflare。他們起初使用 Cloudflare 進(jìn)行 DNS 和 DDoS 保護(hù),但隨著時(shí)間的推移,他們開(kāi)始利用其他 Cloudflare 服務(wù)來(lái)保障自己的服務(wù)可用性和安全性。
Replicated 使用 Cloudflare 保護(hù)其云端開(kāi)發(fā)環(huán)境
Replicated 設(shè)計(jì)出一種解決方案,使用基于云的基礎(chǔ)設(shè)施組件將其開(kāi)發(fā)環(huán)境遷移至基礎(chǔ)設(shè)施即服務(wù)(IaaS)資源,而這些基于云的基礎(chǔ)設(shè)施組件是通過(guò) Cloudflare Access 和 Argo Tunnel 訪(fǎng)問(wèn)并加以保護(hù)的。換句話(huà)說(shuō),他們的整個(gè)開(kāi)發(fā)環(huán)境都位于云中。
最終,他們減少了開(kāi)發(fā)人員對(duì)本地環(huán)境進(jìn)行故障排除所耗用的時(shí)間,使團(tuán)隊(duì)中的每個(gè)工程師都可以維護(hù)全棧開(kāi)發(fā)環(huán)境——即使他們沒(méi)有豐富的 Kubernetes 專(zhuān)業(yè)知識(shí)也無(wú)妨。
“與傳統(tǒng)部署相比,這種配置具有多種優(yōu)勢(shì),”Campbell and Miller 表示?!袄?,服務(wù)器沒(méi)有公用 IP,我們不需要在 Google Load Balancer 中打開(kāi)任何端口,包括用于 SSH。要連接到這些服務(wù)器,唯一方法是通過(guò) Argo Tunnel,而 Argo Tunnel 是由 Cloudflare Access 保護(hù)的。Access 提供了 BeyondCorp 式的身份驗(yàn)證方法,可確保無(wú)需使用 VPN 即可從全球任何地方訪(fǎng)問(wèn)環(huán)境。”
Cloudflare Access 打消了安全顧慮
現(xiàn)在,Replicated 可以編寫(xiě)一個(gè)策略來(lái)定義用戶(hù)應(yīng)有權(quán)訪(fǎng)問(wèn)哪些計(jì)算機(jī),并確保將該策略應(yīng)用于所有地方。他們可以允許開(kāi)發(fā)人員使用在其他任何地方使用的相同 Google 憑據(jù)來(lái)登錄,而不必管理 SSH 證書(shū)(這些證書(shū)使用壽命長(zhǎng)且難以撤銷(xiāo))。即使開(kāi)發(fā)人員離開(kāi),他們也可以立即撤銷(xiāo)這些憑據(jù),不必?fù)?dān)心仍有公鑰流落在外。
借助 Cloudflare Access,Replicated 的開(kāi)發(fā)人員可以輕松設(shè)置多個(gè)環(huán)境(例如嘗試新的 k8s 版本),而且不需要為此動(dòng)用最強(qiáng)大的筆記本電腦。他們還可以選擇其本地操作系統(tǒng)和環(huán)境(MacOS、Windows、Linux),因?yàn)橹灰С?SSH,就可以支持每個(gè)版本。此外,由于代碼不在開(kāi)發(fā)人員的筆記本電腦上,因此也不會(huì)被開(kāi)發(fā)人員帶到咖啡店或其他不安全的地方。這是安全方面的一項(xiàng)重大優(yōu)勢(shì),再也不會(huì)因?yàn)閬G失筆記本電腦而使代碼庫(kù)遭到破壞了。
“得益于 Cloudflare Access 和 Argo Tunnel,每個(gè)開(kāi)發(fā)環(huán)境都發(fā)揮了協(xié)作平臺(tái)的作用,”Campbell 和 Miller 說(shuō)道?!爱?dāng)兩個(gè)工程師不在同一房間時(shí),這一點(diǎn)就特別有用。此外,我們也減少了對(duì)開(kāi)發(fā)環(huán)境的依賴(lài)——如果我的服務(wù)器由于未知原因無(wú)法正常工作,我就可以直接刪除,然后獲得一個(gè)全新的服務(wù)器,而不必花費(fèi)數(shù)小時(shí)進(jìn)行故障排除?!?/span>
“Cloudflare Access 提供了 BeyondCorp 式的身份驗(yàn)證方法,可確保無(wú)需使用 VPN 即可從全球任何地方訪(fǎng)問(wèn)環(huán)境?!盡arc Campbell 和 Grant Miller