
從炎熱的夏日中走入到錢(qián)塘江畔清涼的網(wǎng)易云會(huì )客室,我見(jiàn)到了陳諤,開(kāi)始這次“輕舟”之行。
說(shuō)實(shí)話(huà),初次近距離見(jiàn)到陳諤時(shí),心中有點(diǎn)愕然,作為網(wǎng)易杭研的元老之一、網(wǎng)易云基礎服務(wù)的領(lǐng)頭人,我竟然從他身上感到一點(diǎn)點(diǎn)靦腆和技術(shù)人員的質(zhì)樸。聯(lián)想到之前網(wǎng)易云這邊作為背景信息給出的個(gè)人介紹,這樣的一位領(lǐng)軍人物,居然自謙自己“對分布式系統設計開(kāi)發(fā)、云計算平臺系統架構有一定的經(jīng)驗和理解”,我不禁有些恍然。
我接觸和采訪(fǎng)過(guò)很多開(kāi)源和互聯(lián)網(wǎng)公司的技術(shù)領(lǐng)袖,陳諤應該是我見(jiàn)過(guò)的最溫和而又不失自信的人之一,他的臉上總是浮現著(zhù)內斂的笑容,讓我們在談話(huà)的一開(kāi)始,就有了一個(gè)良好的氛圍。

