1、B B站平台工程站平台工程实践实践毛剑毛剑 bilibili bilibili个人简介个人简介毛剑,目前就职于 bilibili、负责基础架构部、质量保障中心、C端技术中心、游戏技术中台总经理,同时兼任技术委员会主席,近十多年的服务端研发经验,擅长高性能、高可用的服务端研发,熟悉 Go 等语言。在B站参与了从巨石架构到微服务的完整转型,在内部推进了 Go 语言,以及微服务的发展;之后负责过工程效率,对于分布式增量编译,以及 CICD 有比较丰富的经验;19年负责公司数据平台,把离线、实时、OLAP 平台底层能力拉到了一线互联网公司的水平,现在集群规模超过EB级别。目录目录 B站文化和团队(De
2、vops、EP、SRE)的发展DevopsDevops文化的发展文化的发展DevOps的技术发展旨在让开发者更专注于业专注于业务本身务本身,去实现需求,将操作降至最低。烟囱式,各自变更协调到单一的发布流程;原子能力,EP和SRE的团队转型1;平台工程;如果没有一个高度的工程纪律和来自管理层的认可,这一种精妙的平衡很容易退化成传统的“我们和他们”之间的竖井,从而导致团队间频繁的服务故障和不信任感加剧2。EPEP(工程效率)团队的发展(工程效率)团队的发展2018年,EP团队的重点工作主要在三方面:可靠性:全链路压测平台;效能:染色(多租户)环境管理、CI流水线;质量:移动端等专项测试基建;形成了
3、平台即服务平台即服务(PaaS),业务团队使用服务能力,提高工程师的自主性。Gitlab Flow-Agile FlowGitlab Flow-Agile FlowSRESRE(可用性工程师)团队的发展(可用性工程师)团队的发展2017及以前2018201920202021-至今 效率优先 需求响应、变更、标准化、报警治理、琐事优化 无稳定性工程 理解业务架构而非完成业务需求 积极推动读多活建设 建立Oncall制度 建设故障复盘文化 思考我们如何实践SRE 大型活动保障工程建立 混沌工程和故障演练探索实践 PaaS容量管理体系建设 稳定性工程初步完善 琐事优化释放人力转型 服务分级体系建设
4、SLO工程与平台建设 应急响应制度建设 故障复盘平台和故障管理制度建设 积极推动读多活业务覆盖 SRE BP制度,业务伙伴 专注稳定性建设和降本增效 多活、服务分级、SLO、容量管理等体系再优化建设 全员转型SRE,转型开发,更高要求,更大挑战引入SRE文化SRE稳定性工程初步完善没有SRE,只有运维SRE探索与落地SRE再转型CI/CD CI/CD 全景图全景图我们是否会因为组织结构而导致一个更好的设计无法实现?“713713事故事故”背后的组织升级:基础架构部(背后的组织升级:基础架构部(InfInf)推动工业化推动工业化SRE:BP制、强制轮岗、平台体系建设(数据/运营);AI&Bigd
5、ata:紧贴数仓服务业务,最大化复用SRE平台体系,推广搜支持;中间件:专注、深入引擎,为组件质量、稳定性、效率负责,SRE团队配合平台化;基础平台:为应用/中间件提供资源,全容器化;统一技术规划,为稳定性、效率、成本负责。推动了我们团队拓扑2,把产品团队独立,构建抽象层,降低认知负荷。目录目录 形成平台工程理念,及实践云原生生态的云原生生态的认知负荷认知负荷:业务团队关键任务业务团队关键任务应用需要众多云原生技术解决问题,却不幸引入认知负荷认知负荷77问题,苦“全栈”久已56。导致缺乏经验的开发人员向高级后端工程师寻求帮助,或者PaaS Oncall,经验变成了“部落知识”3。通过构建内部开
6、发平台来减少开发人员的认知负荷、艰苦的重复性手工工作,从而改善开发体验;平台不会强制使用特定的工具集或方法它是为了让开发人员可以更容易地构建和交付软件,同时又不用抽象出底层核心服务中实用的差异化功能;平台工程团队将平台视为产品(供开发人员使用),并设计出可以自助使用的平台;平台工程是什么?平台工程是什么?设计和构建工具链及工作流的学科,为云原生时代的软件工程组织提供自助服务能力。平台工程师提供一个通常称为“内部开发平台”(IDP)的集成化产品,涵盖应用程序整个生命周期的操作需求。统一门户:提供了一个具有服务目录功能的UI和OpenAPI;统一元数据:服务树、CMDB等各类PaaS元数据;统一工