日調度萬億次,微服務框架TSF大規模應用——雲+將來峯會開發者專場回顧

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~前端

演講者:張浩 騰訊雲中間件產品負責人java

背景:衆多開發者中,必定經歷相似的甜蜜煩惱,就是當線上業務規模愈來愈大,系統分支發展愈來愈多的時候,初期上線的成就感很快就會被系統間數據不兼容、不通暢,折磨得精疲力盡,每次模塊更新都是牽一髮而動全身。騰訊雲微服務框架TSF就能夠爲你們解決數據孤島以及重複造輪子的問題,提供了簡潔易用的代碼入口,將複雜的底層網絡、服務器部署接口化,使開發者更易用。算法

本文整理自騰訊雲中間件產品負責人張浩在騰訊云云+將來峯會上的分享內容。spring

你們下午好!我是來自騰訊雲中間件產品負責人,我叫張浩。很高興今天能來到廣州這樣一個工業、金融、製造等很是發達的城市,和你們分享騰訊雲微服務的一些實踐。數據庫

剛剛前一個主題的負責人鄒輝是騰訊雲 PaaS 產品總監,可能已經講了不少DevOps和微服務結合的理論和落地的工具,我是接着詳細講講騰訊雲,除了容器、DevOps工具之外,在這以上咱們抽象出來的一套叫作TSF的平臺可以幫助開發者解決什麼問題。後端

首先就微服務這個概念,我本身的理解,把它簡單用一句話來說,傳統的冗餘、耦合的IT架構,我經過一些互聯網手段和工具,把它解耦成爲單獨的耦合的微服務,這樣開發團隊能夠擁有獨立的技術站,快速迭代作一些小步快跑和升級,這樣很好的應和互聯網時代,作一些業務上的創新。可是每每運營總監下決心作微服務並非最艱難的,每每是咱們作了決定以後,可能團隊整個公司的價值觀還有不少領域跟不上,好比說咱們採購了很是多的像傳統的硬件和設備,買一些總線服務,好比說工業開發者嘗試用徹底開源的產品搭建本身的生態系統,發現有不少線上的問題解決不了。騰訊雲推出了TFS的微服務平臺,它的目標是相似於樂高積木式的工具和平臺,去協助咱們全部的開發者更加聚焦業務的開發,讓你們的精力聚焦在作業務邏輯的開發和上線,而不是去造輪子開發工具。安全

TFS的能力介紹我分紅兩部分來說,一部分是面向開發者的能力,一部分是面向運維。服務器

先講開發者的能力,騰訊是用一種很是開放包容的心態和社區結合,一塊兒參與這個事情,騰訊目前在參與比較深刻的是在spring Cloud的微服務框架裏,在場的開發者我來以前看一下,有不少java的開發者,對這個社區應該是很是熟悉的,騰訊在spring cloud有很是深刻的迭代和對這個技術的貢獻,最大的一個特性就是一個spring cloud的商業版,解決了社區裏面沒法解決的問題。其次,在TFS這個平臺上,像一些java的開發者,用spring作開發的話,在兼顧平臺過程當中也是很是的便利,很是方便,騰訊雲這一塊還整合了騰訊內部的一些中間件的產品,包括消息隊列、API網關、等一些中間層服務,讓開發者在微服務開發過程當中不須要去選擇複雜的雲的API,直接在雲服務器來的時候拉取運用,這是咱們在這方面的實踐。還有一個詞很火叫Service mesh,可稱爲微服務的3.0時代。微信

騰訊將在6月份左右推出咱們本身的Beta版本,Service mesh在一些異構系統,在多語言開發者的狀況下,能讓不一樣的開發者更加聚焦本身的業務邏輯,把服務之間互相訪問、發現複測、覆蓋均衡、降級服務等等都交給服務網格去處理,會更加聚焦。網絡

第二部分的能力,咱們講微服務,咱們講服務框架,騰訊基於spring提出了新版本,在這個註冊中心加入了自研算法,咱們作到在深圳和廣州的雙城機房裏能夠作癒合,一旦一個機房中心掛掉了,咱們能夠跨機房作一個服務發現,註冊和訪問。咱們的服務框架在協議的支持方面也有比較豐富的支持,有基於RPC的高性能框架,傳統設備私有協議也會兼容。

面向開發者的第三部分的能力,騰訊雲提供很是全面的從邏輯到物理上的資源隔離、生產測試、預發佈能力。做爲現場的開發者或者架構師,在作微服務設計過程當中,第一部分是要怎麼樣劃分基礎資源的計算、網絡、環境的資源問題,第一步要把咱們購買的物理機、虛擬機等等服務器資源要利用起來,同時在構建DevOps的測試構建過程當中,不能出現一些服務搶佔、資源搶佔甚至是更嚴重的事故。因此基於這個空間,咱們提供了很好的生態環境和雲測試環境的隔離能力。

