您當前的位置是:  首頁 > 資訊 > 文章精選 >
 首頁 > 資訊 > 文章精選 >

華為IoT首席架構師王啟軍:云計算時代全棧工程師的養成

2020-01-20 14:21:27   作者:   來源:CTI論壇   評論:0  點擊:


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

專題

CTI論壇會員企業

巨额现金乘数APP下载
心水一点必出特打一肖 11选5走势图河北 江苏11选5任三预测 上海天天彩选四基本走势图 快3怎么玩中奖率高 26选5尾号走势图 法国队与乌拉圭比分预测 股票期权的平台 辉煌棋牌游戏手机版? 哈灵上海麻将亲友聚会 体育彩票排列5 nba比分007 篮球即时比分网手机版时 26日世界杯比分预测 36选7复式拆分 辽宁十一选五走势图一定