藍鯨是騰訊IEG十多年研運探索的經驗與成果,積累了很多人的智慧與付出。由于騰訊IEG的業(yè)務特殊性,藍鯨體系天生地展現出對異構業(yè)務的友好,避免了需要重復造輪子才能完成對多業(yè)務的支持。本次分享主要介紹藍鯨研運體系在騰訊內的發(fā)展、應用及未來的演進之路。
*注:以下內容整理自:騰訊藍鯨研運體系基礎PaaS負責人 陳睿 于 2022研運一體創(chuàng)新峰會的精彩分享——《藍鯨研運體系在騰訊內的應用實踐》。
01. 藍鯨研運體系發(fā)展歷程
藍鯨研運體系最早是在騰訊游戲內部孵化出來的,它的作用就是幫助整個騰訊游戲,能夠更好地進行運營維護等一系列的支撐工作。
藍鯨在騰訊內部的發(fā)展經歷了三個階段:
1)第一階段,CD領域建設,稱之為AutoOps
① 騰訊游戲的特點
②“煙囪”問題頻繁凸顯
③ 為解決早期“煙囪”問題,藍鯨內部自建PaaS體系
④ PaaS體系初步構建完成,內部實現運維統(tǒng)一
藍鯨在底下沉淀了很多原子能力,如版本管理、作業(yè)平臺、配置平臺等。中間通過一些網關或者服務總線之類的接口封裝,讓上層的場景能夠很方便地調用底下原子的能力。
這就是一個簡單的運維PaaS雛形,形成了藍鯨的整體架構圖。通過這種方式,在騰訊內統(tǒng)一了整個騰訊游戲的技術運營方案。
2)第二階段,基于數據化的驅動,向CO領域拓展
在這一時期,藍鯨經歷了兩個關鍵的時間點:2015年到2016年前后,數據化運維啟動,鋪墊了藍鯨整體擴充AIOps的領域能力。
為了能夠將整個PaaS的內容向CO部分擴展,藍鯨在整個PaaS基礎上增加了兩個平臺以及三部分的場景,分別是計算平臺、AIOps平臺。
場景層通過同樣的模式,同樣的PaaS結構,增加了業(yè)務指標視圖、自助發(fā)布系統(tǒng)、日志發(fā)布系統(tǒng)等。這樣就完成了在統(tǒng)一的PaaS結構下,將內容由CD向CO進行擴充。
3)第三階段,達到了AIOps能力
2018年,全面啟動了DevOps的能力建設,也為將來藍鯨走向研運一體化提供了基礎。
從CD層向CI層進行內容擴展時,在平臺這一層增加了很多CI類型的平臺,例如代碼管理、流水線、編譯構建的工具、測試工具、代碼掃描等等一系列。
CI方面的研發(fā)流程相關的一些原子能力,藍鯨在上層增加了整個業(yè)務DevOps的工具鏈,能幫助業(yè)務更好地去構建他們的平臺和業(yè)務系統(tǒng)。
藍鯨在騰訊內部一個孵化以及演變的全過程,整個藍鯨的從無到有,從有再到擴展CI CD CO三個領域。
02. 藍鯨研運體系在騰訊內的應用
藍鯨研運體系在騰訊內支撐了騰訊游戲所有業(yè)務,以及CI部分支撐了整個騰訊公司絕大部分業(yè)務的系統(tǒng)。應用概況呈現出承載業(yè)務數量多、覆蓋范圍面積廣、任務數據量龐大、涉及相關人員多等特點。
1)CI領域場景應用
① 典型實踐:藍盾平臺
藍盾是對所有藍鯨能力的封裝,在CI領域的具體體現,其核心服務大概有以下7部分能力:
② 流水線
可視化的持續(xù)集成流水線服務,貫穿代碼庫、版本倉庫、代碼檢查、質量紅線、編譯加速等等。
③ CodeCC
自動化檢查代碼缺陷的服務,涵蓋代碼缺陷、安全漏洞、代碼規(guī)范、復雜度、重復率等多種維度。
④ 質量紅線
通過設置質量標準,控制流水線的行為,使得最終交付必須符合質量標準的一種服務。
⑤ PreCI
是騰訊CI在IDE下提供的CI服務,為開發(fā)者提供云編譯、代碼分析、單元測試、測試、自動化部署等CI實踐。
⑥ 編譯加速
基于分布式編譯技術、緩存技術、容器技術實現的一套編譯加速解決方案。
⑦ Stream
以Pipeline as code為理念建設的CI服務。
⑧ 藍盾APP
手機上的CI管家,提供App商店、App版本測試、移動端流水線等 能力的移動端服務。
2)CD領域場景應用
① 典型實踐:全球化管控
立足于中國本土,覆蓋節(jié)點覆蓋北美、歐洲、東南亞、甚至非洲、南美等全球地區(qū),都有藍鯨的管控節(jié)點。
全球化管控的實現,依賴于藍鯨底層通道管控平臺,管控平臺處于整個藍鯨體系結構里面的最下層,是整個藍鯨體系的支撐通道,就像一個人的腿一樣。
完成對管控平臺全球化部署和操作能力的支持后,那么整個藍鯨上層的所有平臺,都能借助這個能力實現全球化。
全球化管控,使得整個藍鯨PaaS能力在CI、CD、CO領域的應用發(fā)揮到極致,所有的能力層級疊加,層級拓展,所有的能力都可以復用。
② 在CI領域,實現全球制品投遞
在國內編譯的游戲版本,能夠通過這套系統(tǒng),隨時發(fā)布到全球任何一個地點。
③ 在CD領域,實現全球資源管控
可以對全球任何一臺服務器,執(zhí)行任何一條命令;能夠從這臺服務器上取得任何想要的信息。
④ 在CO領域,實現全球數據采集分析
例如觀測某一臺服務器的監(jiān)控狀況,藍鯨監(jiān)控可以通過管控平臺,觸達到全球管控范圍內的任何一臺服務器。
3)CO領域場景應用
① CMP平臺
數據平臺、AIOps平臺、以及CO內的成本分析、根因分析等場景,是藍鯨在CO領域的典型應用,稱之為智能監(jiān)控。
下圖右邊的深藍色部分,是藍鯨的AIOps平臺能力抽象模型。有算法部分、數據部分,也有一些數據的Pipeline、清洗、規(guī)則等。在一些典型的領域可以與日志數據、基礎監(jiān)控數據進行結合,做一些清理和計算,通過它的理論模型做智能的分析,我們就可以讓監(jiān)控變得更加智能。這是藍鯨研運體系在騰訊內CO領域的一個非常典型的應用。
下圖是智能監(jiān)控的一個應用案例,通過調整檢測算法里面的參數,來達到在算法層面對告警靈敏度、精度等數據的優(yōu)化。
異常情況的檢測,可以結合智能監(jiān)控,通過算法,模型的學習和訓練,能夠快速抓住這些異常點,并且將異常點事件發(fā)送給用戶,或者告警,從而避免造成一些業(yè)務損失。
4)CD+CO領域的應用實踐
由于藍鯨PaaS結構的便利性,不同領域的技術能夠很方便的產生一些交叉和融合,從而促成一些新的技術。例如智能化應用編排調度、裝箱優(yōu)化。
① 典型應用:智能化編排調度
藍鯨容器平臺的架構,分為兩層:
② 服務層
里面包含了集群管理、業(yè)務管理、數據管理等模塊,它主要負責跟藍鯨整個體系的融匯打通。
③ Runtime層
它主要包括K8S的一些組件,包括K8S的運行時它的Kubelet,以及一些插件,例如CI插件、CNI插件、針對游戲的Game Operator、支撐游戲的組件、負載均衡、CA、GPA和驅逐等等。它的作用是當業(yè)務的資源使用受到瓶頸時,觸發(fā)一種規(guī)則,這種規(guī)則能夠自動的將空閑池里面一部分機器初始化之后納入到集群里面來,然后擴充業(yè)務的資源。
④ 典型應用:裝箱優(yōu)化
應用彈性伸縮的常規(guī)做法,往往是通過CPU、內存的水位分布來出發(fā)容量預測的規(guī)則,但實際上CPU和內存的水位分布不一定能夠真實地代表業(yè)務的真實需求,所以我們可以通過構建模型去將更多的業(yè)務指標納入到水位的管理中。這就是AIOps在CD領域的一個典型應用。
通過AIOps在整個容器平臺這個領域,藍鯨做了三部分事情:
對藍鯨的PaaS而言,我們認為它是一個有生命力的、不斷成長的生命體,所有歷史存在的東西都不是包袱而是積累。基礎能力可以在不同場景得到復用,不同領域的能力能夠方便的產生交流聯(lián)系,并孕育出新的能力。
03. 云原生時代藍鯨研運體系的自我演進
在云原生時代下,藍鯨研運體系為了能夠更好的支撐業(yè)務、保障業(yè)務的運營,不可避免的需要做一些持續(xù)的自我演進,主要有四個方向:
1)容器化部署
在云原生體系下容器已經變成了一種成本更低、更便捷的部署方式,所以在藍鯨軟件V7這個版本會推出藍鯨整個容器化部署的一套方案。
2)數據體系融合貫通
在云原生時代有容器、Workload、Service等等模型、元數據與傳統(tǒng)的元數據不再一樣,這些新的概念需要在藍鯨體系內進行數據的融匯貫通。例如,CMDB未來可能支持對云原生資產的納管、容器和傳統(tǒng)監(jiān)控實現統(tǒng)一、算力資源內部進行統(tǒng)一抽象和管理等。
3)云原生網關
基于APISIX來重新打造藍鯨的網關服務,并且讓它支持分布式網關的能力。用戶也可以在這個分布式網關上進行各種自定義的擴展,當然它支持社區(qū)的Lua擴展。
4)SaaS應用模型
定義一個藍鯨SaaS的應用標準,然后通過這個標準開發(fā)的SaaS,不用再去強依賴藍鯨原有的開發(fā)框架。整個SaaS應用標準,定義和流程也會更加云原生化,會更加復用藍鯨內部的一些云原生能力。
申請演示