叫車服務Lyft推出iOS和Android行動客戶端Envoy Mobile函式庫,該函式庫可讓行動裝置也獲得Envoy代理(Proxy)的功能支援。不過,Lyft目前只釋出了概念驗證版本,並號召其他行動開發者共同協作。

Envoy代理最初也是由Lyft開發,是OSI第七層分散式代理,目的是用來解決大型多語言伺服器端微服務架構的網路以及可觀察性問題,Lyft提到,網路對應用程式來說應該是透明的,當網路以及應用程式發生問題時,管理者應該要能夠清楚的知道問題來源,但這在實作上非常困難。

而Envoy的出現就是要來解決這個問題,作為一個自包含的程序,能跟每個應用程式伺服器共同運作,並且抽象化網路提供一般常用的網路功能,這些Envoy會形成透明通訊網格,當所有服務流量都流經Envoy網格時,發生問題時就能被快速的找出來,甚至能進行效能調校等工作。

不過,雖然Envoy代理只解決了網路對應用程式透明度一部分的問題,因為整體服務架構還包括了邊緣的行動裝置應用程式,因此Lyft為iOS和Android行動裝置客戶端推出Envoy Mobile函式庫,開發者可以直接將Envoy編譯進應用程式。

Envoy Mobile提供跨平臺低階網路功能,包括HTTP/2、QUIC以及gRPC等協定,還有推送與串流、分析與重試政策等實作,Lyft提到,他們為跨平臺提供一致的功能下了不少功夫,特別是要為行動裝置與伺服器端多語言分散式架構,提供類似的強健實作。

而Envoy Mobile使用由Google推出,類似XML序列結構化資料的協定緩衝區(Protocol Buffers),透過協定緩衝區的擴充系統,簡單地使用強類型互動式資料語言(Interactive Data Language,IDL)API,Envoy Mobile就可以增加複雜的跨平臺功能,Lyft目的是要讓Envoy Mobile通用核心盡可能提供必要的功能,讓開發人員不需要再以其他語言重新實作。

目前這個版本仍然為概念性驗證的展示,說明Envoy Mobile將以函式庫的形式,為iOS和Android平臺提供功能,Lyft解釋,與2016年發布Envoy的時候不同,這次他們之所以沒有直接發布生產可用的版本,就是要跟業界的人進一步討論協作。

基於Lyft與業界組織討論的結果,他們認為,業界有共識想要有打造一個更全面的跨平臺客戶端網路解決方案,因此Lyft先丟出了一個基本版本,以符合Lyft行動應用程式需要的基本功能集,而剩下來的將繼續與業界行動工程團隊合作,確保專案內容的方向正確,最終他們希望Envoy Mobile能夠成為CNCF擁有的中立專案。


Advertisement

更多 iThome相關內容