楊鐳訪談:UCloud 的技術價值觀

你問我相信什麼樣的事情?咱們相信雲計算是長遠的。

去年,做爲《穿山甲專訪》系列採訪之一,咱們曾經給你們分享過 UCloud 技術副總裁楊鐳先生的訪談。那是我和楊鐳先生的第一次見面,雖然採訪時間不長,可是他務實嚴謹的風格,也給我留下了深入的印象。所以,此次又特地預定了他的時間,專程去上海和他深刻地聊了一些過去七年 UCloud 的技術價值觀理念,並與這位從一線運維跌打滾爬出身的技術領袖的所思所想產生了深切的共鳴。數據庫

做爲採訪者,我也是一位作了二十多年互聯網技術工做的老兵,雖然在私交上我和楊鐳並不算熟悉,可是隨着在互聯網、技術和開源方面話題的展開,咱們很快就聊得十分投機。後端

                         【圖:現場採訪圖】

第一章 一位技術人員的成長史

話題是先從楊鐳先生的技術背景和從業經歷展開的。

老王:是否能夠請先介紹一下你以前的技術背景和你的從業方面的狀況?安全

楊鐳:我結合 UCloud 整個技術發展的狀況和我本身的狀況跟你講一下。服務器

個人背景是這樣的,我 2006 年加入盛大在線,剛入職時我是從最一線的運維人員開始作的,大概兩年多之後逐漸地開始參加一些研發的工做,作一些運維的平臺系統開發工做。網絡

我跟老季(UCloud CEO 季昕華)是大概 2008 年認識的,他當時在管盛大在線。盛大在線提供運維平臺來支撐各個遊戲部門的業務,包括像盛大創新院的服務器,其實背後都是由盛大在線提供運維的。在以後作盛大雲時,咱們承接了很是多的業務部門的運維工做,而當時我就是在作平臺技術方面的工做。架構

那時包括 OpenStack 纔剛剛出現,AWS在國內剛被知曉,而咱們那時候本身最先作虛擬化都是經過 VMWare 來作的。咱們一直在關注雲計算的發展。在 2011 年末,老季出來創業時,問我有沒有興趣出來,我就出來了。框架

咱們當時認爲,運維應該走到一線去產生業務價值,而云計算正好是可讓作運維、作技術的人能作產品的一個技術。雲計算說白了是把之前運維的東西放在臺前了,能夠去賺錢了。less

📧從一封未發出的郵件提及…

楊鐳:當時我離開盛大的時候,寫了一封郵件,但郵件我沒發出去,一直存在個人草稿箱裏,如今還在。其實我對盛大也是挺有感情的,整個平臺都是咱們一手搭建的,作了不少不少的事情,仍是很辛苦的。運維

那封信大概的意思是說,雲計算真的能解決不少問題,它能讓服務器彈性地、不用關機去升級內存和 CPU……還有不少充滿想象力的事情,其實這也是 UCloud 的初衷,是咱們出來創業的初心,包括老季在內,其實也是這樣的,在那個時候咱們每次出問題,他都知道,多是哪一個機房的網線插反了,或者哪一個服務器配置不當心沒搞對,就像蝴蝶效應同樣引起了嚴重的後果。分佈式

那時候出來,咱們就是想把雲這個事情作好。

踐行新技術,處處吃螃蟹

楊鐳:由於我不是從研發出身的,當時 UCloud 創業的時候也不容易,咱們當時除了三個創始人以外,還有五個研發技術人員。當時全部的運維、開發、底層的一些工做,這些我都參與過。

一開始我是作網絡方面的研發,當時懂網絡的人比較少,而我是作運維出身的。那時尚未 SDN 的概念,咱們開始作雲計算的時候,當時主流的虛擬化技術是 Xen,KVM 剛進入視野。我那時候很關心 Linux 內核方面的技術,我認爲 KVM 必定是有發展的,因此就建議圍繞KVM而不是Xen作底層虛擬化,咱們一開始採用的 KVM 就是這樣來的,結果在後面就少走了不少的彎路。

我主要的一個工做是虛擬機建立流程,這跟我本身以前的一些運維知識也比較匹配,在這方面我作的不少工做主要是優化。這裏面其實有一個雲計算產品的精髓,雲計算產品若是要作好有兩方面:

