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