1、基于云原生范式构建开发者平台实践张起彤 火山引擎 云原生架构师基于云原生范式构建开发者平台实践张起彤火山引擎云原生架构师“负责火山引擎云原生交付运维体系建设和研发效能改进。”请插入您的照片讲师简介概念介绍 平台工程及其能力要素介绍案例分析 多云异构大型系统的复杂交付案例,挑战和解法设计实现 如何基于云原生构建完整的内部开发者平台体系基于云原生 GitOps&IaC 方案,实现编排交付基于Backstage统一数据模型与插件体系的开发者门户通过CI/CD流程平台驱动交付流程案例效果、总结与展望目录 近年来业内兴起了对devOps一些反模式的讨论,萌生了“平台工程(platform enginee
2、ring)”的理念。平台工程核心动机在于找到研发自助和认知负载的平衡,不限于单个技术或者工具,更聚焦在以提升开发者工作效率和体验为核心,将成熟工具粘合在一起构建合适的工具链路。本篇会结合一个真实的多云多应用的复杂系统交付场景,探讨如何基于云原生技术体系,构建完整的内部开发者平台体系,包括 GitOps&IaC 编排交付设计、平台动态建模与插件扩展原理、开发者门户设计思路等。最终实现交付部最终实现交付部署和署和CICDCICD开发过程的高度集成化、自助化开发过程的高度集成化、自助化成功要点 基于 IaC&GitOps 的统一编排交付,实现开发者可自助交付 构建可扩展的开发者平台&门户,提升开发者
3、工具集中度,优化开发者体验亮点介绍案例背景 平台工程理念平台工程平台工程新的目标:从“能用”到“好用”,强调开发者自助新的分工:平台团队和平台工程师新的工具:例如 内部开发者平台 和 开发者门户DevOpsDevOps目标:提高软件工程迭代和运维效率文化:you build it,you run it工具:开发&运维、代码&配置、XaaS、敏捷信息爆炸:我是谁我是谁/我在哪儿我在哪儿/做什么做什么?-认知负担认知负担平台建设难题:自研?开源?一站式?自研?开源?一站式?-缺乏平台标准缺乏平台标准平台工程是对平台工程是对devOpsdevOps的继承和发展的继承和发展 本质上还是软件工程层面提效
4、降本 践行平台工程,依赖devOps的成熟度案例背景 DevOps是平台工程的基础CNCF Platforms White Paper https:/tag-app-cf.io/whitepapers/platforms/丰富的丰富的DevOpsDevOps工具选择工具选择基础设施提供方:IaaS、PaaS、存储、中间件CI/CD工具链:制品仓库、CI工具、CD工具平台界面:配置管理、API和CLI、文档和搜索配套能力:权限/可观测/安全平台工程衍生出的新工具平台工程衍生出的新工具 内部开发者平台(Internal Developer Platform,IDP)开发者门户(Developer
5、Portal,DevPortal)案例背景 平台工程的增量要素内部开发者平台(Internal Developer Platform,IDP)定位:平台团队构建的,粘合应用交付的技术和工具链价值:降低开发者认知负载/开发者自助/构建黄金路径开发者门户开发者门户(Developer Portal,(Developer Portal,DevPortalDevPortal)定位:面向开发者服务的站点Portal,所有软件、工具、资源的动态集成视图层价值:解决业务软件信息孤岛和内部研发运维工具碎片化严重的问题平台工程能力矩阵平台工程相关产品引用自 https:/internaldeveloperpla
6、tform.org/platform-tooling/案例背景 平台工程要解决DevOps的什么问题?面向开发者面向开发者提供集成化+自助式的工具链和工作流面向面向平台团队平台团队标准化的集成范式、解决扩展性问题 平台汇集的工具、能力和流程均由领域专家精心挑选,并经过封装。开发者不需要很高认知成本,就能够自主完成研发、交付、运维工作 面向开发者工作界面一定是可扩展的,以应对业务系统/基础设施/工具链层面的持续变化 解决传统孤岛问题,实现工具和数据资产重用 工具多而杂?学习成本高?扩展迭代难?数据分散?问题与挑战 多云异构大型系统的复杂交付实践-场景介绍多云异构大型系统的场景特点多云异构大型系统