受訪(fǎng)者(左):網(wǎng)易云陳諤,采訪(fǎng)者(右):老王
網(wǎng)易云:千錘百煉終成型
和很多互聯(lián)網(wǎng)公司推出的云服務(wù)一樣,網(wǎng)易云也是一個(gè)脫胎于內部實(shí)踐的云服務(wù)。網(wǎng)易杭州研究院作為整個(gè)網(wǎng)易公司的技術(shù)攻堅力量和創(chuàng )新業(yè)務(wù)孵化團隊,隨著(zhù)網(wǎng)易業(yè)務(wù)和規模的不斷的變化,杭州研究院面臨著(zhù)非常大的壓力去做好基礎設施的相關(guān)工作。
隨著(zhù)移動(dòng)互聯(lián)網(wǎng)的到來(lái),原本可以很好應對博客、游戲等業(yè)務(wù)的 IT 基礎設施逐漸變得捉襟見(jiàn)肘,原本的資源調度能力無(wú)法處理好隨著(zhù)新業(yè)務(wù)和新模式的快速增長(cháng)和迭代而產(chǎn)生的需求和復雜度。IT 基礎設施成為了當時(shí)網(wǎng)易發(fā)展業(yè)務(wù)的新瓶頸。
為了能夠更好的服務(wù)網(wǎng)易內部的業(yè)務(wù), 2012 年,網(wǎng)易杭州研究院組建了專(zhuān)門(mén)的云平臺產(chǎn)品部,來(lái)建設網(wǎng)易內部使用的云計算平臺,以應對移動(dòng)互聯(lián)網(wǎng)到來(lái)而產(chǎn)生的更加復雜應用帶來(lái)的基礎設施需求。
隨著(zhù)網(wǎng)易云產(chǎn)品對內提供服務(wù),規模上的問(wèn)題被逐漸解決,但是,產(chǎn)品的研發(fā)模式也在不斷的迭代,網(wǎng)易內部開(kāi)始不斷地實(shí)踐微服務(wù)架構。在這個(gè)過(guò)程中,陳諤感覺(jué)到,現有的 IaaS 產(chǎn)品和 PaaS 產(chǎn)品已經(jīng)漸漸無(wú)法支撐來(lái)自微服務(wù)架構的復雜度,但在那時(shí),云原生理念和技術(shù)尚未成熟的時(shí)代,對于微服務(wù)的探索只能獨立踐行。網(wǎng)易云針對性的提供了 CI/CD、分布式架構鏈路跟蹤、服務(wù)治理的工具,幫助用戶(hù)更好的去實(shí)踐微服務(wù)。
到了 2015 年 7 月,隨著(zhù) CNCF 的成立,這時(shí)陳諤發(fā)現,網(wǎng)易云的很多產(chǎn)品和服務(wù),和 CNCF 的理念是一致的或相似的,于是,網(wǎng)易云決定將自己的探索和成果更好地結合社區的發(fā)展,向社區貢獻自己的努力,也吸納來(lái)自社區的營(yíng)養,將網(wǎng)易云的發(fā)展和開(kāi)源社區的路線(xiàn)結合起來(lái)。
也正因為擁抱社區,網(wǎng)易云很早就走上了 Kubernetes + Docker 的發(fā)展路線(xiàn)。談起對于 Docker 和 Kubernetes 的選擇,陳諤表示,網(wǎng)易云選擇 Docker 和 Kubernetes 并不是偶然之下的決定。
實(shí)際上,早在 Docker 出現之前,網(wǎng)易云已經(jīng)開(kāi)始使用 LXC 技術(shù)來(lái)進(jìn)行更細粒度的資源分配,實(shí)現了類(lèi)似的容器技術(shù)棧,在此過(guò)程中,陳諤及其團隊親歷了 LXC 技術(shù)在實(shí)施的過(guò)程中各種問(wèn)題和技術(shù)缺陷帶來(lái)的困擾。而 Docker 的橫空出世使得整個(gè)云計算領(lǐng)域眼前一亮。雖然網(wǎng)易云自建的技術(shù)棧已經(jīng)可以滿(mǎn)足當時(shí)及近期業(yè)務(wù)的需求,但作為具有技術(shù)遠瞻力的技術(shù)負責人,陳諤知道,相比于得到業(yè)界普遍看好的 Docker,自研的專(zhuān)屬技術(shù)棧的生態(tài)環(huán)境狹窄,技術(shù)人員的培養成本也居高不下。而另外一方面,Docker 的鏡像機制、分層文件系統機制,也使得之前在 LXC 技術(shù)棧里面斬荊披棘的網(wǎng)易云似乎看到容器技術(shù)發(fā)展的堂皇大道,使用 Docker 也就變得順理成章。因此,網(wǎng)易云十分自然的就完成了從 LXC 向 Docker 的轉移。
我問(wèn)及 Kubernetes 的選擇,陳諤笑了笑,他提到,網(wǎng)易云對于 Kubernetes 的支持是非常早的,在早期 Kubernetes、Swarm、Mesos 尚三足鼎立的時(shí)候,網(wǎng)易云就堅定的投入了 Kubernetes 生態(tài)。這一點(diǎn)和網(wǎng)易云過(guò)去在微服務(wù)、容器編排方面的實(shí)踐是密不可分的。Kubernetes 解決了網(wǎng)易云在過(guò)去運維過(guò)程中遇到的諸多問(wèn)題:如何進(jìn)行彈性伸縮、如何進(jìn)行服務(wù)調度、如何使用配置來(lái)進(jìn)行控制。Kubernetes 所提供的配置能力,特別適合于需要解決微服務(wù)架構編排問(wèn)題的網(wǎng)易云。
對于網(wǎng)易云來(lái)說(shuō),他們并不是一個(gè)刻意追求新奇的團隊,相比于新興的技術(shù),網(wǎng)易云更在乎什么能夠解決問(wèn)題。顯然,對于微服務(wù)架構支持最好的 Kubernetes 成為最終之選。
企業(yè)云:只為解決客戶(hù)問(wèn)題
網(wǎng)易云和很多云計算公司不同,沒(méi)有將目光全部投放在公有云上,而是專(zhuān)注于為企業(yè)提供業(yè)務(wù)云化的解決方案。網(wǎng)易云也和容器云廠(chǎng)商的定位不同,容器是網(wǎng)易云的產(chǎn)品,更是網(wǎng)易云的工具,因此網(wǎng)易云雖然很早就應用了 Docker、Kubernetes 等技術(shù),但是并沒(méi)有突出這些看起來(lái)非常時(shí)髦的技術(shù)名詞,而是根據企業(yè)需求,更多的將這些作為服務(wù)于上層的微服務(wù)產(chǎn)品的基礎。通過(guò)結合容器的網(wǎng)絡(luò )方案、存儲方案等云原生技術(shù)積累,網(wǎng)易云希望更好的服務(wù)自己的客戶(hù)。
陳諤說(shuō),網(wǎng)易云之所以選擇了企業(yè)云的路線(xiàn),更多是因為網(wǎng)易云發(fā)現自身更適合于在云原生領(lǐng)域深耕細作。與其在公有云的紅海中去競爭,不如在云原生領(lǐng)域去深入挖掘,提升技術(shù)和競爭力。這樣,就將競爭從 IaaS 層面,提升到了基于云原生體系的 PaaS 層面,避開(kāi)了紅海的競爭。同時(shí),這種基于 Kubernetes 標準化的 PaaS 服務(wù),其生命力也遠超普通的 IaaS 產(chǎn)品,Kubernetes 的設計使得它能夠消除廠(chǎng)商鎖定,基于其實(shí)現的 PaaS 服務(wù)可以運行在任何一家 Kubernetes 服務(wù)商的云產(chǎn)品上。
陳諤還提到,作為一個(gè)面向企業(yè)提供解決方案的服務(wù)商,網(wǎng)易云和其他的容器云不同的是,更多是希望去靠近企業(yè)的 IT 的技術(shù)的認知,不會(huì )給企業(yè)造成過(guò)多的認知負擔和業(yè)務(wù)侵入性。在業(yè)務(wù)落地時(shí),能夠根據企業(yè)的需要來(lái)不斷的完成落地,而不是從一開(kāi)始就要求企業(yè)去實(shí)踐容器等,造成更大的負擔。如果不是企業(yè)的需求要做容器化的話(huà),不會(huì )第一時(shí)間要求用戶(hù)完成容器化的遷移。但陳諤也發(fā)現,當用戶(hù)真正去實(shí)施微服務(wù)框架的時(shí)候,往往會(huì )考慮實(shí)施和部署容器化,這時(shí),網(wǎng)易云早已準備好的容器平臺就可以很好的完成這部分的工作。
對于不希望進(jìn)行容器化的企業(yè),陳諤提到,網(wǎng)易云針對于這些異構的環(huán)境,也提供了不同的解決方案,諸如支持裸金屬集群和虛擬機環(huán)境的服務(wù)網(wǎng)格Service Mesh等能力,可以幫助那些不打算做容器化的企業(yè)完成自己的工作。
網(wǎng)易云希望自己的產(chǎn)品能夠基于客戶(hù)的 IT 策略來(lái)考慮,而不是將網(wǎng)易內部的實(shí)踐生搬硬套到客戶(hù)的業(yè)務(wù)中去。
DevOps認知:陳諤的DevOps觀(guān)
在談到網(wǎng)易云內部的 DevOps 實(shí)踐時(shí),陳諤提到,在網(wǎng)易云內部其實(shí)很早就開(kāi)始進(jìn)行了 DevOps 實(shí)踐。從 2014 年開(kāi)始,網(wǎng)易云內部就開(kāi)始推行服務(wù)化的組織架構和協(xié)作方式。在網(wǎng)易云內部,所有的工作都是接口先行,在網(wǎng)易云看到的每一個(gè)界面,都是先有接口,后有界面的。每一個(gè)接口背后都對應著(zhù)網(wǎng)易云的一個(gè)服務(wù)以及對應的研發(fā)團隊。這樣從一開(kāi)始,網(wǎng)易云就不設立專(zhuān)門(mén)的應用運維團隊來(lái)負責業(yè)務(wù)的發(fā)布和上線(xiàn),而是由各服務(wù)團隊自行完成業(yè)務(wù)的發(fā)布和上線(xiàn)。除了 IaaS 層面基礎設施的運維有專(zhuān)門(mén)的 SRE 團隊來(lái)負責以外,各服務(wù)的運維都由各自團隊自行來(lái)負責,這使得對應的團隊必須自行解決運維需求。而且,為了更好的協(xié)作,網(wǎng)易云內部的所有的 API ,都會(huì )放在一個(gè)統一的 API 網(wǎng)關(guān)中,所有的用戶(hù)都可以借助 API 來(lái)完成自己想要的操作,而無(wú)需進(jìn)行 Web 界面的操作。
我們還談到了 DevOps 和容器化的關(guān)系,在過(guò)去的一段時(shí)間里,宣傳上總是將二者聯(lián)系起來(lái)。在陳諤看來(lái),容器化和 DevOps 的關(guān)系實(shí)際上是相輔相成的。
在他看來(lái),之所以 DevOps 會(huì )出現,核心是隨著(zhù)企業(yè)業(yè)務(wù)的不斷服務(wù)化拆分、微服務(wù)架構的實(shí)施,中心化的運維成為瓶頸,這使得企業(yè)不得不去提升運維的能力,去招募更多的運維。但是基于企業(yè)成本的考慮,運維人員的數量終歸是有限的,因此有一些開(kāi)發(fā)人員不得不兼任運維工作。但是,開(kāi)發(fā)人員在運維方面的思路、關(guān)注點(diǎn)、風(fēng)險意識上和傳統運維人員存在一定差異,基于這樣的考慮,需要一批工具來(lái)輔助開(kāi)發(fā)人員進(jìn)行運維工作,規范開(kāi)發(fā)人員可以做的事情。在這樣的一個(gè)大背景下,容器技術(shù)應運而生了。他相信,即使沒(méi)有 Docker 公司搞出了容器化,也會(huì )有其他的公司來(lái)做出類(lèi)似的產(chǎn)品,不同的只不過(guò)是各家的方案的優(yōu)劣罷了。
輕舟微服務(wù):幫助企業(yè)更好落地微服務(wù)
此次會(huì )見(jiàn)陳諤是在網(wǎng)易云創(chuàng )峰會(huì )上,而此次大會(huì )濃墨重彩介紹的產(chǎn)品之一就是網(wǎng)易輕舟微服務(wù)。
輕舟微服務(wù)是網(wǎng)易云在完成了基礎設施的 Docker、Kubernetes 等改造完成后,基于對業(yè)界的分析和研究后提出來(lái)的。出于標準化技術(shù)棧的考慮,網(wǎng)易云最終啟動(dòng)了輕舟微服務(wù)的項目,將現有的技術(shù)棧,打造成一個(gè)個(gè)獨立的標準化技術(shù)產(chǎn)品。到了 2018 年,在完成了對所有技術(shù)棧的標準化以后,將輕舟微服務(wù)發(fā)布了出來(lái)。
陳諤認為,異構系統整合,包括兼容、通信和系統間事務(wù)一致性,和多供應商建設,包括多團隊協(xié)作、軟件資產(chǎn)沉淀,是目前企業(yè)在建設在線(xiàn)業(yè)務(wù)中臺過(guò)程中遇到的最大障礙,而網(wǎng)易輕舟微服務(wù)新品的發(fā)布,正是要通過(guò)服務(wù)網(wǎng)格、分布式事務(wù)框架 GTXS、全新 API 網(wǎng)關(guān)與原有輕舟產(chǎn)品的整合,完成全棧化在線(xiàn)中臺技術(shù)體系升級,幫助企業(yè)完成業(yè)務(wù)架構的進(jìn)化,支撐業(yè)務(wù)快速創(chuàng )新。

