透過訪談和約稿的方式,請維運領域老砲輸出深刻洞見,共同碰撞,以期形成一些先進的共識,推動行業更好得前進。
這一期我們邀請到的是又拍雲科技的邵海楊,一個25年的Linux老炮,邵總醉心技術,一步一步往上走,是普通運維人員的典型成長路徑,希望今天的採訪可以對你有那麼一些啟發。
這裡是接地氣、有高度的《運維百家講壇》第 4 期,開講!
您好邵總,請您先做個自我介紹吧,聊聊您的履歷和現狀,讓大家更好的認識您,了解您的背景也有助於讀者理解後面的訪談內容
我是來自又拍雲科技的邵海楊,從1998年開始使用Linux至今快25年了,資深(老鳥)Linux系統維運/架構師,DevOps八榮八恥倡導者,業餘撰稿人;精通(心虛)系統優化及網路服務管理,Linux系統定制,CDN加速和安全防禦; 擅長互聯網高性能網絡及架構設計、虛擬化KVM及OpenStack雲端平台, K8S容器雲端和Ceph分散式儲存等新技術;喜歡交流分享,活躍於社區,一直積極投身於開源活動的組織和傳播。
維運領域,每家公司都會制定自己的維運準則或操作規範,能否分享貴司的經驗,給我們一些參考?
又拍雲是一家提供雲端存儲,雲端分發,雲端處理服務的公司,也是國內首創可程式CDN 服務的專業雲端服務供應商,特點就是7x24全年不間斷服務,所以雲端運維也有一些律條或原則,例如:
先保障穩定,然後再優化
過度設計或過早優化很可能會帶來更多的故障停機時間,先集中精力提高系統的可擴展性和高可用性。堅持 “先完成,再完善,後完美”,專案也是“先能用,再好用,後用好”的實施策略。
提供可靠的測試依據和時間驗證
引入新技術到架構之前,要確保新技術的穩定性和足夠時間久的考驗,更要有運維工程化中所發展出來的工具鏈的完整。一旦線上返工或變更造成的措手不及可能已經是故障的導火線。
使用可控的自動化手段提升效率
自動部署、自動編排、自動巡檢、自動升級等自動化手段越來越多應用於雲端維。這是適應雲端運算時代的趨勢,但能力越強,責任越大,要謹慎自動化的雪崩和驚群效應,做好灰階/藍綠部署和各種測試。
保持簡單,監控一切
保持簡單,別把事搞的太複雜。除了常見的異常問題警報外,面向業務指標,市場指標和銷售數據,成本等都可以用來做趨勢分析資訊。定期的輪詢查看各個趨勢資料的峰值峰谷有助於見微知著。
預算導向的維運
維運團隊通常是最大的花費者,因為預算不足,沒有錢的維運是很難兼顧到日益增長的公司業務規模,除非公司業務已經停滯或不再有爆炸性的成長,面對這樣的挑戰,維運要學會降本增益,開源節流,利用新技術實現能源效率比的提升。
面向場景的智能運維
各種各樣的負載場景,從高並發處理到視訊轉碼,從高效能並行計算到海量的網絡請求。這些不同的負載場景,對網路頻寬,各種處理和IO的要求也各不相同。智慧運維就是需要深入理解業務,合理配置資源和架構來滿足不同業務場景的需求。
持續整合和發布系統
持續發布包括灰階發布、測試發布、捲動發布、回滾發布等多種場景,並確保每種場景都應該是可以可控的。
確保任何人都可以被替換
鐵打的營盤流水的兵,人挪活是常態,做好員工的共享文檔管理和知識傳遞和分享,理論上所有人都可以被替換,任何人也不應該成為公司的天花板。
雖然說成長是自己的事情,但如果有合適的場域、合適的專案機會、合適的團隊、合適的機制,會讓工程師的成長更快,團隊更有戰鬥力,您能否有系統的談一下是如何促成維運同學的成長的?
公司一直是積極鼓勵員工的技能自我提升和促進成長:
- 每月開放日:公司內技術委員會會定期舉辦講座,分享前沿研究中的一些收穫,要求有主題,有重點,有應用場景,最好有實例。
- 每週分享會:鼓勵所有開發者定期分享新的技術,談論他們面對的問題,或任何別的他們正思考的東西,分享的內容會形成文件和影片存檔,並根據評分給予獎金和積分激勵。
- 公司懸賞項目:無論是公司還是員工本身都可以發起項目,技術委員會評審通過後,自行組隊完成,根據產出文檔,數據對比,技術分享後獲取相應的項目獎金。申請專利還有相應的專利獎金。
- 培養個人影響力:鼓勵員工透過發表文章或演講的形式,走出去做工程經驗分享、工作心得的梳理,提高個人的影響力,並根據受眾的回饋給予稿費和講師費激勵。
- 訂閱報刊,雜誌等紙本書,了解最新動態。以部門為單位,配置一定的購書津貼。
又拍雲維運團隊內的培養包括:
- #「天花板為托板」:把自己放在一個培養新人的管理角色,不讓自己成公司瓶頸和員工的天花板,鼓勵新人們去嚐新和處理故障,增加自身的技能和實戰經驗;信任,互助,激勵,他們會持續不斷創造驚喜。
- 製作「自動化工具」:利用自己的經驗抽象業務成程序模型,製作或培訓自動化腳本的編寫,提高團隊的工作效率,讓員工節省精力和時間去學習其它新知識;
- 承擔「高精專」專案:事先準備最新知識的研究和可行性分析,整理成文件作公開培訓,再交給團隊去深入研究和實施,轉化成生產力,累積一線經驗再回饋完善文檔,良性循環;
- 積極提倡「知識分享」:各種案例和「坑」都會整理成wiki文檔,透過文檔共享,定期分享講座,鼓勵員工撰寫高質量的,可讀性很強的文檔,開口培訓,增加感染力和自信心;
- 鼓勵「參與開源交流」:公司鼓勵員工走出去參與技術交流大會,閉門造車耗時耗力,不如專業的人點撥。也會有購書經費,團建活動經費,茶歇文化;
#維運工程師其中一個典型的職業路徑是做管理者,但管理者和資深運維要解決的問題截然不同,對於那些剛步入管理職的資深運維,是否可以分享一些您的經驗?
對於剛步入管理崗的維運來說,我的建議是及時梳理遺留的技術債和人才技能的盤點和培養,先打好基礎,後面才能有更大的空間進步,具體可以參考我的《DevOps的八榮八恥》的分享。
- 一、 以可配置為榮,以硬編碼為恥
- 二、 以互備為榮,以單點為恥
- 三、 以隨時重啟為榮,以不能遷移為恥
- 四、 以整體交付為榮,以部分交付為恥
- 五、 以無狀態為榮,以有狀態為恥
- 六、以標準化為榮,以特殊化為恥
- 七、以自動化工具為榮,以手動和人肉為恥
- 八、以無人值守為榮,以人工介入為恥
人才上技能樹的盤點,主要是配合人事做好人才九宮格的劃分(如果是開發或維,把左側的績效換成潛力,績效針對銷售而言),考查的是管理者對員工的全方面的辨識能力,知人善用。
再結合公司的OKR目標管理來激勵員工,它的優點在於聚集目標的同時,還能:
- 激勵個人自驅力,鼓勵員工創新和反思;
- 考查的是相對結果,鼓勵有難度的挑戰和突破;
- 考核的協同配合能力,鼓勵員工去全方位的協調推進;
Kubernetes火了好一段時間了,很多公司也在大規模應用了,但顯然,每個技術都不是銀彈,無法解決所有場景的問題,這幾年觀察下來,您覺得哪些公司不適合上Kubernetes?能否給一個這類公司的畫像,並說明理由?
雖然Kubernetes代表著目前為止的devops的最佳工程應用實踐(真香),但也不是所有場合都能應用,如又拍雲的CDN邊緣伺服器,資料中心的日誌分析平台,Ceph分散式儲存就以實體機為主。所以,我建議找一些合適的場景先試用起來,如:
- 機器資源錯峰空閒浪費嚴重的;
- CPU,磁碟和網路IO都不密集的;
- 不需要持久化儲存的或搶佔資源的;
- 軟體架構已經做了微服務改造的;
- 業務處理程序有週期性、可彈性擴容的;
維運與研發是最親密的夥伴,貴司是如何做工作邊界劃分的?另外關於如何讓這兩個角色保持親密合作,是否可以分享一些經驗?
維運工程師= 衝鋒陷陣的將軍
軟體工程師= 坐陣帳中的軍師
理論上,優秀的軟體工程師是可以把部分(甚至全部)維運工程師的工作做掉,比如說業務軟體效能的監控,如果程式設計師在程式中插入很多的鉤子或探針,就可以統計出資料來,不需要維運勞心勞力的監控;比如說程式設計師在設計程式的時候,考慮到了分庫分錶,考慮到了大並發和分散式的設計,那運維就可以水平擴展機器就行;如果軟體沒有那麼多bug ,還有很多如果......但是,現實是殘酷的,這種高水平的程式設計師太少了,尤其在中國,大家都忙於實現業務功能,連個文檔甚至註釋都不願意寫,更別提能夠考慮這麼周全了;同理,運維接觸的很多是開源很優秀很成熟的軟體,從中是可以藉鑑知曉優秀軟體是怎麼設計的,比如優秀的程序,日誌資訊會非常詳盡,我們可以透過標準的syslog或日誌去監控它,所以,資深的運維會:
- 積極參與事前的規劃,配合開發做演練,自動化部署,協助架構改進
- 合理提需求,要資源,最好是有預算,做到防患於未燃
- 線上監控,故障復盤,回饋給整個團隊,倒逼上下協調做改進
#當然,要達到上述能力的維運管理,肯定需要潛心研究,承上啟下,協調團隊,任勞任怨的修行多年,到那個時候,運維就不再是對事情的結果負責,而是轉變角色,主導和協調整個過程。當然,這裡指的能力不僅是技能,還包括對業務的理解能力,站在公司管理階層面對整個專案和資源的分配和掌握。因此,維運工程師其實是現實中的軟體工程師的互補,因為大家的能力重點不同,所以大家更要團結一體,要能夠打勝仗,離開誰都是不行的,這是一個共同修煉進步的過程。
最後,我的個人觀點:架構師它可能不是一個人的角色,而是一個團隊的統稱,它可以:
- 不必衝鋒陷陣,就可以縱觀全局,運籌帷幄,調度所有的資源(維運架構師的功能)
- 可以帶領和團結團隊,高屋築瓴,因時制宜的實現解決方案(軟體架構師的功能)
- 可以掌握公司業務方向和深度,洽談合作,控製成本(業務架構師的功能)
#維運需要和其他多個部門溝通協作,鑑於各個團隊目標關注點未必一致,合作起來可能未必有那麼順暢,針對這個問題您是用什麼招來讓這個過程更加順暢的?
其實溝通不順暢的原因大部分在於對後果的不可預見性,你說冗餘他說預算,你說架構他說工期,各有立場又各有苦衷,但就是沒人為結果負責。我在工作中發現,當故障發生時,各部門的配合是空前團結,戰鬥力也是最強的,所以,溝通協作的關鍵在於:既要團隊協作,也要責任分明
- 事前部門溝通時,確定好專案預期,成本,影響要素,故障後果及責任方;
- 事後故障複盤時,根據故障原因,有理有據的「甩鍋”,同時要引以為戒,亡羊補牢;
比如說提供在線10W並發的能力,需要冗餘頻寬冗餘伺服器數量x2,因為預算不足減半所導致的後果及責任人;再例如軟體設計不好,透過效能監控,發現指標異常的後果及責任人;當然,警報處理不及時,人為操作故障也會算到運維亦無可厚非;故障文化就是要關注問題和關注事情本身,對事不對人。大家都在故障中成長,在複盤變強。
您覺得維運工作最重要的幾個目標是什麼?您是怎麼落地這些目標的?
運維自動化;
監控常態化;
日誌視覺化!
這個篇幅太多了,不展開講,可以參考《雲端運維的啟示與架構設計》
工具選型這塊,到底是自研,還是使用開源,還是使用商業產品,是如何抉擇的?
又拍雲通常不會重複造輪子,但一定會先用好輪子,或是把輪子改造得更加稱手,選擇自研往往具備了一定的開發能力,再加上某些必要原因,如:
- 找不到符合要求的開源軟體,如我們自研的雲端處理軟體…
- 開源軟體有bug或issue,社群短期內無法推進,但業務又急需,只能透過自研解決,如ats的記憶體外洩問題…
- 開源軟體的功能特性跟公司的業務不相符合,不得不改造軟體,如nginx的防盜鏈模組,需要與客戶對接定制…
- 開源軟體的設計目標過於高大上,通用性好但很臃腫,如果我們只要某個小功能點,就不需要牛刀了,如效能探針的埋點…
- 有資料保護需求,或是有隱私的場合…
越來越多的公司正在遷往公有雲,在雲端原生架構下,SRE團隊的核心職能是否有些改變?該如何凸顯團隊的價值呢?
公有雲做為IaaS基座,容器雲作為CaaS中間層,雲原生做為SaaS應用層,整個雲生態日新月異,SRE團隊的核心職能會更重視頂層系統性的容量規劃,指標監控,高可用性和分散式的彈性設計,所以跨平台跨部門的職能互補、團隊協作、持續精進、勇於承擔包括:
- #積極參與事前的規劃,配合開發做演練,協助架構改進;
- 合理提可用性需求,冗餘資源,最好是有預算,做到防患於未燃;
- 線上監控,故障分析,回饋給整個團隊,倒逼上下協調做改進;
團隊的價值就在於是否總是能夠接受新事物,新的挑戰,各施所長,不做井底之蛙,也不是溫水煮青蛙,在創新或顛覆的時候,也能保持不被時代脫鉤。
對於維運工程師個體,SRE的轉型路徑是?應該注意些什麼?
技術領域
- 學習抽象業務模型,標準化元件,客製化腳本,自動化部署,提升整體效率;
- 學會收集日誌和日誌分析並視覺化,提升運維監控和預警報警的效率;
- #掌握和熟悉一門或若干語言,能夠幫助你成長,提升你的戰鬥力;
- 勤做筆記,溫故而知新,學思結合,要學會沉澱,舉一反三;
- 勇於面對新興技術的挑戰,打不過就學它;
非技術領域
- 學習能力,要知識面廣;
- 溝通方面,了解客戶的精確需求;
- 技術風險、人工、進度等成本,權衡取捨;
- 社區活動,積極分享,鍛鍊口才和交流能力;
- 提升自己的影響力,學會與人同行,可以交到更多的朋友;
面對當下快速發展的基礎技術,您對給剛入行和入行已久的維運人員,分別有什麼職涯規劃的建議嗎?
首先不是工作選擇人,而是人選擇工作,一個人若對某方面有了興趣,真正用心學習了近10000個小時,其實做什麼都是可以的。比如說我畢業那個時候,都是強調複合型人才,根本沒有運維這個職業,我們不光自己攢(DIY)機器,自學Linux操作系統,還學習編程,折騰網絡,自己動手寫論壇聊天室等程序;Linux帶給我們的是每天都有創新的,好玩的,優秀的開源軟體讓我們保持熱情去盡情的折騰和學習,當網路興起的機會來臨時,做個維運總監其實也是順理成章的事; 其實,除此之外,我還轉型做過售前,技術支持,跑過市場,經常做演講培訓,所以真正的高手是什麼不會學什麼,技多不壓身,做個懂業務、會開發的維運工程師。
您覺得維運人員最重要的素養是什麼?新入行的維運人員有哪些寄語?
我認為最重要的能力是表達溝通能力,但不排除維運本身所需的技術儲備、實踐動手能力、程式設計能力和學習能力。考慮到維運大部分還是一個成本支出的崗位,如何把深奧隱晦的性能及瓶頸指標,用直觀的圖表展示來獲取上層持續的投入是需要技巧的;然後面對你的同事,你的兄弟部門,也需要你的影響力去協調推進工作,如果能夠做到這些,說明你已經具備了領導的才能,這樣以後做什麼事都會站在更高的水平,用全局觀的格局去統籌規劃整個項目的目標,人員,工期和資源的合理分配和把握。
以上是又拍雲邵海楊:25年Linux老兵聊DevOps八榮八恥的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。