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