一方面技術要作好,它的可拓展性、穩定性要好,這是從研發的架構層面來看;另外一個方面,你要真正地懂這個產品。

好比說雲主機,你如今來看不少雲計算產品的功能都已經習覺得常了,可是 UCloud 一開始作了不少可能如今看起來不一樣尋常的事情。爲何會作這些事情呢?根本緣由在於咱們對於運維的理解比較深入,因此咱們敢先作這些功能。好比說當時有一個叫「重裝系統」的功能,當時不少雲服務商是沒有這個功能的——那時候還很早,大約是 2012年的時候——這是我如今回過頭來看一開始 UCloud 在那個階段能衝出來的一個蠻重要的緣由。

當時 SDN 也是這樣的。在那個時候,不少技術和框架尚未標準的、能夠參考的開源實現。好比說作虛擬化,你能夠用 KVM 或 Xen 都能作 。由於那個時候我對網絡方面一直很感興趣,我之前主要是作運維,對 IPtables 很熟悉,排查過很是多複雜的現網故障,因此對於IPtables在生產環境中的使用有必定的把握。當時咱們就是這樣,去 AWS 的 EC2 虛擬機中抓包結合網絡上的材料來分析背後的實現方案,而後用最有把握的工具鏈來實現。咱們很快就作了一套本身的 SDN——當時尚未 Open vSwitch,它是 2013 年出來的——而咱們當時就很大膽地採用了一個這樣的東西。如今你看 UCloud 發佈的技術文章、咱們把技術實現方式都講了出去,可是那個時候你只能本身猜和試驗。

雲計算的問題在於什麼呢?它的產品是技術型的,客戶用你的產品和服務的時候,你跟客戶接觸的人員是要懂技術的,儘管咱們傳統上認爲這個事情不少仍是商務上、銷售上的事情。可是最終你要成就一個優質的客戶,由於只有優質的客戶,它的業務好,纔會更多的買雲服務。而優質的客戶不光看客戶關係的,看的仍是你的技術、你的產品和你的人員是否是專業。由於這個緣由,因此我後來在整個 UCloud 工做的過程裏,不斷地在往前走,去作技術支持。那時候咱們很重視客戶,我去作解決方案架構師,甚至有段時間在事業部參與銷售工做,實際上是由於被這個問題推着往前走的,包括我如今其實主要的精力也在負責產品以及總體的技術管理這塊。

差很少個人技術歷程就是這樣的,這也是 UCloud 技術這幾年發展的一個縮影。

第二章 技術觀與價值觀

老王:你做爲 UCloud 的技術負責人,以前在 TIC 大會上我也聽你講到過 UCloud 的技術價值觀的觀點,我想了解一下在宏觀上、較高層面上你是如何看待雲計算技術的發展的,以及這裏傳達了什麼樣的價值觀?

「能力」——用工程能力解決技術問題

楊鐳:接着前面的話題說。儘管在方向上是對的,可是咱們仍是走了不少小的彎路。咱們有一個核心的能力,也是 UCloud 的核心技術能力,就是出現 BUG 或者架構缺陷的時候能夠很快地在現網透明地升級解決掉——這其實是對咱們後端的無縫升級能力特別大的挑戰。我本身的感覺是,一開始講要這樣作時我其實不太相信能作到,可是在第一年,咱們就作到了不少這樣的事情。

我舉個例子,當時咱們產品上線之後,作彈性 IP 的實現,一開始很簡單,咱們搞幾臺設備,用IPtables實現了彈性IP和內網雲主機的映射,放在兩臺機器上,有故障時候服務自動切換,一切都很美好。可是上線之後就開始發現問題,這兩臺機器不停地宕機,其實就是出現了 「Kernel Panic」。由於咱們一開始只有兩臺核心網絡接入設備,宕機一臺就是 50% 的服務不可用,而後客戶天然就炸了。可是那時候咱們是解決不了這個 「Kernel Panic」 問題的,儘管懂一點內核知識,可是對內核代碼層面的問題並不瞭解,我不知道爲何會發生,雖然我知道確定是那個方向的問題。

