从 DevOps 到平台工程:构建现代化内部平台

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 主题 正文部分 从DevOps到平台工程 - 构建现代化内部平台 数澈软件 / 江鹏
2.
3. 什么是平台工程?
4. DevOps已死,平台工程永存? 研发舒适区 BareMetal 屏蔽复杂度, 降低研发学习使用成本 (Compute, Storage, Network) IaaS (Aliyun, AWS, Azure, Tencent Cloud, Huawei Cloud) Control/ Customizability Managed K8s Self-hosted K8s (EKS, AKS, ACK, GKE) PaaS FaaS (Heroku, Cloud Foundry) (Lambda, Cloud Functions) DevOps Efforts
5. 平台工程兴起的原因? CI流水线跑失败 了,得上去看看 怎么回事? S S 外部 依赖 S PR/ MR … 文档 S S … S Service S Service CI 流水线 S Auth S Service S … S Service S Service S … 文档 S 修复 分支 S Issue 这个依赖的功能 实现的咋样了? 去Jira看看状态 … Issue S 发布 分支 这个服务的部署 yaml应该怎么配 置?问问别人吧 S 特性 分支 修复 分支 S 要一个新的测试环境,找 DevOps那边申请创建个新的 namespace 要开发一个新的服务,应该用 哪些组件版本?有没有现成的 脚手架可以用? S 外部 依赖 S 特性 分支 CI 流水线 S S PR/ MR S … Service 文档 要调用另外一个服务接口, 这个接口谁负责的?文档在 哪里? 是不是又要拉个会 碎片化、复杂化的开发生态系统 要一个新的MySQL测试数据 库,得去XX云/云管那边申请 创建一个 S Service 测试环境部署下 去了,好像有点 问题,去K8s那边 看看情况 复杂多变的应用架构和基础设施
6. 复杂度瓶颈导致开发人员效率和满意度降低 从而影响产品交付质量、速度和其他指标 开发人员效率 期望状态 复杂度限制 实际状态 复杂度提升 初期 复杂度瓶颈 DORA关键指标 变更速度 DORA关键指标 产品质量 软件、工具及团队复杂度 产品质量 安全及合规 开发人员认知负担 安全及合规 开发人员满意度 开发人员满意度 开发人员满意度 参考:The Atlassian DevOps maturity journey 时间
7. 什么是平台(Platform)? “A digital platform is a foundation of self-service APIs, tools, services, knowledge and support which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace, with reduced coordination.” - By Martin Follower and Evan Bottcher, 2018 https://martinfowler.com/articles/talk-about-platforms.html
8. 什么是平台工程(Platform Engineering)? 来源: https://www.gartner.com/en/articles/what-is-platform-engineering 平台工程是一套用来构建和运营支持软件交付和生命周期管理的自助式内部开发者平台的机制和架 构。平台工程的目标是优化开发者体验并加快产品团队为客户创造价值的速度。 Gartner
9. 平台工程的价值?
10. 内部平台及其构成
11. 内部开发者平台? Platform Engineering: Scale Delivery Conceptual outline of an example platform and its principal components Development Team Consumption Engineering Platform Reusable Components Developer Tools Self-Service Developer Portal Platform Engineering Team Automation Complex Infrastructure Source: Gartner 来源: https://www.gartner.com/en/information-technology/insights/top-technology-trends 来源: https://appdelivery.cncf.io/whitepapers/platforms/
12. 典型内部平台的逻辑架构 产品团队 产品团队 平台 接口 层 UI (Web Portal) + API + CLI 平台 能力 提供 层 开发工具、模 板及文档等 持续集成&流 水线 应用及基础设施编排 基础 设施 层 应用配置管理 (Application Configuration Management) 部署管理 (Deployment Management) 成本管理 (Cost Management) 基础设施编排 (Infrastructure Orchestration) 环境管理 (Environment Management) Dev Environment Test Environment 产品团队 操作及改进 (Operate and Improve) 集成及部署 (Integration and Deploy) 发现及创建 (Discover and Create) 代码仓库/版本 控制系统 … 产品团队 产品团队 Staging Environment Production Environment 安全及合规自动化 可观测性
13. 内部平台建设的典型技术栈
14. 目前平台建设的主要演进技术方向 面向开发人员的 以应用为核心的 一站式自服务开发者门户 应用及基础设施统一编排
15. 开发者门户 • Backstage https://backstage.io/ • Atlassian Compass https://www.atlassian.com/software/compass • Cortex https://www.cortex.io/ • OpsLevel https://www.opslevel.com/ • Port https://www.getport.io/ • Roadie (Backstage as a Service) https://roadie.io/ • Cycloid https://www.cycloid.io/ • Configure8 https://www.configure8.io/ • ......
16. Backstage CNCF Incubation Project framework 来源:https://ossinsight.io/analyze/backstage/backstage#overview
17. Backstage Architecture
18. Backstage Plugin 生态 插件类型: • Standalone • Service backed • Third-party backed
19. 研发管理平台 开发者门户 vs 一站式DevOps平台 XXX平台
20. Service Catalog
21. 基于Catalog构建的对象视图
22. 基于Catalog构建的对象视图(续)
23. Software Template
24. Search Plugin
25. 基于Backstage的开发者门户的核心价值? Search 全局搜索 – 信息共享与可发现 Software Catalog Software Template 资源及信息共享 - 透明化 最佳实践共享及合规 – 标准化 Plugin Ecosystem 一站式汇总及操作 – 自服务能力
26. 应用及基础设施编排 • OAM https://oam.dev/ • Score https://score.dev/ • Kubevela https://kubevela.io/ • Crossplane https://www.crossplane.io/ • Seal https://seal.io • Waypoint https://www.waypointproject.io/ • Humanitec https://humanitec.com/ • Qovery https://www.qovery.com/ • Acorn https://acorn.io • ......
27. 应用及基础设施编排的关键着力点 将复杂的基础设施能力以“可复用服务方式”移入产品团队的“舒适区” 平台及运行时无关 关注点分离 动态配置管理 多应用运行时支持,包括云原生及传统 应用部署与管理。底层平台无关,支持 Kubernetes集群、公有云或者私有云基 础设施,实现多云、混合云统一部署与 管理。 应用研发和运维工程师通过应用模块组 装并管理应用,平台及基础架构运维工 程师提供基础设施能力和应用模块支 持,屏蔽并降低基础设施复杂度,实现 关注点分离。 基于组件模块提供上层应用定义组装能 力,结合应用部署的不同环境支持动态 的配置覆盖及管理能力,降低应用部署 与管理负担。
28. Workload/Application Specification 原生Kubernetes yaml定义仍占据绝对主导地位 OAM Seal Score
29. 关注点分离 定义应用模块/组件,应用最佳实践,提供可配置参数 Core Engine …… 阿里云主机 with Tomcat web服务 平台团队 MySQL Chart 阿里云RDS Application K8s Connector K8s Connector AKS K8s Connector vSphere Connector Aliyun Connector Aliyun Connector Dev&Test Env Staging Env Prod Env 定义环境并连接基础设施 Application Application Dev&Test Env 产品团队 web服务 Staging Env MySQL Chart 基于模块/组件定义组装 应用并设置配置参数 选择部署环境 设置环境/实例相关参数 基础设施
30. 基础设施编排 Crossplane Terraform
31. 平台工程建设原则
32. 平台工程的建设原则 最小可用平台 基于实际使用情况构建简单易用的平台,降低 开发者认知负担 用户自服务 最大化用户自服务能力,提升自动化程度,提 高开发者效率,最大化价值交付 需求驱动 Thinnest Viable Platform Self-Service Consumption Demand- Driven 平台工程 原则 Platform as a Product Paved Roads 铺平路径 通过平台为开发人员提供铺平路径,提供一致 性、可预测、透明的应用迭代交付体验 来源:Gartner-3 Steps to Kickstart Platform Engineering in Your Organization 从解决开发人员面临的实际问题和痛点出发, 设计平台的功能 平台即产品 平台团队以产品开发的理念建设平台,确保平 台跟随企业数字化深入不断迭代演进
33. 蹭个热点:* + ChatGPT
34. 平台工程领域ChatGPT可以做什么? 开发者门户 • 集成AI辅助的IDE • 基于内部数据的辅助分析应答 • …… 应用及基础设施编排 • 辅助组件/模块模板开发 • 应用部署辅助 • 部署运行错误分析 • …… 优化产品团队体验、提高产品团队效率的终极目标?
35. 加入ChatGPT辅助尝试 – 生成应用模块 输入自然语言 描述 获得AI生成的 代码模块 AI辅助纠错代 码模块 提交代码模块 到Git仓库 生成相关PR 使用该部署jar 包的模块
36. 进一步工作 – 微调与专用模型 通用大模型 (GPT-4) 预训练 微调数据准备 通用文本 大数据集 领域特定 数据集 专用模型 微调 验证和 测试 验证测试 数据集 部署和 使用
37. 基于专用模型的应用部署与管理
38. Seal在平台工程领域的尝试 产品团队 企业 内部 开发 者平 台 产品团队 Dev Portal 发现及创建 (Discover and Create) 产品团队 操作及改进 (Operate and Improve) 集成及部署 (Integration and Deploy) Pluggable Framework 开发工具、模 板及文档等 代码仓库/版本 控制系统 持续集成&流 水线 部署管理 (Deployment Management) 成本管理 (Cost Management) 基础设施编排 (Infrastructure Orchestration) 环境管理 (Environment Management) Test Environment 安全及合规自动化 应用配置管理 (Application Configuration Management) Staging Environment App Manager Dev Environment 基础 设施 平台 … 产品团队 产品团队 Production Environment 可观测性
39. 欢迎进一步交流探讨 Seal官方公众号 平台工程社区公众号
40.

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-09 10:39
浙ICP备14020137号-1 $Carte des visiteurs$