蓝鲸研运体系在腾讯内的应用实践

news2025/8/12 23:43:21

蓝鲸是腾讯IEG十多年研运探索的经验与成果,积累了很多人的智慧与付出。由于腾讯IEG的业务特殊性,蓝鲸体系天生地展现出对异构业务的友好,避免了需要重复造轮子才能完成对多业务的支持。本次分享主要介绍蓝鲸研运体系在腾讯内的发展、应用及未来的演进之路。

*注:以下内容整理自:腾讯蓝鲸研运体系基础PaaS负责人 陈睿 于 2022研运一体创新峰会的精彩分享——《蓝鲸研运体系在腾讯内的应用实践》。

01. 蓝鲸研运体系发展历程

蓝鲸研运体系最早是在腾讯游戏内部孵化出来的,它的作用就是帮助整个腾讯游戏,能够更好地进行运营维护等一系列的支撑工作。

蓝鲸在腾讯内部的发展经历了三个阶段:

  • 第一阶段,是在CD领域的建设,称之为AutoOps;
  • 第二阶段,基于数据化的驱动向CO领域拓展;
  • 第三阶段,最终达到了AIOps能力。

1)第一阶段,CD领域建设,称之为AutoOps

① 腾讯游戏的特点

  • 种类非常多,大概有六七百款游戏在运营
  • 游戏的架构、开发语言都不相同
  • 游戏来源不同,有些是自研,有些是代理服务商开发

②“烟囱”问题频繁凸显

为支撑种类繁多的游戏,构建了各种各样的运营支撑系统,调用非常复杂、重复建设问题严重。

③ 为解决早期“烟囱”问题,蓝鲸内部自建PaaS体系

对这些烟囱系统内部的这些重复模块,进行打平、融合,在融合基础之上去构建上层的服务场景,由此形成了蓝鲸的工具文化,自建一个PaaS体系。

④ PaaS体系初步构建完成,内部实现运维统一

  • 首先,将所有的基础能力进行抽象,构建一个公共的服务层。
  • 其次,在服务层之上通过更低成本的方式,扩充使用场景,立足于自动化来引导工具文化。
  • 最后,向其他领域进行拓展,形成服务化分离的早期蓝鲸版本。

蓝鲸在底下沉淀了很多原子能力,如版本管理、作业平台、配置平台等。中间通过一些网关或者服务总线之类的接口封装,让上层的场景能够很方便地调用底下原子的能力。

这就是一个简单的运维PaaS雏形,形成了蓝鲸的整体架构图。通过这种方式,在腾讯内统一了整个腾讯游戏的技术运营方案。

2)第二阶段,基于数据化的驱动,向CO领域拓展

在这一时期,蓝鲸经历了两个关键的时间点:2015年到2016年前后,数据化运维启动,铺垫了蓝鲸整体扩充AIOps的领域能力。

为了能够将整个PaaS的内容向CO部分扩展,蓝鲸在整个PaaS基础上增加了两个平台以及三部分的场景,分别是计算平台、AIOps平台。

场景层通过同样的模式,同样的PaaS结构,增加了业务指标视图、自助发布系统、日志发布系统等。这样就完成了在统一的PaaS结构下,将内容由CD向CO进行扩充。

3)第三阶段,达到了AIOps能力

2018年,全面启动了DevOps的能力建设,也为将来蓝鲸走向研运一体化提供了基础。

从CD层向CI层进行内容扩展时,在平台这一层增加了很多CI类型的平台,例如代码管理、流水线、编译构建的工具、测试工具、代码扫描等等一系列。

CI方面的研发流程相关的一些原子能力,蓝鲸在上层增加了整个业务DevOps的工具链,能帮助业务更好地去构建他们的平台和业务系统。

蓝鲸在腾讯内部一个孵化以及演变的全过程,整个蓝鲸的从无到有,从有再到扩展CI CD CO三个领域。

  • 不变的是蓝鲸PaaS的框架结构和基础组件;
  • 变化的是蓝鲸PaaS里增加的内容和场景。

02. 蓝鲸研运体系在腾讯内的应用

蓝鲸研运体系在腾讯内支撑了腾讯游戏所有业务,以及CI部分支撑了整个腾讯公司绝大部分业务的系统。应用概况呈现出承载业务数量多、覆盖范围面积广、任务数据量庞大、涉及相关人员多等特点。

1)CI领域场景应用

① 典型实践:蓝盾平台

蓝盾是对所有蓝鲸能力的封装,在CI领域的具体体现,其核心服务大概有以下7部分能力:

② 流水线

可视化的持续集成流水线服务,贯穿代码库、版本仓库、代码检查、质量红线、编译加速等等。

