
這個(gè)被他稱(chēng)為完美組合的團隊,并不是來(lái)自大廠(chǎng)名企,彼時(shí)王啟軍給不起高待遇,團隊核心成員中還有很多人是專(zhuān)科學(xué)歷。但就是這樣一支團隊,建立了IaaS平臺,搭建了私有云、云緩存、分布式文件中心……甚至還有自己的開(kāi)發(fā)框架、工作流平臺、配置中心,而彼時(shí),是在2013年前后。
王啟軍在文章里寫(xiě)到:“給不起高薪,就挑選潛力股,用成長(cháng)來(lái)吸引人。”最后,王啟軍確實(shí)也兌現了承諾,團隊成員工作一年以上的,出去后薪酬基本都翻倍,并跳槽到國內知名互聯(lián)網(wǎng)公司的不在少數。
如今,王啟軍已成為華為云IoT首席架構師,盡管“捉襟見(jiàn)肘”開(kāi)不起高薪的煩惱不再,但他認為挑戰依舊,因為在云計算時(shí)代,很多顛覆性的工作正在等待他去突破與創(chuàng )新。
「擁抱開(kāi)源,要做顛覆性的云」
今天,全球正進(jìn)入一個(gè)開(kāi)源的大時(shí)代。可以看到,目前全球軟件行業(yè)有兩個(gè)重要的趨勢:一是“軟件正在吞噬一切”,每一家公司都正在變成一軟件公司;二是“開(kāi)源也在吞噬一切”,越來(lái)越多的公司都在使用和擁抱開(kāi)源軟件。
同樣,對于開(kāi)源的關(guān)注,也始終是王啟軍工作重心中的一部分。據他介紹,目前華為云很多產(chǎn)品線(xiàn)的目標都是希望做“顛覆性”的產(chǎn)品,而不是只考慮跟競爭對手持平。因為即便超越了對手,但是還是可能會(huì )輸給時(shí)代。所以華為云的產(chǎn)品考慮必須長(cháng)遠。
在云的領(lǐng)域,根本的問(wèn)題還是要做到成本足夠低廉,就像水電煤一樣。當云產(chǎn)品的功能做到一定程度后,成本就會(huì )成為最大區別點(diǎn)。對華為而言,云服務(wù)器基于兼容ARM架構的鯤鵬來(lái)做,從底層開(kāi)始自己做,這樣成本能控制住。但是,很多軟件是長(cháng)在x86平臺上,實(shí)現平臺的遷移必須要依靠生態(tài)。
因此,華為云未來(lái)要不斷成長(cháng),就需要把生態(tài)做好,同時(shí)還必須支持開(kāi)源,把更多的產(chǎn)品開(kāi)源出來(lái),培養、催化、擁抱這個(gè)開(kāi)源社區,這樣整個(gè)生態(tài)體系才能建立。一旦建立起來(lái)生態(tài),“我相信華為云對行業(yè)的顛覆性非常大”,王啟軍說(shuō)。
他認為,從商業(yè)的角度考慮,開(kāi)源的產(chǎn)品與公有云聯(lián)合,對客戶(hù)對華為都有好處。客戶(hù)用開(kāi)源的東西,對客戶(hù)來(lái)說(shuō)能節省很多工作量。尤其是很多小公司,自己沒(méi)有能力開(kāi)發(fā)一個(gè)開(kāi)源框架,或者開(kāi)源的中間件,用開(kāi)源的東西能加快開(kāi)發(fā)進(jìn)度,還可以讓系統比較穩定。
比如,華為云會(huì )開(kāi)源一個(gè)微服務(wù)框架,這個(gè)微服務(wù)框架在華為內部用得比較成功,現在開(kāi)源出來(lái)給外部去用,客戶(hù)就可以聯(lián)合華為公有云和開(kāi)源框架,基于微服務(wù)框架的應用就很容易上到華為云上,華為云上有很多中間件可以整合,讓客戶(hù)覺(jué)得非常合適。
王啟軍認為,不管是做開(kāi)源框架還是用開(kāi)源框架的人,都是巨大的生態(tài)。在這個(gè)生態(tài)里面有很多商業(yè)思考,可以做很多事情,有很多想象空間。
「軟件開(kāi)發(fā),一門(mén)妥協(xié)的藝術(shù)」
當然,要真正做好基于開(kāi)源的云計算產(chǎn)品,其實(shí)也面臨技術(shù)、制度、文化三個(gè)方面的挑戰。
王啟軍說(shuō),過(guò)去華為做產(chǎn)品,開(kāi)始就要規劃好。立項的時(shí)候對技術(shù)市場(chǎng)競爭會(huì )分析得比較清晰明白,然后按照計劃去執行,執行過(guò)程中不會(huì )有太大的變動(dòng)。產(chǎn)品立項到交付,會(huì )有比較長(cháng)的周期,比如5G、6G的研發(fā),都是要經(jīng)過(guò)很多年的開(kāi)發(fā)才能出產(chǎn)品。
但現在,華為公有云會(huì )要求快速迭代,產(chǎn)品快速上線(xiàn)。在這樣大背景下,一個(gè)產(chǎn)品一年上線(xiàn)十次和一年上線(xiàn)一萬(wàn)次,會(huì )有根本的區別。
首先,從流程制度看,過(guò)去,上線(xiàn)次數少,可以依靠嚴格的開(kāi)發(fā)制度、測試制度和上線(xiàn)制度,制度對每個(gè)環(huán)節會(huì )卡得很?chē)溃源藖?lái)確保產(chǎn)品質(zhì)量。以測試流程為例,過(guò)去測試環(huán)節中,會(huì )有很多的測試人員,甚至上線(xiàn)的時(shí)候,一個(gè)人來(lái)負責操作,還會(huì )有另一個(gè)人來(lái)審核監管。但是當一個(gè)產(chǎn)品一年有很多次上線(xiàn)后,依靠這種傳統的制度確保質(zhì)量是不可行的。
因為頻繁的上線(xiàn),再讓測試人員把全部功能都覆蓋測試,在時(shí)間上不可行。這就要求有流水線(xiàn)的自動(dòng)化檢查,自動(dòng)化編譯驗證測試等等。所以要求提交的代碼也有更高的質(zhì)量。從制度流程角度講,這跟原來(lái)方式完全不一樣。
其次,從文化上來(lái)講,在這種頻繁迭代快速上線(xiàn)的環(huán)境下,也要求公司內部更加透明,更加扁平化,組織結構不能過(guò)于復雜。還有就是要求開(kāi)發(fā)人員對產(chǎn)品和技術(shù)有更全面的了解,用一種小團隊合作的方式來(lái)解決問(wèn)題,而不是傳統方式靠組織的精細分工來(lái)開(kāi)發(fā)產(chǎn)品。
以代碼的review為例,在新的文化背景下,開(kāi)發(fā)人員會(huì )把請人review代碼當成自己的責任,會(huì )變成一種自主的工作模式。而不是因為代碼沒(méi)有review就上線(xiàn),因為違背制度而受到懲罰。
從王啟軍的自身體驗來(lái)看,華為云的開(kāi)發(fā)模式更接近互聯(lián)網(wǎng)公司的開(kāi)發(fā)模式,而跟華為傳統產(chǎn)品開(kāi)發(fā)有較大差別。王啟軍說(shuō),做好云產(chǎn)品的開(kāi)發(fā),關(guān)鍵還是要把握好妥協(xié)的藝術(shù)。
因為產(chǎn)品是快速迭代,頻繁上線(xiàn)。所以不能等到做到滿(mǎn)意才來(lái)發(fā)布。軟件就是不斷改進(jìn)的過(guò)程。很難一下子做到特別滿(mǎn)意的地步,基本上都是不滿(mǎn)意的狀態(tài)。假設所有的地方都滿(mǎn)意了,說(shuō)明系統已經(jīng)過(guò)度設計了,完全都滿(mǎn)意了說(shuō)明系統成本非常高。比如說(shuō)像可靠性、性能等各個(gè)方面都達到了高的要求,成本就非常高了。
“軟件架構它也是妥協(xié)的過(guò)程,會(huì )跟需求、跟成本、跟研發(fā),還有質(zhì)量,各個(gè)方面不斷的權衡,去選擇其中比較重要的方面。”他說(shuō)。
把重要的幾個(gè)方面做得比較好,其他幾個(gè)方面只能妥協(xié)。第一就是考慮滿(mǎn)不滿(mǎn)足當前的要求,等以后需求變大了,或者是業(yè)務(wù)要求的比較多了,再去補齊短板。比如說(shuō)可靠性,從3個(gè)9到4個(gè)9,或者從4個(gè)9到5個(gè)9的時(shí)候,每前進(jìn)一步,成本是指數級的上升。在這種情況下,滿(mǎn)意的標準其實(shí)需要根據階段去調整。
最后,從技術(shù)角度來(lái)講,王啟軍認為做好云產(chǎn)品,技術(shù)上的挑戰并不是那么大。大多數挑戰大家都差不多,某個(gè)部門(mén)解決不了,到公司層級就可以解決了;整個(gè)公司解決不了,尋求外部資源也能解決。
但是從團隊和文化層面,會(huì )遇到更多挑戰。在做這些事情的時(shí)候,不是說(shuō)一個(gè)人想做就能做成的,需要跟團隊的文化和團隊的制度碰撞,去磨合。要把想法傳遞給所有的人,而且所有人都認同這個(gè)想法,這非常有挑戰。
從這個(gè)角度來(lái)說(shuō),王啟軍認為這不僅僅是華為的挑戰,很多公司都有很多改進(jìn)的空間。大多數東西推行起來(lái),遇到一些沒(méi)那么滿(mǎn)意的地方,多多少少都是因為團隊,因為各種各樣的原因做了妥協(xié)。
因此,在這種情況下做開(kāi)發(fā),開(kāi)發(fā)人員和所謂架構師的區別會(huì )越來(lái)越模糊,對開(kāi)發(fā)人員的要求越來(lái)越高。比如很多業(yè)務(wù),是需要去看別人的代碼,大家有更多的交流。也要求自己的代碼要給別人去看,在這種交流的過(guò)程中,會(huì )發(fā)現自己的代碼不夠好,形成這種文化氛圍后,自我激勵、主動(dòng)學(xué)習就會(huì )成為必然。
「全新時(shí)代,全棧工程師的養成」
回顧過(guò)去多年的從業(yè)經(jīng)歷,王啟軍認為,現在行業(yè)變化非常快,技術(shù)變化也很快。過(guò)去一種框架用十幾年沒(méi)什么變化,現在基本上不可能。經(jīng)常是今天用這個(gè)框架,明天又得用另外一個(gè)框架。但現在不但框架多,而且變化還特別快。比如,微服務(wù)框架,每個(gè)公司都有很多自己私有的框架,開(kāi)源的框架也能找到七八種。
再如,以前大家在建私有云,現在公有云會(huì )越來(lái)越多的使用。公有云的特點(diǎn),就是應用跑在公有云上,中間件和基礎設施這些,都交給云去解決。跟傳統最大的區別,就是使用公有云需要的所有基礎設施都是通過(guò)代碼的方式構建。
這樣,傳統做運維做測試的人會(huì )極限壓縮,這兩方面的人會(huì )越來(lái)越少。傳統上做一個(gè)應用,需要產(chǎn)品負責人啟動(dòng),產(chǎn)品經(jīng)理開(kāi)始計劃,接著(zhù)是架構師做架構,然后開(kāi)發(fā)人員開(kāi)始開(kāi)發(fā),開(kāi)發(fā)完成交給測試做測試,最后再由運維上線(xiàn),這個(gè)流程會(huì )非常長(cháng)。
這里面會(huì )有很多決策,公司內會(huì )有很多角色來(lái)完成這些決策。但是現在使用公有云,所有的基礎設施都通過(guò)云來(lái)搞定,剩下的應用開(kāi)發(fā)由開(kāi)發(fā)者來(lái)搞定。這時(shí)候開(kāi)發(fā)者就得變成全棧工程師,一個(gè)人能干很多事情,既能干前端,又能干后端,運維工作也能干,甚至一些需求分解、架構也要由開(kāi)發(fā)人員來(lái)做。這樣對開(kāi)發(fā)人員的要求就會(huì )越來(lái)越高。從目前趨勢看,大廠(chǎng)對開(kāi)發(fā)人員的要求越來(lái)越高,不會(huì )像以前那樣做非常細的分工。
面對這種挑戰,王啟軍建議,像應屆畢業(yè)生剛開(kāi)始進(jìn)入開(kāi)發(fā),在來(lái)之前就要做非常充足的準備。不像以前一個(gè)應屆畢業(yè)生到了開(kāi)發(fā)崗再學(xué)。本來(lái)這個(gè)行業(yè)要求就很高,發(fā)展速度很快,更多優(yōu)秀的人投入進(jìn)來(lái)。很多開(kāi)發(fā)人員入行就已經(jīng)具備了很高的能力,各方面的技能已經(jīng)很高了。
以前公司內會(huì )有很多培訓,還有外部的培訓。現在開(kāi)發(fā)人員更多的靠自身成長(cháng),靠業(yè)務(wù)的壓力推動(dòng)成長(cháng)。比如用微服務(wù)架構,就得自己研究微服務(wù)架構,用到數據庫要研究數據庫。
王啟軍說(shuō),現在網(wǎng)上能獲取的知識挺多,如果自身有動(dòng)力想學(xué)習會(huì )非常容易。不管是書(shū),還是博客,還是公眾號,還有技術(shù)大會(huì )非常多,都是學(xué)習通道。如果有學(xué)習的想法,有驅動(dòng)力,知識來(lái)源非常廣。不一定非得有一個(gè)專(zhuān)門(mén)階段性的培訓,更多的還是靠自己驅動(dòng)去學(xué)習。
對于學(xué)習和提升,王啟軍認為,好奇心和學(xué)習能力最重要。不論之前懂了多少,會(huì )了多少,更重要得有一個(gè)持續學(xué)習的能力,解決問(wèn)題的能力。行業(yè)變化太快了,即便學(xué)到很多,也知道很多東西,過(guò)一年兩年很多東西就會(huì )落后,很多東西已經(jīng)變化。現在全棧工程師工作范圍很廣,涉及的點(diǎn)特別多,所以一定要有好奇心,去解決這些問(wèn)題,這樣才能發(fā)展得比較好。
不僅如此,全棧工程師需要考慮問(wèn)題更全面,關(guān)注更寬的領(lǐng)域,而不是限制在眼前工作。原來(lái)架構師跟開(kāi)發(fā)工程師是分開(kāi)的,現在又要做開(kāi)發(fā),又要做架構,還要做測試,這就要求工程師涉及更多的交叉領(lǐng)域,要學(xué)會(huì )更全面更系統的思考。而不僅僅是只考慮寫(xiě)寫(xiě)代碼。
王啟軍根據自身的經(jīng)驗最后總結說(shuō):“全棧工程師必須保持專(zhuān)注”,例如,生產(chǎn)環(huán)境遇到問(wèn)題,故障沒(méi)有定位出來(lái),就需要不斷地想,不斷地分析,去找這些問(wèn)題。在這個(gè)過(guò)程中時(shí)間會(huì )過(guò)得非常快。這樣就不會(huì )感受太多的壓力,不會(huì )受外部干擾。專(zhuān)注于問(wèn)題解決,不會(huì )感覺(jué)到特別累特別失望。
但是,如果是一種被動(dòng)的狀態(tài),不管學(xué)習還是工作,一會(huì )做點(diǎn)這個(gè),一會(huì )做點(diǎn)那個(gè),時(shí)間沒(méi)有分配好,這樣就會(huì )感覺(jué)特別累。當一個(gè)工程師做的都是重要但是又不是特別緊急的事,這個(gè)時(shí)候效率會(huì )很高,績(jì)效也會(huì )很好,也就成了一個(gè)優(yōu)秀的全棧工程師。
后記
王啟軍的公眾號,最新更新時(shí)間是2020年1月10日。在采訪(fǎng)中,他告訴我,未來(lái)還會(huì )繼續把最近做IoT,還有PaaS相關(guān)的想法和經(jīng)驗,總結記錄下來(lái),時(shí)機成熟時(shí)可能也會(huì )寫(xiě)寫(xiě)書(shū)。
而對即將于2020年2月11日-12日在深圳舉辦華為開(kāi)發(fā)者大會(huì )2020(Cloud),王啟軍也希望有更多的開(kāi)發(fā)人員來(lái)親自參加和體驗。
他強調說(shuō):“華為云這兩年發(fā)展非常快,并且做的很多東西跟開(kāi)發(fā)者更貼近,想的會(huì )比較多,比較靈活,思維會(huì )比較活躍,會(huì )解釋為什么會(huì )做成這樣,會(huì )有更多背后的思考。我相信,大家來(lái)參加這樣一個(gè)大會(huì )收獲會(huì )比較多,會(huì )遇到跟你的想法比較接近的人,然后大家一起碰撞,由此催生出更有創(chuàng )意的火花。”
華為開(kāi)發(fā)者大會(huì )2020(Cloud)將于2020年2月11日-12日在深圳會(huì )展中心舉辦,這是華為面向ICT(信息與通信)領(lǐng)域全球開(kāi)發(fā)者的年度頂級旗艦活動(dòng)。大會(huì )旨在搭建一個(gè)全球性的交流和實(shí)踐平臺,開(kāi)放華為30年積累的ICT技術(shù)和能力,以“鯤鵬+昇騰”硬核雙引擎,為開(kāi)發(fā)者提供澎湃動(dòng)力,改變世界,變不可能為可能。
本次大會(huì )設有兩場(chǎng)主題演講、數十個(gè)Codelab、上百場(chǎng)技術(shù)論壇、三萬(wàn)平米展區、熱門(mén)開(kāi)源項目、創(chuàng )新大賽、初創(chuàng )公司與投資者對接會(huì )、黑客松、音樂(lè )節等活動(dòng),面向企業(yè)開(kāi)發(fā)者、初創(chuàng )公司、學(xué)生等群體提供個(gè)性化內容體驗。同時(shí)將有機會(huì )與技術(shù)達人、掃地僧、天才少年零距離交流。我們期待與你在一起,夢(mèng)飛揚!