咱們搞不定怎麼辦呢?當時老季和咱們 COO 常常在外面和客戶解釋網絡故障的緣由,例如中午和客戶吃飯,邊吃邊告訴客戶咱們出了什麼問題,會採起什麼樣的措施確保再也不出現。而在後面,咱們作了一件什麼事兒呢?咱們大概花了 2-3 天的時間,咱們把兩臺集中式的服務器變成分佈式的了,由於在物理機上崩潰了以後、服務器就掛了嘛,因此咱們把這個服務放到虛擬機裏去,每一臺物理機上咱們放兩臺。這樣好比說到時候這裏宕機了,這兩臺就能夠及時切換,並且由於是虛擬機,切換速度很快。咱們寫了一個自動化地拉起全部服務的腳本。兩三天就完成了,就把這個問題救活了。若是當時不解決,可能 UCloud 就掛了。

咱們靠這個機制頂了大半年,直到咱們的內核負責人來了。最後,發現是什麼問題呢?確實是流量帶寬控制那裏有一個隱藏的 BUG,這個 BUG 其實連 CentOS 都沒修復——由於咱們用的是 CentOS——它沒修復,而咱們也搞不定。當時去查找 CentOS 的補丁列表,並沒發現有這方面的補丁。到最後是怎麼發現的呢?是上游後來發一個修復,可是這個修復 CentOS 一直都沒放進來。

你看,這自己是一個很是深刻的技術問題,但在創業的時候你不必定能解決,而咱們經過架構的優化把它解決掉了,這其實是 UCloud 從成立第一年開始到如今的一個核心能力。我本身經歷過這個事情之後,再遇到什麼事情都不怕了。

用架構、用工程能力去解決了一個隱藏很深的技術問題,以成本最小的方法解決問題。

楊鐳:這是一種變換的能力。這是整個 UCloud 技術文化所貫穿的一點,先提供一個方案把它解決掉,讓咱們的服務品質不會下降。而要作到這一點,我以爲最難的是你須要對工程這個事情有深入的理解。你們都會說工程師很重要、工程能力很重要,可是說實話,就像我開始來到 UCloud 的時候,我也會講我是工程師,我很自信這一點,可是在我第一年遇到並解決了不少問題之後,我發現本身其實還不太懂。好比說,你看如今最近很火一些知識付費類課程,當我走到那個高度後我跟你說這個事情應該這樣,應該那樣。但若是你是才進入行業兩三年的人,你是聽不懂的,你並不知道怎麼作,只能知道這句話應該是對的。這句話可能確實是對的,可是在平常工做中,你第一時間是反應不過來的,由於你不會深入理解這句話。

一開始咱們的工程能力就是很強的,由於這個基因來自於創始團隊是當時最頂尖的工程團隊。雲計算天生對穩定的要求特別高,這是很是偏工程化,而這個能力對整個行業的影響是很深遠的。

「嘗試」——當時膽子真的太大了,走得很前面

楊鐳:當時咱們遇到的挑戰不少,咱們一開始第一代用 SDN 白盒交換機的,當時沒多想就上了,而後咱們遇到了很是多的問題,最先還用過 Open Switch。其實 UCloud 前幾年在技術上走的比較靠前,由於咱們規模較小,決策更快,並且咱們的技術團隊膽子也很大,由於對技術團隊很自信,對本身的工程能力很自信,因此敢嘗試新的技術。好比說在網絡層,咱們有一套是用的 OVS,還有一套是用白盒交換機,而咱們在兩套之間還作了無縫地升級。咱們的膽子大,因此那時候咱們玩的都是新的技術。我還記得我在 2013 年出去作過 SDN 相關的演講,如今看來當時膽子真的太大了,走得很前面。

那時候你們都知道是趨勢,可是到底會怎麼發展尚未人敢下定論,就像 Service Mesh 同樣,如今絕大多數公司在作研究,在作概念驗證,而咱們已經在產品環境上跑了,咱們走在很前面,有點孤獨。

