This story was adapted from an original guest post written by Marc Campbell and Grant Miller, co-founders of Replicated. For a more in-depth look at how Campbell and Miller leveraged Cloudflare Access and Argo Tunnel to develop a cloud-based IaaS solution, visit the Cloudflare Blog.
毫無疑問,這個世界與網際網路的聯繫越來越緊密,部署環境也越加複雜。我們有足夠的理由相信,所有軟體開發都將透過網際網路完成並與網際網路保持合作只是時間問題。
成立於 2014 年的 Replicated 是一家基礎結構軟體公司,致力於發展一種新型企業軟體傳遞模型,稱為 Kubernetes Off-The-Shelf (KOTS) Software。他們的目標是方便使用者安裝並操作第三方軟體,這樣一來,將資料傳送給多租戶 SaaS 提供 者就不再是使用這些提供者服務的唯一途徑了。
Campbell 與 Miller 説:「我們認為,在不產生大量營運開銷的前提下安全地為您的資料提供應用程式,既是可以做到的,也是容易實現的。」
Replicated 的開發環境需要在 Kubernetes 上執行,這是因為 KOTS 在 Kubernetes 中執行並在 Kubernetes 叢集中管理第三方應用程式的生命週期。構建和驗證產品需要開發人員能夠存取叢集。
Replicated 的工程團隊已經擴大了規模,包含專門的前端工程師和其他專家,他們不應該為如何構建和維護自己的叢集而操心,因此,管理本機環境變得十分複雜,成為了一種負擔。他們需要簡化,以便保持開發人員的生產力。
Campbell 和 Miller 解釋:「我們的工程師每週都要浪費幾個小時來對本機環境進行疑難排解。當不太熟悉 Kubernetes 的前端工程師遇到問題時,他們需要與後端工程師配對並從後端工程師那裡獲得幫助;這樣佔用的就不只是一個人,而是兩個人的寶貴時間。我們需要有更好的解決方案。」
在尋找一款易於實施和維護的解決方案時,Replicated 將目光投向了 Cloudflare。他們起初使用 Cloudflare 進行 DNS 和 DDoS 保護,但隨著時間推移,也開始利用其他 Cloudflare 服務來保障自己服務的可用性與安全性。
Replicated 設計出一種解決方案,使用雲端基礎結構元件將其開發環境遷移至基礎結構即服務 (IaaS) 資源,而這些雲端基礎結構元件則透過 Cloudflare Access 和 Argo Tunnel 存取並加以保護。換言之,他們的整個開發環境都位於雲端。
最終,他們減少了開發人員對本機環境進行疑難排解所耗用的時間,使團隊中的每一名工程師都可 以維護全堆疊開發環境——即使他們沒有豐富的 Kubernetes 專業知識也無妨。
Campbell 和 Miller 表示:「與傳統部署相比,這種設置具有多種優勢。譬如,伺服器沒有公用 IP,我們不需要在 Google Load Balancer 中打開任何連接埠,對於 SSH 也是如此。要連線到這些伺服器,唯一方法是透過 Argo Tunnel,後者處於 Cloudflare Access 的保護之下。Access 提供了 BeyondCorp 式的身分驗證方法,不必使用 VPN,亦能確保環境可從全球任何地方進行存取。」
現在,Replicated 可以編寫一項原則來定義使用者應有權存取哪些電腦,並確保將該原則套用到所有地方。他們可以允許開發人員使用在別處使用的相同 Google 憑證來登入,而不必管理 SSH 憑證 (這些慼證使用壽命長且難以撤銷)。即使開發人員離職,他們也可以立即撤銷這些憑證,不必擔心仍有公用金鑰流落在外。
藉由 Cloudflare Access,Replicated 的開發人員可以輕鬆設定多個環境 (例如,嘗試新的 k8s 版本),而且不需要為此動用最強大的筆記型電腦。他們還可以選用本機作業系統和環境 (MacOS、Windows、Linux),因為只要支援 SSH,便可支援每個版本。此外,由於程式碼不在開發人員的筆記型電腦上,因此也不會被開發人員帶到咖啡店或其他不安全的地方。這是安全性方面的一項重大優勢,再也不會因為遺失筆記型電腦而使程式碼基底遭受入侵。
Campbell 和 Miller 指出:「得益於 Cloudflare Access 和 Argo Tunnel,每個開發環境都發揮了協作平台的作用。當兩名工程師不在同一房間時,這一點就特別有用。此外,我們也減少了對開發環境的依賴。如果我的伺服器由於未知原因無法正常運作,我就可以直接刪除,然後獲得一個全新的伺服器,不必花費數 小時進行疑難排解。」