專訪 從程式設計師到架構師 交流和分享最能讓技術人進步

2021-07-25 08:59:48 字數 2668 閱讀 7118

(堯飄海:網易蜂巢首席架構師,負責容器雲計算平台建設。曾負責過網易部落格、遊戲、易信,開源專案pomelo研發工作,熱愛開源和技術交流。)

到2023年,雲計算發展已有十個年頭。

十年前,亞馬遜點燃了一場顛覆傳統軟體服務業的雲計算革命。而後的十年間,中外網際網路巨頭傾巢出動,大大小小的新興雲服務商合縱連橫,傳統it系、電信運營商系也迅速向雲計算市場轉型。等到2023年底網易蜂巢正式推出時,國內雲服務市場已是一副比肩繼踵、人頭攢動的景象。

面對競爭,網易蜂巢選擇了乙個新的起點,基於kubernetes和docker技術打造了容器雲,用不到一年的時間,憑藉其開發效率高、迭代快、持續整合等優勢,在雲服務紅海中殺出一條「血路」。

近日,開源中國有幸採訪了網易蜂巢的首席架構師堯飄海,聽他分享容器雲對整個雲服務現狀帶來的變化,以及從普通程式設計師到架構師的成長之路。

基於kubernetes + docker是「雲時代」對效率的極致追求

但事實上,傳統雲計算的開發和線上環境不一致,導致開發和運維之間的矛盾,並直接放慢了產品的迭代效率。在這樣的行業大背景下,容器雲服務於2023年興起,是以容器為資源分割和排程的基本單位,封裝整個軟體執行時環境,為開發者和系統管理員提供用於構建、發布和執行的分布式應用平台。

在被問及docker對整個雲環境的變化時,堯飄海認為,從傳統的私有雲,到公有雲、再到容器化的雲,容器對於雲計算的改變主要表現在效率的提公升上,可以說容器雲體現了「雲時代」對效率的極致追求。

docker出現之前,大多是靜態環境的配置管理, 而docker是乙個完整的軟體執行環境,打包了作業系統、庫、執行時環境、業務**,這使得容器作為乙個整體一旦構建完成後可隨處執行,這意味著執行環境也可以做到版本化,開發效率、迭代速度和擴充套件性得到了很大的提高。

當然,容器只能保證環境的一致性,跨雲部署是其基本的能力,隨著業務和架構的發展,更多的工作在於如何保證很好地協調大規模容器來滿足業務的架構需求,也就是容器的編排服務,這是真正考驗和體現應用彈性、devops能力的關鍵所在,也是提高生產效率的關鍵依賴路徑。而google基於自身生產經驗和社群實踐打造的kubernetes,針對容器編排服務做了很好的框架性設計,能夠與docker組成先進的容器雲平台,實現對極致效率的承諾。

雲端之戰的一匹黑馬

也許正是因為解決了傳統雲計算效率上存在的問題,以docker、kubernetes為代表的容器技術很快形成一股新的熱浪,並在iaas、paas、saas之外衍生出的新型雲服務型別caas(container as a service),席捲了整個雲計算行業。包括亞馬遜、紅帽、ibm和 vmware 在內的雲計算巨頭無不加入了容器的行列,也掀開了容器雲服務的序幕。

與之同時,國內也出現了大批容器雲服務商。作為網易云云計算基礎服務能力的對外輸出,網易蜂巢另闢蹊徑,設計了很多差異化的功能。以一匹「黑馬」的姿態,殺出重圍。

據堯飄海介紹,網易蜂巢提出了自助運維的概念,通過快速故障診斷和彈性伸縮等服務,來提高開發效率。

舉個例子來說, 在容器雲的開發環境下,開發人員可以通過編寫程式控制映象構建,開發、測試及執行都基於相同的docker容器映象,從而不再侷限於web應用類程式,也避免了環境不一致帶來的各種折騰,開發效率可以帶來極大的提高。

和亞馬遜、阿里雲這些雲服務巨頭一樣,網易蜂巢容器雲平台並非一開始就對外輸出,而是先通過了很長時間的內部考驗。

