說到自己擅長的網(wǎng)絡(luò)技術(shù)領(lǐng)域,徐亮神采飛揚(yáng)
在和他的談話中,我聽到了不少UCloud有趣的研發(fā)故事,讓我對UCloud技術(shù)團(tuán)隊(duì)的動手能力有了更深的認(rèn)識。尤其是, 當(dāng)UCloud 所倡行的“客戶為先”、“客戶的需求就是我們的下一個(gè)產(chǎn)品”等理念從一個(gè)專注于前沿技術(shù)的技術(shù)領(lǐng)軍人物的談吐中汩汩冒出時(shí),印象更深刻了。
轉(zhuǎn)化:實(shí)驗(yàn)室技術(shù)能力——生產(chǎn)能力
我為什么認(rèn)為UCloud的技術(shù)團(tuán)隊(duì)是一支動手能力極強(qiáng),這得從他們的25G智能網(wǎng)卡項(xiàng)目說起。
眾所周知,如何將實(shí)驗(yàn)室形成的技術(shù)能力轉(zhuǎn)化成生產(chǎn)能力,需要很好的工程能力,25G智能網(wǎng)卡從實(shí)驗(yàn)室到生產(chǎn)環(huán)境恰恰體現(xiàn)了這樣的工程能力。
“去年我們將25G智能網(wǎng)卡產(chǎn)品投入到生產(chǎn)環(huán)境,實(shí)際上,UCloud 從2016年就開始跟蹤這項(xiàng)技術(shù)。這期間我們測試了很多廠商的智能網(wǎng)卡,有的智能網(wǎng)卡的性能相當(dāng)不錯(cuò)。但是阻礙我們將其投入生產(chǎn)環(huán)境的一個(gè)重要原因是,它和公有云所要求的熱遷移的能力不兼容。所以,雖然這些智能網(wǎng)卡的性能很好,但是沒有辦法應(yīng)用到公有云環(huán)境。”徐亮介紹道。
其實(shí),業(yè)界一些公有云廠商很早就在借助這些智能網(wǎng)卡做加速,但是在處理熱遷移的時(shí)候做不到用戶的無感遷移,必須要用戶手動修改虛機(jī)里面網(wǎng)絡(luò)的配置。這雖然能夠達(dá)到目的,但是對用戶并不友好。對此,UCloud 秉持一向的態(tài)度:“我們一定要做到用戶沒有額外的負(fù)擔(dān),這樣對用戶來說才是最佳的方案,才是成熟的、用戶友好的方案?!?/strong>
據(jù)徐亮回憶,情況在2017年底出現(xiàn)了一個(gè)轉(zhuǎn)機(jī)。彼時(shí),Linux內(nèi)核社區(qū)開始討論智能網(wǎng)卡如何能夠無感的支持熱遷移,UCloud技術(shù)團(tuán)隊(duì)第一時(shí)間進(jìn)行了深入的技術(shù)追蹤和研究。從社區(qū)開始討論和開發(fā),最后到2018年5月份時(shí)該功能趨于穩(wěn)定,才被接受到 Linux 的內(nèi)核主線里。
“在發(fā)現(xiàn)該功能已經(jīng)基本成熟后,我們馬上就把這個(gè)補(bǔ)丁應(yīng)用回UCloud的定制內(nèi)核當(dāng)中,跟智能網(wǎng)卡廠商一起研究,很快就在實(shí)驗(yàn)室完成了該產(chǎn)品?!毙炝两又劦?,“然后我們就開始在線上做公測。這個(gè)時(shí)候就非常體現(xiàn)我們的工程能力?!?/p>
在徐亮的團(tuán)隊(duì)將智能網(wǎng)卡投入生產(chǎn)環(huán)境時(shí),雖然也發(fā)生了一些問題,但是就算在連固件都升級過兩次的情況下、對用戶的業(yè)務(wù)并沒有產(chǎn)生太大的影響,我想這就是 UCloud技術(shù)團(tuán)隊(duì)的工程能力一個(gè)重要體現(xiàn)——“我的固件都升級了,而用戶業(yè)務(wù)不受影響?!?/strong>
驅(qū)動:客戶為先——工程能力
在我采訪的UCloud技術(shù)人員中,徐亮并不是第一個(gè)提到“客戶為先”、“客戶的需求就是我們下一個(gè)產(chǎn)品”等理念的,在與 UCloud技術(shù)副總裁楊鐳、私有云和容器產(chǎn)品線負(fù)責(zé)人葉理燈等人的采訪溝通中他們都曾提及這一貫徹于UCloud所有技術(shù)、產(chǎn)品研發(fā)中的理念。他們對于“客戶為先”以及在產(chǎn)品的研發(fā)、技術(shù)專研中的踐行,讓我深信他們從骨子里認(rèn)可這樣一個(gè)價(jià)值觀??梢哉f,“用戶為先”的理念驅(qū)動著其工程能力的形成。
談到他們的經(jīng)典網(wǎng)絡(luò)升級至VPC2.0項(xiàng)目,也許你會理解我說的。
以“客戶為先”為出發(fā)點(diǎn)
據(jù)我了解,UCloud應(yīng)該是全球唯一一家把經(jīng)典網(wǎng)絡(luò)升級到VPC 2.0網(wǎng)絡(luò)的公有云廠商。在我和多位UCloud 技術(shù)人員的接觸中,這個(gè)項(xiàng)目被多次提及,它的實(shí)施可謂是歷經(jīng)周折,遇到的困難很多。
“我們的出發(fā)點(diǎn)是‘客戶是不是有這個(gè)訴求?這件事情對客戶來說是不是有好處?’如果是的話,那我們?yōu)槭裁床蛔瞿兀?/strong>“。當(dāng)問及項(xiàng)目出發(fā)點(diǎn)時(shí),徐亮談到。顯然,如果能夠透明的將經(jīng)典網(wǎng)絡(luò)升級至VPC網(wǎng)絡(luò),對于用戶來說無疑是有訴求和好處,不需要自行遷移或是同時(shí)維護(hù)兩個(gè)架構(gòu)。但,UCloud一開始低估了這個(gè)項(xiàng)目的難度。
徐亮說,“為什么這么難?因?yàn)橐粋€(gè)默認(rèn)的前提條件出現(xiàn)了變化——我們以前假設(shè)用戶的IP是唯一的,這不光體現(xiàn)在網(wǎng)絡(luò)產(chǎn)品上,還包括數(shù)據(jù)庫產(chǎn)品、存儲產(chǎn)品等,都會假設(shè)用戶的IP是唯一的——在之前的經(jīng)典網(wǎng)絡(luò)時(shí),該前提條件似乎是顯而易見的。但在我們要升級到VPC 2.0時(shí),我們突然發(fā)現(xiàn)這個(gè)IP變得不再唯一,由于不同的租戶網(wǎng)絡(luò)是完全隔離的,IP完全是可以重復(fù)的?!?/p>
因此,這個(gè)項(xiàng)目不再是一個(gè)純粹的網(wǎng)絡(luò)項(xiàng)目,意味著UCloud平臺上的所有產(chǎn)品都需要升級,都要支持這個(gè)重要變化,所以在工程上存在非常多的協(xié)調(diào)工作。這是一件非常、非常難的事,是一個(gè)涉及到全公司協(xié)調(diào)的能力。
“客戶為先”驅(qū)動產(chǎn)品創(chuàng)新
VPC2.0項(xiàng)目過程中,徐亮團(tuán)隊(duì)還推出了許多創(chuàng)新產(chǎn)品,如IPV6地址轉(zhuǎn)換。
公有云里面會有一些公共服務(wù),比如說,像鏡像服務(wù)、DNS服務(wù)等,所有的客戶都可能會訪問這些公共服務(wù),而有些客戶的 IP 是彼此重疊的,只是 VPC 不同而已。傳統(tǒng)上都是采用NAT的方式去做的,因?yàn)榈刂肥窍嗤?,肯定需要通過NAT翻譯成不同的地址,然后再去訪問公共服務(wù)。
但是,NAT方式有兩個(gè)問題,一個(gè)是公共服務(wù)在獲取原地址時(shí)變得很復(fù)雜,它要用TOA 或其它手段才能夠提取出原地址。另外是這是一個(gè)有狀態(tài)的網(wǎng)關(guān),可擴(kuò)展性會存在一定的問題,有狀態(tài)的部分容易成為瓶頸,維護(hù)狀態(tài)代價(jià)很大。
UCloud在這方面做了一個(gè)創(chuàng)新——徐亮的團(tuán)隊(duì)把用戶的地址和用戶的VPC 這兩個(gè)部分信息組合起來,形成一個(gè) 128 位的 IPv6 地址,把用戶的IPv4的請求無狀態(tài)地轉(zhuǎn)換成了IPv6請求,然后發(fā)送給這些公共服務(wù)。徐亮說,“我們這個(gè)無狀態(tài)轉(zhuǎn)換的思路,是非常創(chuàng)新的。對用戶來說,得到的性能很好,同時(shí)不需要為此額外增加成本。”
就這樣在“用戶為先”的驅(qū)動下,UCloud技術(shù)團(tuán)隊(duì)一點(diǎn)一點(diǎn)的完成了經(jīng)典網(wǎng)絡(luò)到VPC網(wǎng)絡(luò)的升級,歷時(shí)三年。
“我們的初衷就是從客戶為先的角度出發(fā),用我們的技術(shù)給客戶帶去價(jià)值,在這個(gè)基礎(chǔ)上我們就認(rèn)為這件事情值得就去做。”
自?。宏P(guān)于工程能力的三句話
關(guān)于對工程能力的理解,徐亮談到了幾句話: “先于客戶發(fā)現(xiàn)問題”、 “先扛住再優(yōu)化”、“這件事情能不能做到24小時(shí)止血”、“一周之內(nèi)能不能拿出一個(gè)中期解決方案?”… 讓我印象深刻,這也是UCloud技術(shù)團(tuán)隊(duì)的實(shí)踐路線。
“先于客戶發(fā)現(xiàn)問題”
據(jù)徐亮介紹,其團(tuán)隊(duì)做可編程交換機(jī)的過程中遇到一個(gè)非常隱晦的交換機(jī)芯片編譯器的BUG,它會發(fā)生哈希沖突,從而導(dǎo)致行為不可預(yù)期,但是這個(gè)問題在實(shí)驗(yàn)室是沒辦法復(fù)現(xiàn)出來。歷時(shí)一個(gè)月時(shí)間,UCloud通過在工程上引入全量測試的環(huán)節(jié),提前發(fā)現(xiàn)了問題。
這件事情之后,徐亮的團(tuán)隊(duì)開發(fā)了一個(gè)新系統(tǒng),對所有用戶虛機(jī)點(diǎn)對點(diǎn)通信的信息進(jìn)行統(tǒng)計(jì),在做變更時(shí)就會針對通信過的場景做全量驗(yàn)證。通過這種方式來發(fā)現(xiàn)一些因?yàn)檐浖軜?gòu)變化導(dǎo)致的問題,能夠先于客戶發(fā)現(xiàn)問題,在對客戶業(yè)務(wù)沒有產(chǎn)生影響的情況下去解決它。
“先扛住再優(yōu)化”
發(fā)現(xiàn)問題第一時(shí)間不是去分析根本原因是什么,而要考慮怎樣降低對客戶的影響,這就是UCloud團(tuán)隊(duì)常說的先扛住再優(yōu)化。比如說,智能網(wǎng)卡出現(xiàn)故障了,不會先修復(fù)智能網(wǎng)卡,肯定是先把用戶的業(yè)務(wù)切走,讓用戶的業(yè)務(wù)正常,然后再想辦法解決智能網(wǎng)卡的問題。
“這件事情能不能做24小時(shí)止血“
一旦發(fā)生故障就會做復(fù)盤,這時(shí)候UCloud技術(shù)團(tuán)隊(duì)最常說的一句話就是‘這件事情能不能做24小時(shí)止血’。故障對客戶是有影響的,我們要在24小時(shí)之內(nèi)先推出一個(gè)方案,這個(gè)的方案能夠讓客戶降低損失。不光是出現(xiàn)問題的客戶,甚至是其他沒有出現(xiàn)問題的客戶,我們也要在24小時(shí)之內(nèi)拿出一個(gè)方案,讓這些問題不會影響到客戶。
然后,再問‘一周之內(nèi)能不能拿出一個(gè)中期解決方案?’,最后再考慮長期解決方案,長期方案有的時(shí)候就真的很長,比如說體系架構(gòu)設(shè)計(jì)的不合理、需要進(jìn)行重構(gòu)。
結(jié)語
在和包括徐亮在內(nèi)的多位UCloud技術(shù)領(lǐng)頭人在深入溝通后,深切感受到這是一支極為自信、工程能力極強(qiáng)的技術(shù)團(tuán)隊(duì),他們敢于嘗試新技術(shù),同時(shí)其工程能力能在給用戶提高價(jià)值的同時(shí),保證不出現(xiàn)問題,我相信這是UCloud技術(shù)團(tuán)隊(duì)自信的底氣。(作者:老王 來源:Linux中國)