Lyft開源了自家內部使用的基礎設施工具Clutch,其提供了可擴展UI以及API平臺,讓工程團隊能夠建置、執行和維護用戶友善的工作流程,包括特定的安全機制以及存取控制,另外,Clutch還提供了管理AWS、Envoy和Kubernetes等平臺的功能,官方提到,由於Clutch可擴展性設計,可以支援系統堆疊中的任何元件。

Lyft提到,雲端運算採用的成本已經大幅下降,根據CNCF Landscape,現在已經有300多個開源專案,並衍伸出1,000多個商業產品,雖然企業已經可以快速選用這些專案,以及供應商提供的解決方案,但是每種技術都有自己的配置、工具、日誌和指標,開發人員要可以快速且安全地,在整個堆疊中執行變更,需要大量且持續投資工具開發,而這是大部分企業做不到的。

在使用Clutch之前,Lyft的工程師需要仰賴各種命令列工具和網頁介面等,才能執行一些簡單的任務,官方舉例,像是在Lyft中最常處理的警示,就需要綜合6種不同的來源才能解決,包括警示、其他服務的儀表板、Runbook、文件、供應商控制臺或是腳本、配置設定。而這使得Lyft意識到,他們的工具已經無法跟上業務的發展。

所以就算新基礎設施越來越容易採用,隨著平臺以及工程團隊規模的成長,管理新元件也會變得困難,而Lyft花了一年開發Clutch,就是要來解決因為內部開發人員經驗與工具不足,所產生的問題,讓基礎設施團隊能夠為整個工程團隊,提供直覺且安全的基礎設施管理介面。

Clutch由兩部分構成,後端是以Go開發而成,設計成可擴展的基礎設施控制平面,可進行一般身份驗證,並且提供系統的可觀察性以及日誌紀錄稽核功能。而React前端是可插拔,以工作流為導向的UI,讓使用者不需要先具備豐富的JavaScript知識,能以更少的程式碼創建新功能,且更易於維護。

Clutch採用了Envoy代理的許多核心模式,同樣也由配置、架構驅動,在不影響可維護性的狀態下,使用者可以利用模組化擴展基礎架構,使其能夠用於不同的使用案例中。Lyft提到,擴展Clutch不需要進行分叉或是重寫工作,自定義的公共和私有外部儲存庫的程式碼,可以直接被編譯到應用程式中,這使得大小企業採用的特殊技術,都能夠匯整到Clutch,將Clutch作為基礎設施控制平面。

經過一年的發展,Lyft內部團隊積極地採用Clutch,並且將許多具風險的基礎設施管理,都透過Clutch處理,官方提到,在2020年底前,內部會有7個工程團隊採用Clutch。


Advertisement

更多 iThome相關內容