圖片來源/istio.io
谷歌,IBM,及Lyft昨日正式推出其開源服務Istio。這項開源項目將給開發者提供一個統一的平臺,用以有效管理監測微服務(microservices)的運行情況,并保障、提高其之間的連接性、安全性。
微服務,是一項在云中部署應用和服務的新技術。它提倡將單一應用程序劃分成一組小的服務,服務之間互相協調、互相配合,為用戶提供最終價值。每個服務運行在其獨立的進程中,服務與服務間采用輕量級的通信機制互相溝通(通常是基于 HTTP 的 RESTful API)。每個服務都圍繞著具體業務進行構建,并且能夠被獨立地部署到生產環境、類生產環境等。簡而言之,微服務考慮的是如何圍繞著業務領域組件創建應用,并對這些應用獨立地進行開發、管理和加速,而微服務架構的主旨就是高度自治和高度隔離。
和傳統組件相比,微服務架構最大的優點在于它可以獨立部署。此外,它在組件與組件之間定義了清晰的、語言無關、平臺無關的規范接口,耦合度低,靈活性非常高。對于互聯網行業及有相關需求的初創公司來說,微服務的開發簡單直接,重復率低,且功能都在本地,沒有分布式的管理開銷和調用開銷,便于集中管理,很適合業務的初期發展。
然而,微服務的架構是基于分布式系統而建的,而分布式系統運作時需跨進程、跨網絡的調用,受網絡延遲和帶寬的影響很大。它的缺點還包括:開發效率低,所有開發的代碼都要在同一個項目里改,遞交代碼相互等待,代碼沖突不斷;代碼維護難,代碼功能耦合在一起,經驗不足的人難以操作;部署不靈活,構建時間長,任何小修改必須重新構建整個項目,費時費力;穩定性不高,一個小問題都可能導致整個應用無法運作;擴展性不夠,無法滿足高并發情況下的業務需求等。
Google,IBM和Lyft的在聯合聲明中解釋,Istio服務“不需要對實際應用程序進行任何修改,也不依賴于像gRPC這樣常見的RPC(遠程過程調用)庫,可直接使用代理來攔截微服務器之間的所有通信。”
Istio團隊還表示,該平臺可允許政策驅動的操作執行,將操作團隊與功能開發脫離,從而讓開發者在無需大量更改代碼的情況下,改進項目的安全性。
據悉,Istio平臺是谷歌和IBM之間的一個協作開源項目,但支撐軟件的基礎來自Uber的競爭對手,Lyft公司(最近它剛和谷歌旗下的自動駕駛部門Waymo合作,研發自動駕駛技術)的Envoy代理,及其內置的服務發現(Service DIScovery)和負載均衡工具。它們能為特定的微服務添加安全性、可見性和合規性等功能,以解決傳統應用程序分解為一組微服務時而出現的各種問題。Istio的推出,必將吸引到那些正在因微服務難以管理而頭疼的用戶。
據Gartner數據,全球云市場將在2019年達到3120億。微服務作為一種中間組件(middleware),是云計算產品體系中的一項重要組成部分。鈦媒體發現,阿里巴巴也把其微服務架構(Alibaba's microservice structure),作為阿里云的核心競爭力之一加以宣傳。
就如阿里云總裁胡曉明接受鈦媒體采訪時說的(《獨家專訪阿里云胡曉明:產業互聯網,什么為王?》),“現在已經沒有企業還在思考上不上云的問題,大家的焦慮已經轉移到“在云的時代,我可以做什么?我的機會在哪里?我會不會被替代?”
可以預想,未來的微服務市場,還有很多機會可挖。
(本文首發鈦媒體,記者/元婕)