官术网_书友最值得收藏!

早在2013年,我供職的阿里巴巴集團(tuán)(以下簡(jiǎn)稱阿里)中間件軟負(fù)載團(tuán)隊(duì)就受運(yùn)維部門之托,開始著手研究新一代的內(nèi)部服務(wù)調(diào)度與治理系統(tǒng)。那個(gè)時(shí)候微服務(wù)概念還沒有提出,但阿里在服務(wù)化方式上已經(jīng)走在前列了——強(qiáng)壯的業(yè)務(wù)由擁有數(shù)量龐大的服務(wù)群及復(fù)雜的調(diào)用關(guān)系支撐著。運(yùn)維的需求集中于希望能提供一種“更加靈活、響應(yīng)更快速且更低成本”的方案來連接、控制、配置整套線上服務(wù)系統(tǒng);因?yàn)樵诋?dāng)時(shí)的LVS負(fù)載體系下,由于硬件的限制,是不可能做到快速響應(yīng)的,而獨(dú)立部署的LVS集群在配置與多環(huán)境下都又略顯得有心無力。

當(dāng)時(shí)我的領(lǐng)導(dǎo)蔣江偉(花名小邪)將這一重任交予了我并預(yù)示了SDN(Software Defined Network,即軟件定義的網(wǎng)絡(luò))的發(fā)展方向,我很榮幸能擁有這樣的機(jī)會(huì),當(dāng)然也沒有辜負(fù)他的期望。一年后,VIPServer系統(tǒng)誕生,第一次在阿里內(nèi)部以純軟路由的形式調(diào)度各大系統(tǒng)間的請(qǐng)求,并在兩年內(nèi)完全主宰了內(nèi)部的服務(wù)調(diào)用需求。

軟路由的好處在于“軟”,不與實(shí)體布線、交換機(jī)配置或硬件綁定,對(duì)于不同的流量流向什么樣的地方可以任意且隨時(shí)地變更,此即靈活。例如我們可以將來自Android客戶端的流量指定到鏈路中擁有Test標(biāo)記的服務(wù)器,這樣可以實(shí)現(xiàn)諸如灰度發(fā)布的功能。分布式系統(tǒng)發(fā)布至今,系統(tǒng)數(shù)量空前爆炸,業(yè)務(wù)的關(guān)系與配置越來越復(fù)雜,因此對(duì)環(huán)境治理與隔離的要求也越來越高。回顧應(yīng)用容器的發(fā)展,從純硬件到硬件虛擬化、容器化再到彈性編排,無不都是走向“軟件定義”這個(gè)方向,因此軟負(fù)載領(lǐng)域也應(yīng)該如此。

2017年我加入挖財(cái),發(fā)現(xiàn)對(duì)較大型企業(yè)而言,中小規(guī)模企業(yè)更加飽受服務(wù)環(huán)境治理之苦,因?yàn)橹行∫?guī)模的企業(yè)通常沒有過多精力自行研發(fā)屬于自己的軟負(fù)載體系,大多通過修改開源的組件來實(shí)現(xiàn)目的。這樣的問題在于無法組成一個(gè)平臺(tái)體系,雖然基本功能(如配置、服務(wù)發(fā)現(xiàn))能夠滿足,一旦涉及多級(jí)協(xié)調(diào)功能(如鏈路壓測(cè)、故障注入體系)的時(shí)候,便捉襟見肘了。雖然阿里早些年已經(jīng)擁有這樣的能力了,但想要將其直接復(fù)制到外部的企業(yè)卻是一項(xiàng)幾乎不可能完成的任務(wù)。阿里的關(guān)鍵技術(shù)都是定制的(如RPC服務(wù)HSF),設(shè)計(jì)所針對(duì)的場(chǎng)景不一定適合中小企業(yè),即關(guān)注的點(diǎn)不同;所以對(duì)于中小企業(yè)而言,需要的就是一個(gè)能夠連接各軟負(fù)載開源產(chǎn)品的平面,而且這個(gè)平面應(yīng)該與主流的服務(wù)編排、RPC、配置及服務(wù)發(fā)現(xiàn)完美兼容,并最大限度地支持鏈路功能擴(kuò)展。