據堯飄海回憶,網易正式推出基於node.js架構的pomelo之前,2023年12月份的時候,就開始將一些容器技術運用在公司內部的乙個千萬級訊息推送的平台。而到2023年12月份的時候,網易95%以上的網際網路產品都已經執行在容器雲上。

堯飄海認為,網易是網易蜂巢的第乙個客戶。在內部兩年多的生產實踐中走過的彎路是一筆豐富的寶藏,「規避掉我們曾經踩過的那些坑,在試錯的過程後提供乙個好的產品」。

從程式設計師到架構師:交流和分享最能讓技術人進步

一路走來,從程式設計師到架構師,堯飄海感受著兩個方面的轉變:當程式設計師的時候,就是兩耳不聞窗外事地完成任務,成為架構師後,要開始關注產品對於使用者的價值;當程式設計師會因為寫出完美的**而產生滿足感,成為架構師,就會因為產品為使用者解決問題而帶來滿足感。

這個轉變過程中,讓他感受最深、幫助最大的就是交流和分享,無論是與客戶,還是和同行。這種交流和分享是最能讓技術人進步的。

在「分享」這件事情上,網易的技術團隊已明確為其工作的部分職責,內部還設定了三個階段:第一階段是每週的內部分享、團隊分享;第二個階段是公司層面,有些人會成為講師,在整個公司範圍為大家做分享;第三個是參加外部會議。他鼓勵團隊成員循序漸進的分享,從第一階段到第三階段。

堯飄海認為,「交流和分享對於技術人員的改變和提公升是很大的,它提供了一種『社交屬性』,技術人員將會直接面對使用者、友商或是類似開源中國這樣的平台。在我們自己的技術推廣出去的同時,得到多維度的資訊和感受,吸收一些好的想法和建議。對每乙個講師來說,對外分享的過程對於自身和團隊都會產生巨大的積極影響,或是思路更加清晰,或是信心更加充沛。同時和使用者交流過後,團隊的眼界也會得到提公升。」

開源是更「高階」的技術分享

開源的本質其實是分享,而且對於技術人而言,開源的益處更大。

堯飄海告訴我們,網易對於開源的支援,主要來自兩個層面:第一種就是開源網易自主創新的專案、解決方案,類似2023年pomelo這個開源專案,迄今為止都還有很多人在運用。

此外,因為網易本身很多的內容都是基於開源軟體去構建的,所以逐步的內部組建了開源小組,在github上和oschina上都有貢獻和維護,持續開源一些修改或是補丁。

「在開源過程中,我們幾乎拿出完全透明的技術原理和實現方案成果,在社群或者平台進行交流,總是能帶來新的想法和碰撞,非常有意思」 ,堯飄海總結道。

如何從程式設計師到架構師?

程式設計師是一種比較耗腦力 比較辛苦的職業。在中國,年齡比較大的程式設計師是很尷尬的,你去投簡歷,人家一看三十幾歲了,可能就把你往後排,看看有沒有那種小年輕 能夠加班的。程式設計師一定要規劃好自己的發展道路,到了某一天,你是繼續做開發,還是做技術管理,還是做產品,還是做架構師,或者說去送外賣,跑滴滴...

學習演算法 從程式設計師到架構師

include 意願 include 想象力 include 離散數學 include 思考 include 良知 include 意志 include 技巧 收穫 s 0 章節 n 1 章節號 收穫 p n 學習 while n 1 n 35 if 練習沒做 做練習 良知 思考 回顧總結 n 1 ...

從程式設計師到架構師過度 筆記

1.架構設計入門。2.領悟大系統架構設計。3.從需求到架構的全過程。4.結合工作,解決實際問題。關鍵思想 分而治之 和 迭代式設計 運用的方法 邏輯檢視 物理檢視 模組劃分的不同方法 功能模組 分層架構 用例驅動的模組劃分過程。設計方式 水平分層 垂直劃分功能模組 從用例到類 再到模組 想到哪切到哪...