從我本身的角度看,咱們那時候技術仍是走得很快的。我舉一個例子,好比如今有的雲服務商要在兩個地域之間打通,好比說從北京到香港,通常會告訴你要找第三方的網絡供應商幫你打通。而 UCloud 是怎麼作的呢?咱們在底層有物理專線,用戶只要在控制檯點一下兩邊就通了。大概在至關早的時候,咱們就提供了兩個地域鏈接打通的功能。如今有的雲服務商還須要幾天才能爲客戶打通,而咱們只要控制檯上點一下,計費以後就通了,兩個地域間的虛擬機就所有都互通了。

我記得那時候在這個功能的發佈前夕,咱們爲此作了一整個通宵。在早上 7 點鐘的時候,公司有人來上班了,我就在羣裏發了一條消息,說咱們這個搞完了,你們都很激動,雖然如今兩個地域之間的雲計算服務器連起來是很正常的,可是在那個時候是沒有人作的,那時候就感受頗有成就感。

其實好幾個 UCloud 早期的研發同事,他們都有相似於跟我同樣的事情,只是我當時的領域所有在網絡上,而他們的領域在其它的方面。

整個雲計算這個事情,它的核心實際上是一個技術問題,最終想在這個地方走長遠,本質上是要比技術能力的,一不當心就會落後。

我再舉一個例子,咱們在 2014 年下半年的時候招了第一個作 DPDK 研發的人,那時候咱們知道 DPDK 技術發展前景還不錯,因此咱們招了這個崗位;而到了 2018 年的下半年,若是哪家有云產品而沒有 DPDK 技術,你的產品是徹底不具有商業競爭力的,你會賣得很貴,性能很是差,而友商會賣得很便宜,性能又很好,這個就是技術的紅利。DPDK 的紅利,可是若是你當時不投入的話,到如今可能會來不及。這是看三年的,因此咱們如今在作 Serverless 方面的工做,投入是比較大的,可是若是咱們不投入,可能三年之後或者四五年之後就出局了。

楊鐳:咱們還作了不少頗有意思的事情。好比,不少用戶買了雲計算的虛擬機之後因爲密碼不嚴格被黑掉了,而後就變成肉雞對外發大量數據包。這個事情不少雲服務商的處理是很簡單粗暴的,就是把你機器關掉,但客戶實際上是很受傷的。而咱們當時不是這樣作的。咱們看,它不是對外發包嗎?咱們在宿主機上打開 TCP 來抓包,好比說 10 秒鐘的包——由於不能長抓,長抓的量太大了——把它放到數據庫裏,而後咱們去分析這個 TCP 包的特徵、出入的比例,若是隻是出站沒有入站的話,那就確定是被利用攻擊了嘛。後來咱們發現,全部被反射攻擊利用的特徵都是這樣的。咱們發現若是符合這個特徵,就把這個虛擬機的網絡給處理掉——咱們會把它的網絡給漂走,叫作隔離區,並無把機器關掉,不會影響其餘人,可是他的虛擬機本身仍是能夠登進去的。咱們把這叫作最優選擇,可是這個技術上很複雜。

實際上這不是純技術的問題,這是一個理念,你要懂技術,還要懂業務,還要懂數據分析,還要設計一套東西把它串起來。

咱們以爲自豪的一點不是說這個技術很厲害,而是咱們的友商沒人這樣去作。咱們作了好幾件相似的事情,咱們最終帶動了行業的發展,客戶在 UCloud 裏體會到好處之後,他跑到別的雲服務商說,你看 UCloud 這樣作的,別的雲服務商沒辦法,就被咱們反逼提供這樣的功能。並且這種功能不是說咱們爲了超越誰,而是咱們本身想出來的。咱們本身的研發人員本身關起門來講,對這種事情仍是挺自豪,某種意義上我以爲這實際上是種創新。

「價值觀」——咱們相信雲計算是長遠的

老王:你剛纔介紹了 UCloud 的狀況,做爲技術人員我也以爲頗有心嚮往之的感受。你以爲目前而言,大家這個四五百人的技術團隊的優點主要是在工程能力上仍是在大家團隊上的技術文化上?

楊鐳:從我這個角度,首先這是咱們的精髓、文化或者說是技術文化。在這個問題上咱們是不容許所謂的不純粹的。因此在管理上,其實咱們對剛纔說的這幾件事情,咱們是要求很高的,若是你新來一我的你在文化上不認同,這個可能不適合你。

