揭秘TARS基金会:新一代海量微服务开源生态
“云原生(Cloud Native)”現在已經是一個唱遍大江南北的詞,相比它的上一代術語“云計算”,云原生更加強調“應用原生長在云上”。
上世紀 50 年代末,虛擬化被提出來,如今看來,這成了云計算基礎架構的基石。云計算發展到如今近 60 年,期間各種云相關的技術不斷出現,PaaS、IaaS 與 SaaS 是最早一批基于云概念的實際應用,而后出現的 FaaS、BaaS 與 Serverless 等,也在為云不斷增添新的動力。
在這個過程中,為了達到在構建應用時“云端優先”的新興思想,云原生的概念應運而生。云原生的原生指的是在最初設計應用時就原生為云環境做出相應考量,以此在云上充分利用和發揮云平臺的各種能力,包括低成本、按需付費、系統彈性可伸縮、高度可管理、業務邏輯解耦等。
Linux 基金會專門成立了云原生計算基金會(CNCF,Cloud Native Computing Foundation)以發展云原生技術,伴隨著這幾年云原生的快速發展,CNCF 如今也成為了該領域最權威的組織。
由 CNCF 主辦的 “CloudNative + Open Source Virtual Summit China 2020 中國線上峰會” 正在進行中,為期 3 天的大會將帶來上百場分享,內容將覆蓋云原生的方方面面,包括微服務架構、容器、可觀察性、存儲、安全、身份、策略、開源生態、網絡與 CI/CD 等。
其中微服務架構是最吸引我們關注的,不僅因為微服務近幾年的火熱,還因為在此次大會上,圍繞國內開源項目 TARS 建成的“TARS 基金會”首次全面地對外介紹了其相關情況。
在 30 日晚的主題演講中,TARS 基金會主席單致豪分享了《TARS 基金會:新一代海量微服務開源生態》,為我們揭開了這一基金會的神秘面紗。
https://github.com/TARScloud
“TARS 基金會是 Linux 基金會中微服務開源生態的代表,其面向整個開源微服務生態,而不單單只是最早由騰訊開源的 TARS 這個項目。當前 TARS 基金會已經有超過 30 個開源項目。”單致豪首先強調了 TARS 基金會的立場。
至于什么叫“海量微服務”,騰訊前 CTO 張志東曾用三個維度定義過互聯網的海量服務:在線超過千萬、索引超過百億、數據超過百 P。TARS 在騰訊內部打磨十年之久,并在騰訊的社交 、視頻、游戲、地圖、應用寶與管家等上百個核心業務上廣泛應用,微服務規模達到百萬級,正是踐行著海量服務之道。
微服務已成云原生最核心技術
20 世紀 60 至 70 年代,軟件開發人員通常在大型機和小型機上使用單體架構進行軟件開發,沒有一個應用程序能夠滿足大多數最終用戶的需求。垂直行業使用的軟件代碼量更小,與其它應用程序的接口更簡單,而可伸縮性在當時并不是優先考慮的。
隨著互聯網的發展,開發人員逐漸將服務層從單體架構中分離出來,逐步產生 RPC 和 C/S 架構。
但是,當時的架構依舊無法應對不斷增長的數據流量,更無法滿足大型企業的需求。從 20 世紀 90 年代中期開始,分布式架構開始流行起來,面向服務的架構(SOA)越來越占主導地位。
21 世紀初,微服務架構開始出現,一系列基于微服務架構的框架涌現,微服務架構也在近幾年迅猛發展,目前其已經進入了新的階段,大家現在談得更多的是 Service Mesh 與 Serverless,這些都離不開微服務。
微服務架構的出現,為應對快速變化的業務需求、冗長的開發周期提供了一種新的解決方案,它以模塊化的思維應對快速變化的業務需求,解耦系統之間各個子系統、業務、數據庫,甚至開發團隊。微服務架構使用如自動化部署、自動化業務監控預警、調用鏈監控、容器化,以及敏捷開發等思想加快軟件的開發周期,實現更快速、更高質量的交付,成為當下最流行的架構風格之一。
單致豪以谷歌搜索“microservice”的趨勢為例,展示了微服務的發展勢頭:
他認為,“這也體現出微服務已經成為更多開發者和企業的首選架構,也成為新基建、數字化轉型、云原生中最核心的技術。”
為什么成立 TARS 基金會
微服務架構從來都不只是關于 RPC,正如 TARS 項目不只是一個 RPC 框架,開發者常常說采用微服務不難,難的是微服務的治理,說的就是微服務架構中服務治理的重要性與復雜性。
服務治理正是采用微服務時會遇到的一大問題,單致豪介紹,基于分布式的微服務架構中,系統需要考慮服務發現、負載均衡、限流、熔斷、超時、重試與服務追蹤等具體環節,每個環節都不能出差錯,治理起來并不簡單。
除此之外,采用微服務架構還會面臨以下幾大難題:
- 開發難度大:微服務多是跨服務器甚至跨機房調用,開發人員需要處理超時、網絡異常等棘手問題。
- 多語言互通:現在的開發語言數量很多,不同程序員有自己的偏好,很難統一。前端、后臺, 不同的技術棧,不同開發語言,他們的互通也是很大的難題。
- 性能問題:參考谷歌趨勢,在 IT 行業對于“高性能”的搜索一直居高不下。隨著用戶增多、 訪問量增大、服務的調用鏈也成倍增加,面對海量請求時性能需要得到保障。
- 數據一致性:服務最終需要落地數據,數據的傳輸、存儲、事務處理等需要保障一致性。
Linux 基金會認為,一個好的微服務架構需要具備以下特點:
- 是 DevOps 最佳實踐的敏捷研發
- 有完整、全面的服務治理能力
- 支持多種編程語言
- 足夠高性能,以及足夠高擴展性
單致豪介紹,正是看中了 TARS 項目本身的特性在解決這些問題上的能力,以及其周邊生態潛能,所以 Linux 基金會今年 3 月 10 日宣布成立 TARS 子基金會,專門致力于構建一個健康并且開放的微服務開源生態,并且努力解決前邊提到的微服務采用困難的問題。
“TARS 基金會的愿景是:為開源微服務項目構建一個中立的非牟利組織,使任何行業都能迅速將創意、以及想法轉化為大規模應用,并且快速上線。”單致豪具體說明了 TARS 基金會的意義:
TARS 基金會致力于解決在使用微服務方面可能出現的問題,包括減少開發和服務治理的難度。它旨在解決多編程語言的互通、數據傳輸、數據存儲一致性等問題,并在支持海量請求的同時保證高性能。
同時,TARS 基金會希望吸納上下游的開源項目,以建立更好的微服務生態。包含但不限于基礎設施、存儲、開發框架、服務治理、DevOps 和基于任何編程語言的應用。
TARS 基金會微服務開源生態
首先,TARS 項目作為 TARS 基金會的第一個開源項目,在騰訊內部已經應用了 12 年,打磨超過 10 年,目前使用它的產品超過 100 個,廣泛應用于騰訊的在線社交、金融服務、邊緣計算、汽車、視頻、游戲、地圖、應用市場和安全等數百項核心業務中。
單致豪全面地介紹了 TARS 的能力:
- 支持多種編程語言,包括 C++、Golang、Java、Node.js、PHP 和 Python
- 可以結合各種 CI/CD 工具
- 服務可以部署在物理機、虛擬機、容器、K8S 上,數據可以選擇存儲在 Cache、數據庫或者文件系統上
- 支持豐富的協議,如自研的 TARS 協議、TUP 協議,也支持業界常用的 SSL、HTTP、PB 等,此外還可以自定義協議
- 在 RPC 調用上可以進行同步、異步和單向多種方式
- 支持豐富的服務治理功能,包括但不限于服務注冊/發現、負載均衡、自定義監控、日志、過載保護、熔斷機制、IDC SET 等
- 支持各種應用,如深度學習、邊緣計算與 API 網關
“這可以幫助開發人員和企業以微服務的方式快速構建自己穩定可靠的分布式應用,從而令開發人員只關注業務邏輯,提高運營效率。”
TARS 項目開源至今三年的時間里,“在軟件層面,社區的版本保持穩定的迭代,支持了多種開發語言客戶端和服務端的微服務開發和治理,在硬件層面,也移植到 Arm 生態上。”
除了 TARS 項目本身,TARS 基金會也在快速發展,成立的這幾個月間,已經匯聚了超過 30 個開源項目、7 家成員組織,以及獲得了覆蓋游戲、視頻直播、互聯網工具、娛樂、交通、社交網絡與金融等領域 100+ 家公司/企業的采用。
分享中,單致豪還公布了近期陸續加入 TARS 基金會的 4 個開源項目:測試相關的 TARS Benchmark 與 TARS JMeter,服務網關 TARS Gateway,以及此次重磅推出的 TARS K8S。
K8S 目前已經是容器編排的事實標準,結合 TARS 的數據處理與服務治理能力,就成為了一款云原生微服務治理方案,這正是此次重磅推出的 TARS K8S 項目。具體信息還未透露,不過單致豪表示,在會議第二天的圓桌會議中會有核心開發者對項目進行深入解析。
TARS Gateway 是一套基于 TARS 框架開發的通用 API 網關,請求使用 HTTP 協議,后端同時支持 TARS-tup&TARS-TARS 協議、TARS-json 協議、HTTP 協議。 除了協議轉發之外,還支持流量控制與黑白名單等功能。
另兩個項目出自 TARS Open Lab,這是 TARS 基金會面向未來的開源實驗室,主要進行包括測試、集成與兼容等方面的研究。TARS JMeter 與 TARS Benchmark 這兩個測試工具正是從中孵化而來。
TARS JMeter 是一款針對 TARS 協議進行私有化定制的 JMeter 測試插件,它具有易用性強、支持分布式、支持復雜場景與數據可監控等特點;TARS Benchmark 是專門為 TARS 服務量身訂做的無碼壓測工具,具備易用性、高性能、可伸縮、支持動態隨機和數據實時反饋的特性。
最后,單致豪首次公開了 TARS 基金會生態全景圖(landscape):
https://landscape.TARScloud.org
自下而上幾個層級分別為:
- 基礎層:基礎架構(不同架構芯片、云、容器)、基礎開發語言
- 存儲層和協議層:存儲(Cache、數據庫、大數據、文件系統)、協議
- 邏輯平臺層:框架、服務發現、Service Mesh、日志、監控、配置、追蹤
- 應用層和業務層:API Gateway、業務、深度學習、邊緣計算、TARS 實驗室、DevOps
TARS 基金會的開源微服務生態仍在發展中,我們希望它能快速生長,正如單致豪所言:建設新一代海量微服務開源生態,一個完善的微服務生態,是我們的終極目標。
總結
以上是生活随笔為你收集整理的揭秘TARS基金会:新一代海量微服务开源生态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 考古学家发现巨石阵石头来源
- 下一篇: 疯狂的“长寿药”背后:天眼查数据显示我国