TSF這個平臺是和tencent hub是無縫鏈接的。接下來第四部分是我面向開發者要介紹的是分佈式事務,這個事情在這幾年會獲得愈來愈大的關注,怎麼理解呢?如今有很是多的互聯網業務是跨公司的,我上週纔剛見了客戶中石化,我去加油站加油,四百塊錢一箱油加了以後要買單,常常會出現四百塊錢的結算是首先在加油站的支付網關有優惠券作減免,其次在微信支付的網關作一次結算,最後微信支付的背後,關聯了農行的信用卡,我要作第二次的折後結算,你們就會發現,我做爲開發者要知足這種前端運營團隊給我提的複雜運營活動,我在IT層面要作很是複雜的一次性處理,怎麼解決?特別是這種中石化,微信支付和農行的結算網關的數據庫都不在一塊兒,是跨公司,騰訊基於TCC的分佈式事務的規範,推出了自主知識產權的分佈式事務平臺,去知足這種很是複雜的跨公司、跨部門的事務管理能力。

接下來的能力是講講微服務的網關服務。這個公安網關也很是重要,常常咱們的微服務開發者會有幾個常見的訴求,第一個我多是一個大的央企,下面有各個子公司,A部門和B部門互相的業務調用,就會發現是跨機房的,多是跨網絡的,怎麼樣把我後端的服務安全可靠的暴露出去,讓個人合做團隊進行調用,這是第一個層次。第二個層次,我怎麼樣定義一個API的契約,從上至下的開發團隊怎麼定義好API的規範,微服務的網關是能作好這些事情,能讓開發者在作服務調用過程當中,不管是網絡之內的仍是跨網的均可以作到一致。

在公網關之外咱們還作了提供服務總線的能力,在作微服務過程當中,其實有好大一部分的客戶羣體是來自於傳統客戶,好比像政府、菸草、海關等等客戶,他們會有這麼一些特殊需求,他須要你的網關能力增長一層邏輯能力,好比說最近廣東省政府省廳的項目,他須要一些敏感接口,在調用過程當中可能要增長一些邏輯判斷,增長一些線下審覈、流程審覈,經過以後纔對外開放的能力。騰訊雲在面向傳統市場咱們也作了很是多的努力,在網關這一塊增長了邏輯判斷。以及網關上調用的方式,咱們是以消息隊列的方式,一對一,一對多的消息發送方式,去知足服務調用的場景。

剛剛講了不少面向開發者的能力,咱們如今講講面向運維的能力。TSF有一個很是強大的,讓我很是自豪的體系叫TSF的生命管理週期平臺,第一是解決開發者把微服務的配置作一個集中管理,這個配置在微服務裏很是重要,騰訊在每一年也有像雙十一遊戲業務,會有大量的彈性伸縮的場景,業務波動性很是大,這樣運維的同窗常常要作預案,好比說我可能要作一些接入層、邏輯層,後臺在遇到大流量的時候要作降級服務,避免具體的某個節點的熱點訪問,致使整個後端系統全線癱瘓,我會作這個預案,當觸發的時候我能夠作配置變動來達到這些效果。並且在必定程度上能作到不須要重啓計算節點。第二部分能力,咱們有能力在分鐘級別裏面快速啓動上千個服務節點,來應對突發的流量。

面向運維的同窗,咱們有一套很是完善的全鏈路智能的平臺,講微服務最抗拒的多是運維的負責人,爲何?你看咱們的運維同窗是怎麼解決問題的,最簡單的,出現問題登到一臺機器上看端口,哪裏有問題解決哪裏的,一查就完事。微服務一般是一箇中間經歷了數十個環節,我可能看到前端的APP點一個按紐,到底哪裏出現問題就很是痛苦,怎麼定位很是痛苦,如今傳統的作法是我在每一個節點上抓一些日誌下來來處理,這個時間是很是長的。騰訊TSF這個平臺作了一個事情,咱們參考了谷歌的分佈式日誌論文,咱們會打入一個 trace id,咱們會把服務節點上散亂的集合在一塊兒,這樣能夠以事件的方式去看具體某一個事件,能夠清晰的排查。這一塊的能力是咱們面向運維同窗作的友好的能力。

我再也不贅述裏面的功能,接下來五分鐘時間我跟你們講講微服務平臺解決了哪些問題,落地了哪些案例,帶來哪些價值。首先我講講公司財付通的案例,財付通有一個交易訂單層,這東西是支撐騰訊包括手機QQ以及微信支付一些像紅包等等熱門應用的核心邏輯層,像風控、訂單處理都在裏面,TSF平臺給它帶來什麼價值?