還有一方面,咱們對整個技術的價值觀就像上次我跟你聊的同樣,咱們會要求很高。咱們除了本身不收集,還會幫用戶把隱私保護好,告訴用戶不要給咱們任何的信息,而多數的公司是反過來的。咱們大概會在 1 年多後完成大部分雲上數據的加密,包括存量的數據。就像咱們在去年的 TIC 大會上說的,這裏會堅定投入,並且不是一個小的研發投入。由於說白了用戶未必本身訴求那麼強,不少時候沒這個意識。而咱們作這個事情由於有不少存量的雲主機,幾十萬臺的規模,咱們要透明的、不影響性能、安全地放上去,並且密鑰還要按期輪換,不能總是一把密鑰,可是要輪換的時候又不能影響性能,因此在工程上是有挑戰的和有技術深度的。咱們作那麼多的事情,說白了這就是價值觀問題,咱們真的對用戶的數據安全很是重視。

樹立了一個本身的獨特價值觀,並且爲了這個價值觀付出了代價、成本。

楊鐳:儘管咱們如今人很多了,可是咱們產品線也很長,咱們這點人也是不夠的,咱們如今作這個事情都在加班作,說白了時間不夠,只能花時間解決這種問題。這種事情說白了是在價值觀上,你作不作可能沒有區別,可是咱們認爲真正長遠地看這個事情是有意義的。眼前不會有太大的得益和收益,可是從長遠的趨勢看,從咱們的信念看,保護隱私、保護數據安全實際上是一個全部人都會走向的共同的目標,只是如今還看不到。

全部的這些事情其實都是概括到一點,你相信什麼樣的事情?咱們相信雲計算是長遠的。咱們跟客戶的合做不是作一錘子買賣,咱們甚至於對客戶都有要求,咱們都要作得很優秀,咱們要長遠看這件事情值不值得作?固然值得作。爲何要看長遠?由於咱們對本身仍是有信心的。其實你的如今是被過去決定的,你如今是爲將來作的,因此咱們如今在這個層面上想的事情都是三年、五年之後的。如今這些從大勢來看,咱們作的這些其實都是由於咱們前三年作了一些事情,咱們堅持了一些事情,由於作了那些事情,咱們活了下來了。如今數據隱私這個事情也好,數據安全這個事情也好,或者是不少 Serverless 產品也好,咱們相信在那個時代會更重要,因此咱們堅持作這個。

第三章 尾聲

老王:作這個專訪,一方面咱們但願看到真正的技術人如今具體作哪些事情。另一方面咱們但願讓你們看到有這樣的公司在作具體的事情,這些事情會不會對他們產生觸動、啓發甚至吸引他們去關注或者參與,這是咱們但願能進一步作到的東西。

我以爲今天你婉拒了不少採訪的邀約而接受咱們的專訪,我以爲也很榮幸。一方面咱們能夠持續性地關注大家這邊的技術進展,咱們把有些可能在大家看來不值得一提,可是在咱們看起來可能很是重要或者更有傳播和示範意義事件傳播給你們。我以爲今天的採訪讓我確實地瞭解到了不少我原來沒有想到或者沒有觀察到的地方。

楊鐳:我從一個運維人員走到如今,如今作這個事情我才能發現原來是這樣的。我以爲我能理解你,由於你們專業不一樣,咱們正好天天在這裏作事情,因此就往這個方面想。我但願這篇採訪能讓你們知道有些事情怎麼作更好,只是咱們走在了前面一點,咱們是這個行業裏的人,咱們有經驗,咱們傳播出去,這個我很開心,就 OK 了。

「穿山甲專訪」欄目是 Linux 中國社區推出的面向開源界、互聯網技術圈的重要領軍人物的系列採訪,將爲你們介紹中國開源領域中一些積極推進開源,諳熟開源思想的技術人,並辨析其思考、挖掘其動因,揭示其背後所發生的事情,爲關注開源、有志於開源的企業和技術人標出一條路徑。

取名爲「穿山甲」寓意有二:取穿山甲挖掘、深刻之意來象徵技術進步和表徵技術領袖的做用;穿山甲是珍稀保護動物,宣傳公益。

相關文章
相關標籤/搜索