③ CodeCC

自动化检查代码缺陷的服务,涵盖代码缺陷、安全漏洞、代码规范、复杂度、重复率等多种维度。

④ 质量红线

通过设置质量标准,控制流水线的行为,使得最终交付必须符合质量标准的一种服务。

⑤ PreCI

是腾讯CI在IDE下提供的CI服务,为开发者提供云编译、代码分析、单元测试、测试、自动化部署等CI实践。

⑥ 编译加速

基于分布式编译技术、缓存技术、容器技术实现的一套编译加速解决方案。

⑦ Stream

以Pipeline as code为理念建设的CI服务。

⑧ 蓝盾APP

手机上的CI管家,提供App商店、App版本测试、移动端流水线等 能力的移动端服务。

2)CD领域场景应用

① 典型实践:全球化管控

立足于中国本土,覆盖节点覆盖北美、欧洲、东南亚、甚至非洲、南美等全球地区,都有蓝鲸的管控节点。

全球化管控的实现,依赖于蓝鲸底层通道管控平台,管控平台处于整个蓝鲸体系结构里面的最下层,是整个蓝鲸体系的支撑通道,就像一个人的腿一样。

完成对管控平台全球化部署和操作能力的支持后,那么整个蓝鲸上层的所有平台,都能借助这个能力实现全球化。

全球化管控,使得整个蓝鲸PaaS能力在CI、CD、CO领域的应用发挥到极致,所有的能力层级叠加,层级拓展,所有的能力都可以复用。

② 在CI领域,实现全球制品投递

在国内编译的游戏版本,能够通过这套系统,随时发布到全球任何一个地点。

③ 在CD领域,实现全球资源管控

可以对全球任何一台服务器,执行任何一条命令;能够从这台服务器上取得任何想要的信息。

④ 在CO领域,实现全球数据采集分析

例如观测某一台服务器的监控状况,蓝鲸监控可以通过管控平台,触达到全球管控范围内的任何一台服务器。

3)CO领域场景应用

① CMP平台

数据平台、AIOps平台、以及CO内的成本分析、根因分析等场景,是蓝鲸在CO领域的典型应用,称之为智能监控。

下图右边的深蓝色部分,是蓝鲸的AIOps平台能力抽象模型。有算法部分、数据部分,也有一些数据的Pipeline、清洗、规则等。在一些典型的领域可以与日志数据、基础监控数据进行结合,做一些清理和计算,通过它的理论模型做智能的分析,我们就可以让监控变得更加智能。这是蓝鲸研运体系在腾讯内CO领域的一个非常典型的应用。

下图是智能监控的一个应用案例,通过调整检测算法里面的参数,来达到在算法层面对告警灵敏度、精度等数据的优化。

异常情况的检测,可以结合智能监控,通过算法,模型的学习和训练,能够快速抓住这些异常点,并且将异常点事件发送给用户,或者告警,从而避免造成一些业务损失。

4)CD+CO领域的应用实践

由于蓝鲸PaaS结构的便利性,不同领域的技术能够很方便的产生一些交叉和融合,从而促成一些新的技术。例如智能化应用编排调度、装箱优化。

① 典型应用:智能化编排调度

蓝鲸容器平台的架构,分为两层:

② 服务层

里面包含了集群管理、业务管理、数据管理等模块,它主要负责跟蓝鲸整个体系的融汇打通。

③ Runtime层

它主要包括K8S的一些组件,包括K8S的运行时它的Kubelet,以及一些插件,例如CI插件、CNI插件、针对游戏的Game Operator、支撑游戏的组件、负载均衡、CA、GPA和驱逐等等。它的作用是当业务的资源使用受到瓶颈时,触发一种规则,这种规则能够自动的将空闲池里面一部分机器初始化之后纳入到集群里面来,然后扩充业务的资源。

④ 典型应用:装箱优化

应用弹性伸缩的常规做法,往往是通过CPU、内存的水位分布来出发容量预测的规则,但实际上CPU和内存的水位分布不一定能够真实地代表业务的真实需求,所以我们可以通过构建模型去将更多的业务指标纳入到水位的管理中。这就是AIOps在CD领域的一个典型应用。

通过AIOps在整个容器平台这个领域,蓝鲸做了三部分事情:

  • 装箱优化:通过训练模型来快速决策容器最优分布方案
  • 配额推荐预测:CPU、mem等资源配额的最合理推荐
  • 容量预测:根据历史数据预测容量未来的变化,并驱动调度系统提前扩缩容

