【轉載】騰訊運維10年,我斬獲了這5把“殺手鐗”
十年不苟且的運維之路
加入騰訊已十年的運維老兵,回顧這十年:
- 2004年:加入騰訊,做賀卡開發;
- 2005年:加入QQ空間開發團隊,負責留言版模組;
- 2006年~至今:公司組織架構調整,接觸運維工作。
- 紅米在QQ空間首發時,90 秒賣出 10 萬臺裝置,獲得1億點贊;
- 天津大爆炸事件,把天津 2 億多活躍使用者,從天津快速調到深圳以及上海;
- 春節紅包準備工作,2016年比2015年的紅包訪問量增長了10倍+,快速的擴充了 5000 臺裝置,最高訪問量達到 477 萬次/秒。
不要讓自己變成一個救火隊員
作為運維,最重要的是先保證自己做的系統可靠、不會輕易出錯,不要讓自己變成一個救火隊員。可靠之後,就要用更多時間去解決效率問題,讓工作變得更加高效,追求更高的目標。
對團隊工作幫助最大的是什麼?
資源管理:把寫出來的程式和程式碼,進行清晰劃分和分類,對每個資源採用不同形式進行搭建;
容錯方案:在維護海量服務、運維過程中出現故障時,確保不能影響專案服務,伺服器要做到及時處理;
統一架構 CMDBA:把一個業務模組上所有依賴資源全部登記進去;同時如果做快速決策和排程,還需要有效的監控。
DLP:內部定義的一個非常關鍵的監控,這個點發生後,可以知道哪裡出現故障;
入口監控:告知出現故障的根源在哪兒,容錯方案的 L5 是用來解決容錯、灰度,路由等。
1L5系統
世界上管理伺服器最多的系統
運營管理系統管理了上億伺服器,脈絡非常清晰,根本不會出現混亂。L5 系統(上圖)也類似於 DNS 系統,有一排能提供的服務模組,從而解決的單點問題。
L5 如何做容錯?
L5-主機/介面級的容錯原理
L5 有由 L5、DNS 和 L5、agent 兩部分構成。CGI 通過給模組提 ID,根據模組下裝置的成功率和延遲情況,通過 IP+PROT 給 CGI 一個反饋,訪問之後,通過成功率和延遲情況,把資料上報給了 L5agent,然後做統計資料。
當發現失敗率特別低的時踢掉。當發現成功率和失敗率有一定下降,會把訪問權重降低,從而達到容錯和負載均衡的作用。
可以註冊一個模組,加多臺裝置,形成容錯效果。如發現一臺機器失敗率很高,就把它踢掉。它成功率恢復過來,還可以再加回來。
新加一臺伺服器設計它的權重為 1,假如之前的是 100,可以逐漸上線。還可以給它一個得分,得分下降的時候,快速把它踢掉。L5 具有灰度、容錯、路由、負載均衡的能力。
L5 對運維團隊有哪些幫助?
減少了 80~90% 的日常故障;
不再需要頻繁的變更 ip+port(也是故障源);
同過名字便利的服務上下線;
通過權重灰度上線;
模組訪問關係可幫助定位根源故障;
介面的延遲和失敗率可用來監控;
集容錯、負載均衡、路由、灰度、監控能力於一身。
2統一框架和架構
團隊裡有上千號開發同事,每年會有大量畢業生加入,也會有社交同事。進來以後,都希望為平臺做更多的程式碼貢獻、展現自己的技術實力,亦或是提高自己。
那麼,問題來了。在開發過程中,如下圖,有管道、訊息佇列、資訊檔案鎖、記錄鎖、檔案影射記憶體、還有迭代伺服器 Select poll Io 等,這些是用各種各樣技術組合生產出來的程式碼,交給團隊維護,數以萬計不同性格的伺服器,要掌握得非常好,瞭解它的工作機制和原理,更好的維護它基本上是不可能的。
那怎麼辦呢?把網路通訊部分列成一個標準框架,提高它的通訊效率,統一維護。
統一框架
業務邏輯部分用 SO 動態庫方式編寫與框架分離部署,類似 Web 伺服器上的CGI。接入層用 QZHTTP,邏輯層是 SPP 和 SF 的框架。
作為社群類服務,雖然使用者的熱點並不是很集中,但資料量、訪問量還是很大。大量用 CKV 儲存,同時針對訪問量非常大的問題,如說使用者沒有開通空間,遊戲使用者,會員等標記,之後均做一個定位,形成一個高訪問量的模組即可。
如下圖,是一個架構體系:
接入層是 TGW,流量從它進、從它出;
中間層,利用 L5 進行排程;
儲存層,因為每一個儲存模組要分耗段,故加入 Access,從上到下把技術架構進行了統一規範,同時在組織上也通過接入邏輯運維層,進行標準化的維護。
統一框架對運維有什麼幫助?
網路框架和業務邏輯 SO 分離管理、運維人員學習成本大大降低、框架穩定性極大提高、可跨業務統一維護、運維效率提升最高可達 10 倍。
3資源打包管理
如上圖,資源打包管理是對開發出的程式包進行標準打包操作,一個程式開發出來有不同特徵,有需要加銀行引數,有需要依賴目錄,還有需要前面準備工作和後續善後工作。
把它全部放在一個類似於包裡面,裝進一個盒子裡。之後提供標準的操作介面,如安裝、解除安裝、啟動、停止操作等這些操作讓它們變成有關聯的。
資源打包管理對運維有什麼幫助?
部署規範統一,再也不擔心找不到、標準化了操作介面,極易學習掌握、支援前後置指令碼做準備和善、程式級運轉的所有資源的完整映象。
4
資源登記—CMDB 虛擬映象
資源登記到二級 CMDB 形成服務的虛擬映象,除了傳統基礎配置資訊,把一個模組依賴的資源,全部記錄進 2 級 CMDB,形成一個模組的虛擬映象。
CMDB+資源=虛擬映象
CMDB 虛擬映象對運維有什麼幫助?
一個模組運轉的所有資源的“完整映象”、記錄了模組運轉所依賴的所有資源、不再需要文件說明。
5
決策排程—自動化部署平臺
在團隊內部有織雲自動化部署平臺,從申請裝置獲取資源、釋出部署、檢測,進行測試,上線。在每個環節還有些細節步驟,如申請裝置的時遮蔽告警事件,如釋出時同步傳輸檔案、如釋出後檢測程式的包程式是否啟動,啟動之後進行業務測試。
自動部署流程 23 步
如下圖,是我們內部自動化部署的平臺。相當於把這個程式開發出來以後,依賴的資源全部打包放在盒子裡,把盒子裡的東西放資源倉庫中,有一些模組全部登記在 CMDB。
自動化運維體系
如果要部署一個模組 A 或進行擴容,可以人工觸發或自動系統觸發。
控制人工系統進行操作,把模組邊上三個資源,由資源倉儲部署在模組 1 上,通過 L5 系統進行一個註冊,這個模組就可自動上線。之後會把一個模組登記回來,對它進行自動化操作,每一個方塊是一個步驟,這個步驟執行過去之後是綠色的,執行失敗是紅色,沒有執行是灰色。
執行成功就可以看到,可以做自動化的擴容,可以做日常演習,還可以回收等工作。
全自動擴縮容
運維規範的推進歷程
如下圖,是運維規範的推進歷程。看起來是自然而然的過來。但實際上這個過程並沒有那麼容易。
作者:
【推薦閱讀】運維平臺之CMDB系統建設 - https://www.cnblogs.com/sanyuanempire/p/6169517.html趙建春,騰訊社交網路運營部助理總經理、技術運營通道會長、專家工程師。04年加入騰訊,先後從事過研發、運維、資料方面的建設和管理工作,在海量技術運營方面積累了豐富的實戰經驗。
相關文章
- DeepMind 把自己的“殺手鐗”開源了
- Build大會沒有了Windows,微軟祭出哪些AI殺手鐗?UIWindows微軟AI
- postTask:React的殺手鐗被瀏覽器原生實現了?React瀏覽器
- 分享12306秒票心得及殺手鐗
- 分享12306秒票殺手鐗原始碼原始碼
- 程式設計師面試中的5個殺手鐗問題程式設計師面試
- 六大殺手鐗趨勢科技雲安全2.0技術巡展
- 服務是企業級防毒軟體背後的殺手鐗防毒
- 騰訊安全斬獲三項資料安全大獎
- 網際網路創業的殺手鐗和十個神級案例創業
- 一天兩家醫療AI新銳獲千萬級融資!它們吸引風投公司的“殺手鐗”是?AI
- 運維從設計開始-轉載運維
- 【Android實習】20場面試斬獲大廠offer,我學會了什麼Android面試
- 我為什麼把think in java 讀了10遍(轉載)Java
- 我的運維故事運維
- 這是怎麼了啊,我怎麼就是掛載不上啊(轉)
- Hbase運維手冊運維
- redis運維手冊Redis運維
- 新來的運維這樣用HDFS,CIO都懵了···運維
- Android開發三年月薪12k,一年後斬獲騰訊T3,談談我的心路歷程!Android
- 回首五年運維,運維需要思考運維
- 我對運維的思考運維
- Go結構體標籤表示式v1.0釋出,引數校驗殺手鐗Go結構體
- 前端入行兩年--教會了我這些道理前端
- 前端入行兩年–教會了我這些道理前端
- 在IT運維管理方面的關注點(轉載)運維
- 做運維前 vs 做運維後,太形象了!運維
- 小米遊戲斬獲2020年“遊戲十強”優秀運營平臺獎遊戲
- Suse Linux10"殺手級"元件:AppArmor(轉)Linux元件APP
- 大資料老兵的“回憶殺”:我做開發者這十年大資料
- 騰訊主機安全(雲鏡)兵器庫:斬殺挖礦木馬的利劍-BinaryAI引擎AI
- 為新基建造“基建”:AI牽引的百度與它的四大殺手鐗AI
- 這款Windows 10 Surface手錶帥爆了Windows
- 寫文章一年了,我用到的工具都在這兒了!
- 閒聊我心中的運維運維
- 華為Mate 10 Pro斬獲2017中國手機產業創新大會天鵝獎產業
- 去騰訊面試了,我自信滿滿!面試
- 本科入行可能嗎?做到這3點,斬獲BAT offer不是夢BAT