首先基於TSF平臺作了一個微服務化,經過咱們運維平臺能力,協助財付通的負責人去梳理整個IT架構,好比說我能夠把非關鍵的調用路徑異步化,除夕那天晚上,A給B發紅包,12點的時候會出現系統繁忙,錢是發出去了,可是餘額的更新不是實時的,這裏面作了一個邏輯,把餘額更新這個點他認爲是能夠做爲一個降級處理,你餘額更新慢一點不要緊,只要你的錢能發出去就行了,你們都很開心。因此經過這一點讓非關鍵路徑作了異步化,讓財付通的吞吐性能獲得很大提高。第二,財付通的彈性是很是大的,如何保證一些大型活動,好比雙十一活動來臨的時候,可以及時擴縮容,平時也能節省一些閒置的服務器呢?咱們的生命週期管理平臺就很好的管理。

第二個案例我想講講永輝超市,跟騰訊是深刻合做夥伴。騰訊開始跟一些零售企業作新零售,新零售帶來什麼價值?無非是從人貨場這三個地方來看。人的話,線上線下支付體驗能不能獲得提高,場地的話做爲零售的商家,它的管理,門店效率能不能提高,還有貨物,商家能不能作到智能選品,選擇的商品能讓消費者喜歡,怎麼樣下降庫存,提高流轉。在座全部開發者能感覺到的是永輝超市推出了像人臉支付這種很是新穎的APP業務方式,或者是像一些生鮮,買肉買魚能夠給你送到家這種新穎的零售應用。可是作到這一點是很是很是不容易的,騰訊跟永輝超市在過去的半年時間,整合成了一個攻堅的雲的建設團隊,從底層的IaaS開始,一步一步搭建,中間這一層很是關鍵,叫作零售業務中臺,這個中臺承載了永輝超市在IT化裏面最關鍵的邏輯,好比說它的一些對商品質量的管理、支付的管理,全部的這些大的核心平臺都進行了微服務的改造。作微服務的最大價值就是讓團隊更加敏捷,爲何要敏捷?就是由於要支撐前端的項目,人臉識別、生鮮到家,全部的應用會給後端的中臺提很是多IT的需求,如今能達到的點是兩星期能發一個版本,在場可能互聯網開發者可能會以爲15天還能夠,不是很了不得,可是傳統領域15天一個版本確實是驚人的速度,這是騰訊雲給永輝超市帶來的最大價值。

最後一個案例是銀行,甲方不容許我把姓名透露出來,因此我沒有貼LOGO,這是騰訊雲技術團隊跟金融團隊以及這家銀行作的網貸業務,有點像微信的微粒貸,經過智能手段快速審批我的信用狀況,快速把錢給你放款的業務。這裏我想強調,我不會講網貸業務的具體狀況,我會講作微服務不少過程當中會遇到的點,甲方會問我,大家幹DevOps,幹服務,是否是要把原來的都幹掉,其實並非這樣,其實並不會有一個項目把老的完全重構,常見的是新的業務或者是一些帶互聯網屬性的業務,咱們會嘗試有微服務的平臺去承載,去跑起來。老的業務系統怎麼辦呢?第一個問題要解決的是通訊的問題,騰訊雲這邊的網關能力,咱們會作很是多傳統硬件兼容,咱們去作這些協議的兼容,經過兼容以後會把原來的大的硬件做爲大的微服務的子體系,把它能夠訪問到咱們的服務框架,服務到註冊中心,這樣能夠作很是輕力度的服務治理,至少保證你的業務是能夠訪問的。

當新的系統和老的系統有一個打通以後,能夠互訪以後,第二階段就作更進一步的重構,協助作落地細顆粒度的服務治理,service mesh能力的點,咱們把原來的能力經過service mesh的方式作重構,這樣從老到新有一個很是好的過渡過程。最後這些是咱們平臺在面向一些傳統行業,好比像工業、零售、能源、交通領域有很是多的落地實踐,我也但願今天在場的合做夥伴能一塊兒跟咱們把微服務這件事作好,謝謝你們。

更多相關資料,請點擊下方連接獲取:
日調度萬億次,騰訊TSF微服務平臺最佳實踐.pdf

問答
微服務架構:跨服務數據共享如何實現?
相關閱讀
微服務調用鏈追蹤中心搭建
如何從傳統單體架構轉向微服務
雲存儲:面向企業的7項必備功能

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/developer/article/1139426?fromSource=waitui

歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

相關文章
相關標籤/搜索