对蓝鲸的PaaS而言,我们认为它是一个有生命力的、不断成长的生命体,所有历史存在的东西都不是包袱而是积累。基础能力可以在不同场景得到复用,不同领域的能力能够方便的产生交流联系,并孕育出新的能力。

03. 云原生时代蓝鲸研运体系的自我演进

在云原生时代下,蓝鲸研运体系为了能够更好的支撑业务、保障业务的运营,不可避免的需要做一些持续的自我演进,主要有四个方向:

1)容器化部署

在云原生体系下容器已经变成了一种成本更低、更便捷的部署方式,所以在蓝鲸软件V7这个版本会推出蓝鲸整个容器化部署的一套方案。

2)数据体系融合贯通

在云原生时代有容器、Workload、Service等等模型、元数据与传统的元数据不再一样,这些新的概念需要在蓝鲸体系内进行数据的融汇贯通。例如,CMDB未来可能支持对云原生资产的纳管、容器和传统监控实现统一、算力资源内部进行统一抽象和管理等。

3)云原生网关

基于APISIX来重新打造蓝鲸的网关服务,并且让它支持分布式网关的能力。用户也可以在这个分布式网关上进行各种自定义的扩展,当然它支持社区的Lua扩展。

4)SaaS应用模型

定义一个蓝鲸SaaS的应用标准,然后通过这个标准开发的SaaS,不用再去强依赖蓝鲸原有的开发框架。整个SaaS应用标准,定义和流程也会更加云原生化,会更加复用蓝鲸内部的一些云原生能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/33383.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux常用命令

目录一.帮助命令1.man获取帮助信息2.help获取shell内置命令的帮助信息3.怎么判断命令的类型4.使用man查看内置命令5.常用快捷键二.文件目录类命令1.pwd 显示当前工作目录的绝对路径2.cd 切换路径3.ls 列出目录的内容4.mkdir 创建一个新的目录(文件夹)5.rmdir 删除目录(文件夹)6…

linux64/ubuntu20.04安装NVIDIA驱动详细过程

每次安装Nvidia驱动的时候都要查询,各种各样的教程可能也不大适合自己,故记录一下安装过程; 本人所使用的系统为ubuntu20.04,64bit; 1、查看是否存在nvidia的显卡信息 命令:lspci | grep NVIDIA 2、根据显…

奥迪Q3电瓶损坏问题解决思路

背景 最近自己的小Q3坏了,具体场景就是无钥匙进入感应不生效,所有钥匙按键失灵,通过机械钥匙可以开启门锁但是汽车完全无法启动,方向盘锁死,灯光没有反应。初步推断电瓶损坏,或者漏电导致完全亏电。 怎么判…

数理统计笔记6:假设检验

引言 数理统计笔记的第6篇先介绍了假设检验,给出了各种常用的假设检验的方法,最后介绍了用置信区间和p值来进行假设检验的方法。 引言假设检验描述什么是假设什么是假设检验假设检验的基本思想假设检验的步骤假设检验的原理假设检验的两类错误双侧检验和…

【微电网优化】粒子群优化算法的微电网调度(光伏、储能、电动车、电网交互)【含Matlab源码 2190期】

⛄一、粒子群算法求解电联供型微电网经济运行优化简介 0 引言 热电联供 (combined heat and power, CHP) 系统建立在能源梯级利用的概念基础上, 统一解决了电能和热能的供应问题, 是一种经济节能、环境友好的用能方式, 具有良好的社会和经济效益, 在国内外引起广泛关注。在发展…

ShareSDK for Flutter

前言 这是一个基于ShareSDK功能的扩展的Flutter插件。使用此插件能够帮助您在使用Flutter开发应用时,快速地实现社会化功能,例如第三方授权登录,获取用户信息以及社交平台的分享等功能。 Demo例子:https://github.com/MobClub/ShareSDK-For-Flutter 开始集成 引入…

C++ 语言学习 day11 复习(3)

1.第一个是昨天的作业&#xff1a; 用类实现一个双向循环链表&#xff0c; 完成对应的功能&#xff0c;&#xff08;增删查改 &#xff09; 代码&#xff1a; list.h #ifndef LIST_H #define LIST_H #include <iostream> #include <string.h> using namespace s…

WebRTC入门教学和一对一通话实现

WebRTC入门学习 简介 大体架构 互联网实时通信平台&#xff0c;html5标准之一&#xff0c;使用简单的API就可以实现音频通信。 紫色部分的是Web应用开发者需要关注的部门&#xff0c;也就是WebRTC提供给开发者的接口蓝色部分是提供给浏览器厂商的接口&#xff0c;浏览器厂…

2023年天津理工大学中环信息学院专升本专业课报名考试须知

