救火運維逆襲攻略:云原生+ DevOps+ SRE+ ITIL
前言
本次分享將從以下幾個關鍵點展開論述:
時代:了解時代的趨勢和大方向,才能事半功倍。雷軍有個著名的理論——“飛豬理論”,即站在風口上,豬都能飛起來,這也表達了把握時代趨勢的重要性。
加速:在把握時代趨勢的基礎上,選擇關鍵技術要素,加速運維技術保障體系的建設。同時,需要考慮公司的現狀特點,避免脫離現狀構建“空中樓閣”。
技術:云原生時代的關鍵技術是我們深入探討的重點。然而,技術不是我們的目標,解決業務問題、業務痛點并帶來業務價值才是我們的目標。因此,我們應該開放連接,避免重復造輪子,借助云原生時代的IaaS、PaaS和SaaS能力,加速我們的能力成長。
趣丸科技成立于2014年,是一家集興趣社交及電子競技等業務于一體的創新型科技企業。公司積極布局多元化賽道,緊跟Z世代心智發展,最大化創造用戶價值。作為國內領先的興趣社交平臺,TT語音是我們的拳頭產品,累計注冊用戶已超1億,并成為LPL、KPL、PEL等六大頭部電競職業賽事官方合作伙伴。
以下內容是基于我們公司的現狀經驗,不一定全部適用于其他公司和場景,如果有其他問題,歡迎大家一起交流。
一、運維趨勢和挑戰
提到趨勢,有一個詞讓我印象深刻:VUCA。
VUCA這個詞最早是在90年代冷戰時期提出的,當時世界變得不確定和復雜。回顧我們過去三年的變化,我們也能深刻感受到VUCA的意義。
面對VUCA時代,需要找到應對措施。我們可以從兩個角度來看待這個問題:一是“黑天鵝”,指的是發生概率較小的事件;二是“灰犀牛”,指的是發生概率較大的事件。
針對黑天鵝(小概率事件),我們總結出一個詞:適應性。這個詞源于達爾文在《物種起源》中的觀點:能夠生存下來的物種并非最強大的,而是最能適應環境的。面對不確定性和小概率事件,我們需要建立適應能力。適應能力的本質是快速迭代和自我改變。盡管改變是帶有風險的,但我們需要基于對未來的最有可能假設,通過最小化版本進行驗證,不斷提升組織的適應性。
另外一個維度,灰犀牛(大概率事件),我們可以做一些長期的規劃,主要關注三件事情:全球化、多云化、降本。
- 全球化:國內存量競爭激烈,海外市場不管是基礎設施、用戶數量、增長空間,相對來說是藍海,此外出海業務在監管上,也相對比較寬松;
- 多云化:應對穩定性、業務特性,賦能商務議價的需要;
- 降本:增長乏力,難做到開源,可以更多地做好節流。
二、技術戰略選型
在技術戰略選型方面,我想簡單分享一下過去10年在運維領域中最重要的幾個技術理念之間的關系和意義。
1、技術理念
首先是ITIL(IT Infrastructure Library),它是過去IT服務管理(ITSM)的一種實踐方法,其目的是通過流程來管理和控制IT服務的質量,關鍵在于設計適當的流程以及明確定義參與人員的角色。然而,ITIL 在實施過程中也存在一些問題,比如流程繁瑣效率低,質量不一定能得到顯著提升,出了質量故障往往只是讓某些人背鍋。
接下來是云原生(Cloud-Native),它的目標是構建和運行可彈性擴展的應用服務,關鍵要素包括彈性、可擴展性和高可用性。在技術方面,容器化、微服務化、服務網格、不可變基礎設施和聲明式API是云原生的關鍵技術要素。再深入一層,有云原生十二要素(https://12factor.net/zh_cn/)。
然后是DevOps,其目標是實現頻繁且快速地交付軟件。它強調多個團隊共同合作,面向最終用戶交付價值,關鍵技術要素是工具化和自動化。
最后是SRE(Site Reliability Engineering),其中以Google的SRE為代表。SRE是一種運用軟件工程方法解決問題的方法,關注可用性、延遲、性能和容量等方面。對于SRE的軟件工程能力,維基百科上有詳細的解釋,簡單來說,就是要掌握編寫代碼來解決問題的能力。綜上所述,我認為作為一個SRE,需要圍繞著目標和手段,來理解和掌握這些技術理念,這樣才能成為一個合格的SRE。
2、技術架構
在技術架構方面,我從兩個視角來看:
首先是應用的視角。應用的架構核心是實現應用的彈性伸縮,這可以通過以下三個方面來實現:無狀態化、BaaS化(Backend as a Service)、強大的應用流量治理能力;
其次是基礎設施的視角。基礎架構的核心是實現資源的彈性,這可以通過以下兩個方面來實現:資源的統一交付和調度、多云互聯互通。
在構建技術架構時,有幾個必須具備的技術能力:
- DCI 網絡(Data Center Interconnect):實現多云環境下的互聯互通和高可用性;
- K8S(Kubernetes):實現應用交付和資源調度的標準化。Kubernetes是一種容器編排平臺,可幫助管理和部署容器化應用程序。
- Istiod:一種與編程語言無關的服務治理框架。它提供了服務發現、流量管理和負載均衡等功能,使得應用的服務治理更加便捷和靈活。
- 應用可觀測性:提升故障感知、定位和恢復能力。通過監控應用的關鍵指標和日志信息,可以及時發現故障并進行處理。
- 用戶體驗監控:改善用戶體驗。通過監控用戶的行為和反饋,可以了解用戶的需求和痛點,并及時做出相應的改進。
通過以上的技術能力構建,可以實現一個具備彈性、可擴展性和高可用性的技術架構,從而提升系統的性能和用戶體驗。
三、組織架構設計
在技術戰略的實施中,組織架構和行為是必不可少的保障措施。下圖是來自《高效能團隊模式》一書的組織架構設計圖,這張圖在過去的兩年里非常熱門。圖中的設計基于康威定律,進一步引申出認知負載理論,并推導出四種團隊和三種交互模式。
對于從事軟件工程的人來說,康威定律應該是一個熟悉的概念。它的核心觀點是組織架構決定系統的架構,反過來說,如果想要擁有特定的系統架構,就需要設計相應的組織架構。組織架構決定了團隊之間的交互模式,而跨團隊的溝通本身是有成本的,這個成本可以稱為認知負載。因此,在組織設計上,我們應該盡量降低溝通成本,減少團隊之間的認知負載。
舉個例子,在云原生時代,涉及到操作系統、虛擬化和容器化等技術的復雜性非常高。如果一個應用開發人員需要對每一層的技術細節都了如指掌,才能完成業務開發和軟件交付,那么他的認知負載將會非常大。為此,我們在實際中看到,在組織上進行了分層,例如操作系統層、虛擬化層和容器層(如Kubernetes),以屏蔽底層復雜概念,極大地降低了認知負載。
基于這個底層邏輯,這本書提出了四種團隊類型:業務流團隊、平臺型團隊、復雜子系統團隊和賦能型團隊。同時,還提出了三種交互模式:協作(一起做)、服務(黑盒模式)和促進(教練賦能)。
通過理解和掌握這些組織架構設計的原則和模式,我們可以成為一個更合格的團隊成員,并在實際工作中降低溝通成本,減少團隊間的認知負載,從而提高工作效率和團隊的協作能力。
四、行為價值觀引導
- SRE崗位職責:我們強調SRE的核心職責是穩定性保障,他們是穩定性的首席責任人。此外,我們也要求SRE在能力上包括平臺產品的建設;
- 團隊協作:實現目標需要多個團隊的協作。團隊協作的首要任務是建立信任關系,并在建立了信任的基礎上進行充分的溝通,以達成共同目標;
- 復盤文化:復盤的目的是為了更好地成長,而不是用于追責。我們要總結好的經驗,并將其應用到其他場景中。同時,我們也要總結教訓,以避免在其他項目中重復犯錯;
- 技術卓越:我們要創造條件,使團隊成員有機會追求技術卓越,并不斷提升個人能力;
- 開放連接:我們要站在巨人的肩膀上,與云廠商建立合作共贏的伙伴關系。通過這樣的合作,我們可以在多個方面為團隊提供支持和賦能。我們可以基于對未來的設計,共同打造一些產品能力。
最后,我想強調的是,文化不僅僅是掛在墻上的宣傳語,它通過對哪些人進行獎勵、提升和解雇來體現,真正的文化是通過這些行為來體現出來的。
五、具體實踐路徑
1、全球一張網:我們在過去兩年的實踐中,面臨了多個VPC之間的連接問題,配置靜態路由非常繁瑣且容易遺忘,導致部分網絡不通,引發故障。為了解決這個問題,我們提出了"全球一張網"的概念,即任意節點間實現內網互聯互通,并通過簡便的配置方式實現高可用的互聯網絡。
2、統一資源交付、統一資源調度和應用交付能力:這三個能力從效能的角度來看,包括質量、效率和成本。我們通過標準化、系統化、自動化和智能化的手段實現了這些能力。
- 統一資源交付:通過CMP系統統一用戶操作界面,避免交付動作不準確引起的問題,如定義自己的機型標準,用戶無需關心系統盤大小、操作系統內核以及磁盤類型和大小;
- 統一資源調度:將資源統一池化,以便實現標準化和簡化管理。通過離線和在線業務的分時復用,最大限度提升資源利用率;
- 統一應用交付:基于K8S的鏡像化交付成為云原生應用交付的標準,實現一次構建,隨處運行。結合應用資源畫像,自動設置資源配置(Limit和Request)、副本數和彈性伸縮策略。
3、可觀測能力:可觀測能力是當前熱門的方向,包括指標監控、追蹤和日志記錄。我們可以從用戶視角出發,關注穩定性、性能和產品易用性。在市場上有很多成熟的產品可供選擇,通過外部合作(購買)的方式快速具備可觀測能力。
4、故障復盤能力:復盤能力是組織成長的關鍵。對技術團隊而言,建立良性的復盤文化并非易事。以下是我們的兩個經驗,供參考:
- 對于違規操作導致的故障,要進行一定的懲罰;
- 不定義故障責任團隊或者人,但必須明確故障整改措施的團隊和人。很多時候我們在定義誰是故障責任人,扯皮的時間會多于真正干活解決問題的時間。
通過團隊的努力,我們期望成功時的樣子是:
- 隨時隨地擁有無限算力:能夠快速交付充足的計算資源,不受地域限制;
- 一次構建隨處運行:通過制品晉級,在不同環境和地區部署同一構建物;
- 持續改善用戶體驗:通過客戶端監控和數據分析,不斷優化用戶體驗;
- 面向未來持續成長:將故障問題當成改進機會,不斷提升團隊能力。
六、結語
基于具體的業務實踐場景,并結合VUCA時代的挑戰和機遇,趣丸科技形成了"云原生+DevOps+SRE+ITIL"技術理念,明確了全球一張網、統一資源交付/統一資源調度/應用交付能力、可觀測能力、故障復盤能力的具體實踐路徑,并結合OKR進行落地,構建出了一套云原生時代下的運維技術保障體系。
劉亞丹
趣丸科技 技術保障部負責人
- 負責公司基礎架構、SRE保障、FinOps財務管理及運維產品體系,深耕互聯?運維技術領域超15年,熟悉游戲、視頻和語音直播行業運維場景。對IDC、云計算、基礎架構、云原生應用架構、SRE運維保障、數據庫多活和容災、資源成本優化、運維產品規劃和落地,有深入理解和大量實踐,具有較為豐富的運維團隊管理經驗。