帶著上述問題,我一直在思考這個(gè)產(chǎn)品的存在形式;而在Istio問世以后,我便相信這就是它的最佳形態(tài)。我個(gè)人看好服務(wù)網(wǎng)格(Service Mesh)在服務(wù)架構(gòu)上的影響力,并且相信這是微服務(wù)架構(gòu)的下一個(gè)階段,因?yàn)閷?duì)多數(shù)企業(yè)而言架構(gòu)本身的復(fù)雜度已經(jīng)開始超越業(yè)務(wù)邏輯本身,如果不加以統(tǒng)一管理與規(guī)劃,那么只是維護(hù)成本就已經(jīng)很高了。

服務(wù)網(wǎng)格的思想就像是分布式服務(wù)本身下沉到技術(shù)棧中,只對(duì)業(yè)務(wù)提供接口供其調(diào)用。Istio很巧妙地將其分成了“控制平面”與“數(shù)據(jù)平面”兩部分,使得接口本身更加清晰。接口清晰的好處在于更加容易地定義邊界與職能,例如“數(shù)據(jù)平面”部分,Istio便可以直接依托于開源Envoy來實(shí)現(xiàn),而且這并不是唯一的選擇;而“控制平面”則為運(yùn)維人員提供了統(tǒng)一的接口來操作整個(gè)鏈路,相較之前的零散的配置,僅這一點(diǎn)就可以節(jié)省不少的人力成本。

2018年,阿里順勢(shì)推出了自己的Nacos這其中便包含我之前研發(fā)的部分系統(tǒng),我倍感驕傲。來爭(zhēng)奪這一領(lǐng)域,螞蟻金服也公布了SOFAMesh項(xiàng)目。這說明軟負(fù)載仍然是大型分布式系統(tǒng)基礎(chǔ)的重點(diǎn),只有將環(huán)境與調(diào)用梳理清楚、高效利用起來,上層的業(yè)務(wù)及周邊的擴(kuò)展基礎(chǔ)才能快速地推進(jìn)。未來的分布式架構(gòu)只會(huì)愈加專注,職能劃分愈加精細(xì),計(jì)算愈加彈性靈活。

雖然在本書編寫過程中已經(jīng)盡力反復(fù)去論證、實(shí)踐每一處,但難免遺誤,希望大家積極批評(píng)指正。最后我要感謝下面這些在編寫本書時(shí)一直支持我的朋友們,無論是幫忙訂正還是寫序,感謝你們!同時(shí)本書第6章得到了螞蟻金服團(tuán)隊(duì)的大力支持,特別感謝你們!當(dāng)然還有在背后一直支持我的家人們,謝謝!

(以下排名不分先后)

孫虹 陳霞光 蔣云鵬 呂獻(xiàn)軍 徐偉杰 李華剛 周文瑾 楊卓犖 馬連志

宋越月 王偉 楊凱 蔣江偉 劉清富 黃挺 羅毅 許令波 李云

主站蜘蛛池模板: 平谷区| 兴和县| 元谋县| 南郑县| 武冈市| 呼和浩特市| 集安市| 基隆市| 常德市| 武乡县| 黄石市| 乌恰县| 宜兴市| 福泉市| 门源| 太仓市| 长子县| 漳平市| 宜都市| 益阳市| 渭南市| 库尔勒市| 漳浦县| 沛县| 承德县| 临漳县| 元氏县| 车险| 鄯善县| 德保县| 桃江县| 司法| 招远市| 佛坪县| 武义县| 桂平市| 定州市| 连城县| 南华县| 白水县| 乌苏市|