天津理工大学中环信息学院 2023年高职升本科专业课考试须知 根据《2023年天津市高职升本科招生实施办法》的相关要求&#xff0c;为做好高职升本科专业考试的报考工作&#xff0c;全面服务考生&#xff0c;保障考生权益&#xff0c;结合疫情防控要求&#xff0c;现将考试具体事…

14天学习训练营之 入门Pygame

目录 学习知识点 pygame 的 “hello world” pygame 模块概览 事件 理解事件 事件检索 处理鼠标事件 处理键盘事件 事件过滤 产生事件 模板代码 写一个把所有发生的事件输出的程序 使用方向键来移动图片 产生一个完全自定义的全新事件 这个程序让 “hello world”…

Linux--信号量

1.信号量的定义: 信号量是一个特殊的变量&#xff0c;一般取正数值。它的值代表允许访问的资源数目&#xff0c; 获取资源时&#xff0c;需要对信号量的值进行原子减一&#xff0c;该操作被称为p操作。当信号量值为0时&#xff0c;代表没有资源可用&#xff0c;p操作会阻塞。释…

Flutter高仿微信-第31篇-单聊-表情

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 详情请参考 Flutter高仿微信-第29篇-单聊 &#xff0c; 这里只是提取表情实现的…

骨感传导蓝牙耳机怎么样,骨感传导耳机对于我们耳道有保护吗

人们对于自身健康越来越重视&#xff0c;更多的人意识到传统耳机对于我们耳道的危害&#xff0c;纷纷加入了新型的骨感传导耳机阵容中&#xff0c;但还是存在不少对于骨传导耳机保持顾虑的小伙伴们&#xff0c;认为骨感传导对于耳道还是有损害&#xff0c;那么今天小编就和大家…

【Redis】Redis 的基础数据结构 以及 各种数据结构常用命令使用示例

本文主要介绍 Redis 基础&#xff0c;包括什么是 Redis 、Redis 数据结构有那些 以及 各种Redis 数据结构的常用操作命令 1. 初始 Redis 1.1 NoSQL 数据库 —— 非关系型数据库 SQL 1&#xff09; 结构化 -—— 例如 MySQL 中的表结构 &#xff08;不建议修改&#xff0c;初始…

锐捷MPLS跨域方案A、B实验配置

目录 MPLS域内配置 MPLS域1配置 MPLS域2配置 域间方式A配置 域间方式B配置 MPLS隧道——跨域解决方案A、B讲解_静下心来敲木鱼的博客-CSDN博客_跨域a方案https://blog.csdn.net/m0_49864110/article/details/127601807?spm1001.2014.3001.5501 MPLS域内配置 MPLS域内配置…

同态加密库Seal库的安装(win11+VS2022)

先说一下&#xff0c;seal库是微软开发的同态加密库&#xff0c;目前支持三种算法bfv&#xff0c;bgv和ckks。提供的语言版本是C艹和C#。 工具准备 这是github上提供的要求。 要准备的东西有 vs2022&#xff08;社区版就行了&#xff0c;网上一堆教程&#xff09;&#xff0c…

使用 Python 和 Matplotlib下载美股数据

介绍&#xff1a; 提示&#xff1a;例如 这是关于使用机器学习创建交易策略的系列文章中的第一篇。关于机器学习在交易中的实际应用&#xff0c;我主要参考的是 Marco Lopez de Prado 的金融机器学习进展。 尽管在人工智能方面有多年经验&#xff0c;但我从未将其应用于交易…

Spring Boot中@Import三种使用方式

Import是一个非常有用的注解&#xff0c;它的长处在于你可以通过配置来控制是否注入该Bean&#xff0c;也可以通过条件来控制注入哪些Bean到Spring容器中。 比如我们熟悉的&#xff1a;EnableAsync 、EnableCaching、EnableScheduling等等统一采用的都是借助Import注解来实现的…

TMD,JVM类加载原来是这样的!!!!

接上篇&#xff1a;https://boxuegu.blog.csdn.net/article/details/128000217 通过字节码&#xff0c;我们了解了class文件的结构 通过运行数据区&#xff0c;我们了解了jvm内部的内存划分及结构 接下来&#xff0c;让我们看看&#xff0c;字节码怎么进入jvm的内存空间&…

电脑硬盘分区软件哪个好用,无损分区软件哪个好

为了合理地利用磁盘空间&#xff0c;会进行磁盘分区的操作。由于磁盘分区涉及到计算机相关的操作知识&#xff0c;很多的用户都不会。所以&#xff0c;只能借助于专业的磁盘分区工具&#xff0c;那么&#xff0c;电脑硬盘分区软件哪个好用&#xff1f;在本文中&#xff0c;易我…