简介这是一份面向企业运维、研发效能及技术管理人群的蓝鲸智云全体系文档系统梳理腾讯IEG自研PaaS框架的定位、核心优势与落地路径。文档从品牌背景讲起重点拆解PaaS理念、原子平台模式、开放生态和企业赋能四大优势并在解决方案部分完整覆盖CI持续集成、CD持续部署、CO持续运营三大场景附带社区版与企业版的产品版本划分便于读者进行技术选型。资源压缩包共1个PDF文件大小仅1.14MB适合下载后离线阅读或团队内部分享。文档在预览中详细介绍了管控平台等原子平台的组成与作用帮助读者理解蓝鲸如何通过非侵入式集成和横向扩展支撑大规模运维已有528人学习浏览适合希望搭建研发运营一体化体系或了解腾讯运维实践的读者作为入门与参考。1. 蓝鲸智云给运维留下的不只是自动化而是一层基础 PaaS蓝鲸智云这个名字很多运维第一反应是腾讯 IEG 自用的运维平台真正拆过之后会发现它解决的问题比“自动化”更底层。传统 Linux 单机时代运维面对的是几百台机器云化之后节点规模到了数千甚至百万混合云成了常态IaaS 只解决了资源切割调度没有解决资源与应用之间的融合。蓝鲸智云要补的正是这个断层把管控、配置、作业、PaaS 四个底座放在 IaaS 与 SaaS 中间形成企业级分布式运营操作系统。有人把它当批量执行工具装上 Agent 就开始敲脚本这其实只用了它能力的十分之一。这篇文章基于《蓝鲸智云全体系文档》从 CMDB 建模、管控链路、SaaS 搭建、故障自愈到版本选型逐一拆解哪些设计值得直接抄进自己的平台哪些参数不调好会踩坑。适合运维、SRE、平台工程师也适合想搭内部开发者平台的技术管理者。2. 蓝鲸智云配置平台 CCCMDB 建模与查询实践蓝鲸智云配置平台CC在文档里被定义为一款面向应用的 CMDB是整个体系的配置数据中心。很多团队落地 CMDB 失败不是工具不行而是把它做成了“资产登记表”只录 IP、机房、配置项跟自动化任务完全脱节。蓝鲸的做法是以业务拓扑为主线组织数据让配置平台成为上层所有平台获取主机、模块、业务信息的唯一可信源。2.1 面向应用的模型设计2.1.1 为什么是“业务拓扑”而不是“IP 分组”蓝鲸配置平台的主模型是“业务 - 模块 - 主机”三层结构。业务对应一个产品线或独立项目模块对应业务下的服务角色主机挂载在模块之下。这个模型的价值在于执行作业、配置监控、设定自愈策略时都以模块为粒度选择目标而不是手工粘贴一批 IP。业务拓扑会随架构调整自动变化扩容缩容时自动化链路不用跟着改。模型层典型字段在自动化中的作用业务bk_biz_id、bk_biz_name所有蓝鲸平台 API 的必传入参隔离权限与数据模块模块名、服务角色、负责人作业分批、监控分组、标准运维流程节点的目标集合主机bk_host_innerip、bk_cloud_id实际执行命令与分发文件的对象自定义属性机柜、维护窗口、资产编号作为标准运维流程的判断条件或通知字段常见误用是把主机作为第一层级直接建一堆“IP 段分组”。短期看查询方便业务一旦交接或服务拆分分组就失去语义CMDB 慢慢废掉。蓝鲸的模型把业务身份放在最上层IP 只是挂载点这是它能在海量节点下保持可维护性的关键。2.1.2 自定义属性应该留多少配置平台提供了自定义属性管理能力用于补充业务和主机上的元数据。经验是第一版不要急着加自定义属性先把业务、模块、主机三个内置模型跑通确认自动化任务都在消费这些数据之后再按需增加。自定义属性一旦被作业模板或标准运维引用删除时会导致流程节点解析失败所以新增要克制删除要慎重。2.2 CMDB 里的主机数据怎么查2.2.1 直接查存储的直观理解蓝鲸配置平台的底层存储对用户不可见但理解它的数据组织方式有助于排查问题。从模型语义上可以把它理解为一个面向文档的数据库主机是集合里的文档业务和模块通过内嵌字段关联。// 以 MongoDB 语义理解 CC 主机模型实际请使用官方 API db.cc_HostBase.find( { bk_host_innerip: /^10\.0\./ }, // 按内网 IP 前缀模糊匹配 { bk_host_innerip: 1, bk_cloud_id: 1, bk_host_name: 1 } ).limit(100)这里只做逻辑说明不要直连数据库做变更。模糊匹配可以快速圈定目标范围比如排查某个网段的机器是否都装了 Agent。实际使用时推荐走官方 API避免绕过权限体系。2.2.2 官方 API 的正确调用姿势配置平台的实例搜索接口是 hosts/search支持按条件组合查询。下面这段代码演示按业务和模块名定位主机import requests url http://{paas_domain}/api/c/compapi/v2/cc/search_host/ payload { bk_app_code: my-app, bk_app_secret: your-secret, bk_username: admin, bk_biz_id: 2, condition: [ { bk_obj_id: module, condition: [ {field: bk_module_name, operator: $eq, value: web} ] } ], fields: [bk_host_innerip, bk_host_name], page: {start: 0, limit: 50} } resp requests.post(url, jsonpayload, timeout10) print(resp.json()[data][info])参数说明bk_biz_id 是业务 ID不传会默认查询全业务容易造成越权或超时condition 数组按对象类型分组过滤bk_obj_id 取 host、set、module 等模型operator 支持 $eq、$ne、$regex 等操作符fields 用来裁剪返回字段大数据量时能明显减少响应体。page.limit 不要一次取太大实例搜索接口有性能上限需要全量数据时用游标分页或者按模块分批拉取。2.3 自动化任务消费 CMDB 数据拉取主机列表后最常见的场景是生成作业平台可用的 IP 清单。下面是一段从配置平台按模块拉取 IP 并落盘的脚本#!/bin/bash BIZ_ID2 MODULE_NAMEweb curl -s -X POST http://{paas_domain}/api/c/compapi/v2/cc/search_host/ \ -H Content-Type: application/json \ -d { bk_app_code: my-app, bk_app_secret: your-secret, bk_username: admin, bk_biz_id: $BIZ_ID, condition: [ {bk_obj_id: module, condition: [ {field: bk_module_name, operator: $eq, value: $MODULE_NAME} ]} ], fields: [bk_host_innerip], page: {start: 0, limit: 200} } \ | jq -r .data.info[].bk_host_innerip /tmp/web_ip_list.txt wc -l /tmp/web_ip_list.txt这段脚本把 CMDB 的查询结果转成一行一个 IP 的文件后续交给作业平台分发或执行时直接读取。用 jq 解析比 grep 正则提取可靠得多。这样做的核心收益是“配置单一可信源”发布时不用手写 IP 清单扩容缩容后模板无需调整回滚时按同一模块重跑即可。提示脚本里不要直接抓取“所有主机”务必按业务与模块过滤。作业平台批量执行对 IP 列表有数量上限拆成小批次执行也更容易定位执行缓慢的节点。3. 管控平台与作业平台命令、文件与批量执行链路配置平台提供了“在哪台机器上做”管控平台和作业平台解决“怎么做”。管控平台是蓝鲸体系的底层通道作业平台是面向运维操作语义的执行层。这两个平台叠在一起才是海量节点自动化的完整链路。3.1 管控平台的两层分布式结构管控平台是典型的两层分布式 C/S 结构业务机上部署蓝鲸 Agent每个业务机只部署一个Server 端和 ZooKeeper、Redis、MySQL 等周边模块负责寻址、状态与数据持久化。Agent 是执行终端Server 提供接入和调度ZooKeeper 维护可用节点和路由关系。这个设计和传统远程执行工具最大的区别在于它不是 SSH 直连而是通过长连接通道通信天然支持跨云管控。管控平台提供三类服务能力文件分发传输、命令实时执行与反馈、大数据采集与传输。上层模块不直接面对用户但所有命令和数据的进出都依赖它。通道模式有三种选型决定了跨网络区域的执行质量通道模式适用场景注意点直连模式同一内网或网络已打通Agent 可直连 Server延迟低依赖网络连通性代理模式跨机房、跨云业务机无法直接访问 Server需要在边缘部署 proxy 转发级联路由模式多级网络分区需要最优路径路由由管控平台计算配置复杂但扩展性最好实施混合云管控时优先用小规模试点验证代理模式下的命令回传稳定性再推到全量。不要一上来就把所有节点切成代理模式避免转发节点成为瓶颈。3.2 批量脚本执行与文件分发作业平台基于管控平台之上提供 Web 化脚本管理和批量执行能力。它的核心 API 是 fast_execute_script调用即触发一批机器执行指定脚本。示例调用如下curl -X POST http://{paas_domain}/api/c/compapi/v2/job/fast_execute_script/ \ -H Content-Type: application/json \ -d { bk_app_code: my-app, bk_app_secret: your-secret, bk_username: admin, bk_biz_id: 2, task_name: weekly_patch, script_content: IyEvYmluL2Jhc2gKc2V0IC1lCnVwdGltZSAteA, script_language: 1, ip_list: [ {bk_cloud_id: 0, ip: 10.0.0.1} ], timeout: 600 }script_content 是脚本内容经过 Base64 编码后的字符串这里示例解码后是“#!/bin/bash\nset -e\nuptime -x”实际使用时填入完整脚本。script_language 取值 1 表示 Shell2 表示 Python。ip_list 中的 bk_cloud_id 对应配置平台的云区域 ID跨云管控时这个字段决定了走直连还是代理通道填错会导致 Agent 无法寻址。timeout 参数按脚本实际耗时设置过短会被误杀过长会拖住作业线程。文件分发对应的是 push_config_file 类接口核心参数是 file_list 和 target_path。分发前确认目标路径存在且权限正确避免覆盖系统文件。3.3 从“零碎脚本”到“作业模板”单个脚本执行只是开始真正的效率来自流程化。作业平台把零碎任务组装成作业流程一个流程包含多个步骤每个步骤可以指定目标 IP、执行账号、超时时间步骤之间支持失败网关和分支逻辑。维度即时执行作业模板定义方式每次临时填写脚本与目标预定义步骤、参数和执行策略复用性执行完即丢弃可被标准运维、API 反复调用审计能力有执行记录有版本、有参数快照、有执行人适用场景临时排查、单次变更发布、重启、扩容等高频操作我一般把“先手工试跑、再固化成模板”作为作业平台落地的基本路径。先在测试机用即时执行验证脚本参数成功后另存为作业模板再挂到标准运维或定时任务上。3.4 批量执行常见的三个坑第一Agent 心跳显示异常时先看 ZooKeeper 中该节点的注册信息确认 Agent 版本与 Server 兼容再排查网络策略。第二脚本内容 Base64 编码前保持 UTF-8 无 BOM否则 Windows 上编辑过的脚本会在首行引入不可见字符导致语法错误。第三大批量并发执行时管控平台连接数会显著上升建议把 ip_list 拆成多个批次每个批次控制在 500 台以内并在作业模板里设置并发上限。4. 蓝鲸 PaaS 平台快速搭建 SaaS 应用与 ESB 集成蓝鲸 PaaS 平台是体系里最容易被低估的一块。它不是一个代码托管平台而是一个把“应用开发、部署、运维”打包好的 PaaS 环境。在 CI-CD-CO 链路里PaaS 平台承接了“快速构建内部工具”的职责让运维团队自己就能长出系统。4.1 PaaS 平台的托管边界文档里说PaaS 平台为应用从创建到部署再到维护管理提供自助化和自动化服务包括日志查询、监控告警等。对比自建 Web 服务的差异更直白维度自建 Web 服务蓝鲸 PaaS 托管登录鉴权自研或接入统一登录内置蓝鲸统一登录部署环境自己配服务器、数据库应用包上传即部署日志监控自己搭 ELK 或买监控平台提供基础日志与告警API 接入手动管理密钥通过 ESB 统一申请与鉴权对运维开发团队来说节省的不是写代码的时间而是维护一套基础设施的时间。应用只要聚焦业务逻辑剩下的托管、扩容、日志采集都由平台承担。4.2 从零搭建一个最小应用使用蓝鲸官方 Python 开发框架时最小的应用结构如下# app/__init__.py from blueapps.core.celery import celery_app __all__ [celery_app]app.yaml # 应用元数据名称、语言、入口 requirements.txt # Python 依赖 app/ # 应用主体 views.py # 视图与接口逻辑 urls.py # 路由注册 __init__.py部署时只需在 PaaS 平台上传代码包平台会自动识别入口并启动。开发框架已经封装了登录态、权限、ESB 调用等公共能力。视图里写普通的 Django 逻辑即可不需要关心 Web 服务器配置。4.3 服务总线 ESB 与 API Gateway 的解耦作用蓝鲸体系中SaaS 应用调用其他平台能力时不直接拼接接口地址而是通过 ESB 服务总线转发。ESB 把作业平台、配置平台、监控平台等系统的 API 封装成统一风格的蓝鲸标准组件应用侧通过组件名和参数发起调用底层接口变化时上层应用无感。接入一个新系统时常见做法分四步第一梳理外部系统的 API 清单和鉴权方式第二在 ESB 中新增组件把外部请求转换为蓝鲸组件格式第三配置组件参数映射和错误码转换第四在 SaaS 应用中通过组件调用并观察返回。遇到调用失败先看错误码是否符合组件封装的预期格式再检查 ESB 日志中的请求与响应体。提示ESB 的 API 调用频率限制按版本差异很大社区版默认 10000 次/日企业版无限制。在 SaaS 设计阶段就要评估调用量避免高峰期触发限流。5. 标准运维与故障自愈把自动化编排成可审计的流程工具链的最后一环是编排。标准运维把跨系统操作串成流程故障自愈把监控告警与恢复动作串联成闭环。这两个 SaaS 解决的是“自动化之后如何保证秩序”的问题。5.1 标准运维的跨系统流程编排标准运维内置任务调度引擎可以把作业平台的脚本、配置平台的查询、监控平台的告警动作整合到同一个流程。一个典型的发布流程包含停前置机、备份数据库、分发代码包、执行变更脚本、检查服务端口、开放流量。调用标准运维 API 执行任务模板参数结构大致如下import requests url http://{paas_domain}/api/c/compapi/v2/sops/create_task/ payload { bk_app_code: my-app, bk_app_secret: your-secret, bk_username: admin, bk_biz_id: 2, template_id: 123, name: web_release_20240115 } resp requests.post(url, jsonpayload, timeout10) task_id resp.json()[data][task_id] # 启动任务 start_url http://{paas_domain}/api/c/compapi/v2/sops/start_task/ start_payload { bk_app_code: my-app, bk_app_secret: your-secret, bk_username: admin, bk_biz_id: 2, task_id: task_id } requests.post(start_url, jsonstart_payload, timeout10)template_id 对应标准运维中已编排好的流程模板name 是本次执行的实例名记录到审计里方便回溯。流程中的每个节点可以关联作业平台模板也可以调用第三方 API节点间数据通过上下文变量传递。5.2 故障自愈的闭环逻辑故障自愈的价值不是“告警之后通知人去处理”而是直接执行预定义恢复动作。监控平台探测到异常后生成告警事件自愈引擎按策略匹配处理方案调用作业平台执行恢复动作最后把处理结果反馈给监控平台。故障场景检测来源自愈动作进程挂掉进程端口探测拉起服务并检查端口恢复磁盘使用率过高磁盘空间监控清理指定目录下的过期日志内存持续上升内存使用率监控触发 dump 后重启进程负载突增负载监控先扩容再定位慢 SQL设计自愈策略时动作必须可回滚。清理日志前先备份或设置“仅移动不删除”重启前先保留现场信息。自愈命中要按业务拆分避免一个策略动作扩散到多个业务。5.3 编排落地时的收敛边界自动化执行和人不同它不会判断“这次情况特殊”。所以制定策略时要设置收敛条件同一台主机在指定时间窗口内只执行一次自愈动作同类型告警合并为单一事件避免自愈风暴。排障时通过事件 ID 关联监控告警时间、自愈命中时间、动作执行结果三个时间戳比对出问题在哪一环监控告警时间早于自愈命中时间策略匹配延迟检查事件路由。自愈命中但执行失败去作业平台看脚本输出通常是权限或路径问题。自愈执行成功但告警未恢复恢复动作只是临时的需要人工介入根因分析。注意故障自愈适合处理“已知原因、固定动作”的场景遇到未知原因时策略越简单越安全。6. 版本选型与开源组件社区版和企业版的边界在哪里蓝鲸智云文档里最容易被忽略的是版本差异表。社区版和企业版不是简单功能裁剪而是整个交付模式的差异谁部署、谁维护、API 额度、高可用方案、培训认证全都不一样。搞清楚边界再决定自己该用哪一条线。6.1 三个软件包的定位差异软件包类型包含内容获取方式典型用户软件基础包管控平台、配置平台、作业平台、PaaS 平台及官方 SaaS社区版免费下载企业版 License 授权社区用户、企业客户软件增强包容器管理平台、持续集成平台蓝盾等社区版已开源企业版由合作伙伴交付需要容器化、CI 能力的团队合作商软件包网络管理等细分场景产品由合作伙伴提供销售和技术支持有特定行业需求的客户基础包解决的是基础自动化问题增强包解决的是更高级的容器和 CI 诉求。选型时先确认企业当前处于哪个阶段不要一上来就追增强包。6.2 开源组件与官方支持的边界增强包里的配置平台、持续集成平台蓝盾已经对外开源社区用户可以自行获取源码包。这时要清楚开源不等于官方免费支持蓝鲸官方只提供开源社区的更新服务部署和运维问题需要依靠社区。企业版则不同License 永久授权且有专家技术支持。企业版软件的有效性以授权邮件为准邮件由官方指定邮箱发出。购买后务必核对证书文件、版本信息与合同一致。软件续期也需要向合作伙伴发起经审计后重新发放证书文件。6.3 把文档当成实施前的验收清单《蓝鲸智云全体系文档》包含产品矩阵、版本差异、服务信息、认证体系是一份可以直接转换成验收单的工程文档。拿它做三件事第一对照产品矩阵确认当前版本包含哪些平台和 SaaS第二对照服务差异表确认 API 配额、监控保障和支持时段第三按照认证体系规划团队成员的能力要求。采购前先把这三项列成表格逐项打勾。6.3.1 下载后先校验文件完整性蓝鲸官方软件包从网站下载后第一件事是校验文件完整性避免下载损坏或传输中被篡改。Linux 下的常规做法是比对 SHA-256 哈希值sha256sum 蓝鲸智云全体系文档.pdf # 输出形如 # 9d8431f6b2b1f2e5a3d8c62f9d0e1b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9 蓝鲸智云全体系文档.pdf校验规则是把官方页面公布的 SHA-256 值与命令输出对比两者一致再打开阅读。这个方法同样适用于社区版软件包、增强包源码包。6.3.2 用好公开交流群与认证通道文档末尾给出的交流群是很好的上下文来源社区综合群处理部署和开发问题运维开发群讨论 SaaS 开发和标准运维CMDB 开源群关注配置平台源码。认证路径上初级认证适合交付实施人员服务认证才具备为客户提供软件部署和维护的资质。建议从下载全体系文档开始边读边把“产品矩阵 - 版本 - 服务差异”建成本团队的验收单用校验过的干净环境跑两轮冒烟脚本确认机器注册、命令下发、日志回传三个基础链路都通了再进入真正的 SaaS 开发。本文还有配套的精品资源点击获取