網(wǎng)易云陳諤和老王
陳諤介紹,輕舟服務(wù)網(wǎng)格是基于 Istio 和 CNCF 的 Envoy 等主流開(kāi)源技術(shù)構建,可以實(shí)現 Java、Python、NodeJS、Golang 和 PHP 等不同技術(shù)棧的兼容和通信,能夠與網(wǎng)易已有微服務(wù)框架 NSF 統一管控、互相發(fā)現、互相調用,并且支持容器、虛擬機和裸機部署,將異構系統的支持實(shí)現到了業(yè)界領(lǐng)先的程度。
在陳諤看來(lái),輕舟微服務(wù)的推出,是網(wǎng)易云內部的微服務(wù)能力的對外輸出,是網(wǎng)易云內部技術(shù)能力的輸出體系,針對企業(yè)客戶(hù),提供了一整套的技術(shù)方案,以及對應的咨詢(xún)服務(wù)和最佳實(shí)踐的指導,幫助先前沒(méi)有足夠能力獨力完成微服務(wù)化的企業(yè),完成企業(yè)產(chǎn)品和服務(wù)的微服務(wù)化。
很多企業(yè)的獨石應用Monolithic applications隨著(zhù)企業(yè)的發(fā)展和產(chǎn)品的變遷,都面臨新的挑戰,而微服務(wù)化改造是企業(yè)所寄予眾望的一條發(fā)展路徑。但或因為微服務(wù)的技術(shù)儲備不足,或因為既有業(yè)務(wù)的歷史包袱過(guò)重,企業(yè)自行開(kāi)發(fā)微服務(wù)體系不但耗時(shí)周期過(guò)長(cháng),而且可能因經(jīng)驗不足而走了彎路,因此,網(wǎng)易云在推出了輕舟微服務(wù)以后,贏(yíng)得了不少企業(yè)用戶(hù)的關(guān)注。
在實(shí)際的使用過(guò)程中,輕舟的部署也幫助企業(yè)大幅度提升了新業(yè)務(wù)接入的效率和版本發(fā)布的效率。舉個(gè)例子來(lái)說(shuō),如果同時(shí)有數十個(gè)微服務(wù)的不同版本在開(kāi)發(fā),在傳統的模式下,就需要提供數十個(gè)測試環(huán)境來(lái)完成測試,但在輕舟下,就可以基于無(wú)侵入的流量染色功能重用一套測試環(huán)境,僅將測試流量路由至特定版本微服務(wù),降低了環(huán)境的成本。
后記
由于我離開(kāi)了中國電信好幾年了,近些年我對企業(yè)級產(chǎn)品和服務(wù)接觸并不太多。而這次的采訪(fǎng),使得我對于一直以來(lái)缺少了解的網(wǎng)易云和其產(chǎn)品有了更深刻的認識。顯然,網(wǎng)易云在這場(chǎng)云計算大潮中,找到了企業(yè)界真正的痛點(diǎn),關(guān)注到了眾多企業(yè)的真實(shí)需求,這種深耕的思路,一方面讓網(wǎng)易云支撐起來(lái)網(wǎng)易云音樂(lè )、網(wǎng)易考拉等明星產(chǎn)品,另外一方面也使得網(wǎng)易云在企業(yè)上云和 IT 現代化方面不斷攻城略地,取得不菲的成果,這值得云計算領(lǐng)域的細分廠(chǎng)商學(xué)習。

“穿山甲專(zhuān)訪(fǎng)”欄目是 Linux 中國社區推出的面向開(kāi)源界、互聯(lián)網(wǎng)技術(shù)圈的重要領(lǐng)軍人物的系列采訪(fǎng),將為大家介紹中國開(kāi)源領(lǐng)域中一些積極推動(dòng)開(kāi)源,諳熟開(kāi)源思想的技術(shù)人,并辨析其思考、挖掘其動(dòng)因,揭示其背后所發(fā)生的事情,為關(guān)注開(kāi)源、有志于開(kāi)源的企業(yè)和技術(shù)人標出一條路徑。
取名為“穿山甲”寓意有二:取穿山甲挖掘、深入之意來(lái)象征技術(shù)進(jìn)步和表征技術(shù)領(lǐng)袖的作用;穿山甲是珍稀保護動(dòng)物,宣傳公益。