搜索

pdf文档 1.3.3 基于Go构建海量作业作业平台

4.48 MB 34 页 0 下载 3 浏览 0 评论 0 收藏
所属分类: 后端开发 / Go
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档介绍了基于Go构建的B站作业平台Job。该平台是一套基于Agent/SSH双模式的原子平台,具备上万台机器并发处理能力,支持脚本执行、文件分发、定时任务等基础运维场景,并通过流程调度能力将单个任务组装成自动化作业流程。平台架构经历了从SSH模式到Agent/SSH双模式混合架构的演进,2021年起利用Kratos框架重构。平台面临系统集成、自动化编排、安全性、性能优化、故障排除和用户体验等挑战,以及资源变更、兼容性、回源问题和运维复杂等具体问题。平台组件包括Apiserver、Etcd、Scheduler和Worker,分别负责鉴权与任务初始化、作业存储、作业调度和作业执行与日志上报。
AI总结
B站基于Go语言重构了海量作业平台(Job),以应对业务增长带来的性能、稳定性和可观测性挑战。 **1. 作业平台简介与核心对象** * **核心概念**:将日常运维操作(如软件安装、服务启停)抽象为“作业”。 * **主要对象**:包括命令(独立操作,如关机)、文件分发/下载、作业(命令与文件操作的有序组合及执行对象)、定时作业。 **2. 面临的挑战** * **系统集成**:需集成多供应商、多操作系统。 * **自动化编排**:核心是自动化作业流程。 * **安全性**:需处理敏感数据,要求严格的认证授权。 * **性能与可伸缩性**:需处理海量数据与任务。 * **故障排除**:需完善的机制快速定位问题。 * **用户体验**:需友好的界面。 * **其他难点**:资源变更与权限管理、跨基础设施兼容性、海外业务日志回源、组件升级维护成本高。 **3. B站作业平台(Job)介绍与演进** * **定位**:基于Agent/SSH双模式,提供基础操作的原子平台,支持万级别并发,可通过流程调度组装自动化流程。 * **架构演进**: * 早期:基于SSH模式,解决单机房问题,但SSH并发弊端随业务增长显现。 * 2021年起:利用Kratos框架(Go语言)重构,实现组件插件化,灵活集成公司内部工具链(服务发现、ORM、MQ、可观测组件等)。 * **当前架构**:参照K8S设计,分为四大组件: * **ApiServer**:大脑,负责统一鉴权、任务初始化,对外暴露接口。 * **Etcd**:作业分发依赖的中间件,用于存储。 * **Scheduler**:调度器,负责将作业调度至Worker。 * **Worker**:负责作业执行(通过SSH模块远程执行)及日志上报。 * **功能特性**:支持原生SSH与Agent双模式、跨OS、高危命令实时检测、开放API接口供其他系统调度。 **4. 总结与展望** * 平台解决了SSH模块在并发处理、长时作业、大作业场景下的不足,实现了多机房作业调度与多活。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 22 页请下载阅读 -
文档评分
请文明评论,理性发言.