《1--江鹏-从DevOps到平台工程:建设现代化开发者平台.pdf》由会员分享,可在线阅读,更多相关《1--江鹏-从DevOps到平台工程:建设现代化开发者平台.pdf(43页珍藏版)》请在三个皮匠报告上搜索。
1、从DevOps到平台工程构建现代化内部开发者平台2023 深圳站江鹏2005年研究生毕业后从事IT领域相关工作-SUSE 大中华区技术总监-Rancher 中国技术总监-Microsoft 资深技术专案经理、Citrix 首席顾问在云计算、云原生等领域有较为丰富的经验数澈软件Seal 联合创始人2023 深圳站目录什么是平台工程?01 平台工程建设目标及原则02 内部开发者平台建设的典型技术栈03 平台工程+ChatGPT04 2023 深圳站01什么是平台工程?2023 深圳站DevOps已死,平台工程永存?FaaS(Lambda,CloudFunctions)PaaS(Heroku,Clo
2、ud Foundry)Managed K8s(EKS,AKS,ACK,GKE)IaaS(Aliyun,AWS,Azure,Tencent Cloud,Huawei Cloud)Self-hosted K8sBareMetal(Compute,Storage,Network)研发舒适区Control/CustomizabilityDevOps Efforts屏蔽复杂度,降低研发学习使用成本2023 深圳站现代软件开发部署生命周期中的挑战开发生态碎片化基础设施复杂化SAuthSServiceSServiceSServiceSServiceSServiceSServiceSServiceSCI流水线
3、SIssueS修复分支SPR/MRS特性分支S发布分支S特性分支SCI流水线S外部依赖S修复分支SPR/MRSIssueS外部依赖S文档S文档S文档这个依赖的功能实现的咋样了?去Jira看看状态CI流水线跑失败了,得上去看看怎么回事?要开发一个新的服务,应该用哪些组件版本?有没有现成的脚手架可以用?要调用另外一个服务接口,这个接口谁负责的?文档在哪里?是不是又要拉个会这个服务的部署yaml应该怎么配置?问问别人吧测试环境部署下去了,好像有点问题,去K8s那边看看情况要一个新的测试环境,找DevOps那边申请创建个新的namespace要一个新的MySQL测试数据库,得去XX云/云管那边申请创建
4、一个2023 深圳站复杂度瓶颈导致开发人员效率和满意度降低从而影响产品交付质量、速度和其他指标开发人员效率时间DORA关键指标产品质量安全及合规开发人员满意度变更速度软件、工具及团队复杂度开发人员认知负担开发人员满意度参考:The Atlassian DevOps maturity journey初期复杂度提升复杂度瓶颈复杂度限制期望状态实际状态DORA关键指标产品质量安全及合规开发人员满意度2023 深圳站平台工程是应对上述问题的解决方案平台工程是一套用来构建和运营支持软件交付和生命周期管理的自助式内部开发者平台的机制和架构。平台工程的目标是优化开发者体验并加快产品团队为客户创造价值的速度。
5、Gartner来源:https:/ 深圳站平台工程的核心价值?DevOps in scale2023 深圳站02平台工程建设目标及原则2023 深圳站内部开发者平台?来源:https:/ Development TeamComplex InfrastructureEngineering PlatformPlatform Engineering:Scale DeliveryConceptual outline of an example platform and its principal componentsConsumptionPlatform Engineering TeamAutomat
6、ionSource:GartnerReusable ComponentsDeveloper ToolsSelf-Service Developer Portal来源:https:/cf.io/whitepapers/platforms/2023 深圳站平台工程的建设原则从解决开发人员面临的实际问题和痛点出发,设计平台的功能需求驱动平台工程原则ThinnestViablePlatformDemand-DrivenPlatform asa ProductPavedRoadsSelf-ServiceConsumption平台团队以产品开发的理念建设平台,确保平台跟随企业数字化深入不断迭代演进平台即产
7、品最大化用户自服务能力,提升自动化程度,提高开发者效率,最大化价值交付用户自服务基于实际使用情况构建简单易用的平台,降低开发者认知负担最小可用平台铺平路径通过平台为开发人员提供铺平路径,提供一致性、可预测、透明的应用迭代交付体验来源:Gartner-3 Steps to Kickstart Platform Engineering in Your Organization2023 深圳站03内部开发者平台建设的核心技术栈2023 深圳站典型内部平台的逻辑架构产品团队UI(Web Portal)+API+CLI平台接口层应用及基础设施编排开发工具、模板及文档等代码仓库/版本控制系统持续集成&流水
8、线安全及合规自动化可观测性基础设施层应用配置管理(ApplicationConfiguration Management)部署管理(DeploymentManagement)基础设施编排(Infrastructure Orchestration)成本管理(CostManagement)环境管理(EnvironmentManagement)ProductionEnvironmentDevEnvironmentTestEnvironmentStagingEnvironment产品团队产品团队产品团队产品团队发现及创建(Discover and Create)集成及部署(Integration an
9、d Deploy)操作及改进(Operate and Improve)平台能力提供层2023 深圳站目前平台工程建设的主要技术演进方向面向开发人员的一站式自服务开发者门户以应用为核心的应用及基础设施统一编排引擎2023 深圳站内部开发者门户来源:https:/www.getport.io/blog/guide-to-internal-developer-portals2023 深圳站内部开发者门户Backstagehttps:/backstage.io/Atlassian Compasshttps:/ as a Service)https:/roadie.io/Cycloidhttps:/ww
10、w.cycloid.io/Configure8https:/www.configure8.io/.2023 深圳站BackstageCNCF Incubation Projectframework来源:https:/ossinsight.io/analyze/backstage/backstage#overview2023 深圳站开发者门户研发管理平台一站式DevOps平台XXX平台vs2023 深圳站基于Backstage的开发者门户的核心价值点Software Catalog资源及信息汇聚-透明化Software Template最佳实践共享及合规 标准化Search全局搜索 信息检索与发
11、现Plugin Ecosystem一站式汇总及操作 自服务能力2023 深圳站Backstage Architecture2023 深圳站Backstage Plugin 生态插件类型:StandaloneService backedThird-party backed2023 深圳站Software Catalog2023 深圳站基于Catalog构建的对象视图2023 深圳站基于Catalog构建的对象视图(续)2023 深圳站Software Template2023 深圳站Search Plugin2023 深圳站基于Backstage构建开发者门户的优劣较为成熟的核心插件(Catal
12、og,Template等)社区插件众多(130+),可扩展性强较多的实际落地案例非开箱即用产品,使用及维护成本高社区插件质量参差不齐缺乏国内软件开发生态对接优 势劣 势2023 深圳站应用及基础设施编排平台及基础设施抽象多应用运行时支持,包括云原生及传统应用部署与管理。底层基础设施无关,支持Kubernetes集群、公有云或者私有云基础设施,实现多云、混合云统一部署与管理。动态配置与环境管理基于组件模块提供上层应用定义组装能力,结合应用部署的不同环境支持动态的配置覆盖及环境管理能力,降低应用部署与管理负担。关注点分离应用研发和运维工程师通过应用模块组装并管理应用,平台及基础架构运维工程师提供基
13、础设施能力和应用模块支持,屏蔽并降低基础设施复杂度,实现关注点分离。将复杂的基础设施能力以“可复用服务方式”移入产品团队的“舒适区”2023 深圳站应用及基础设施统一编排引擎Sealhttps:/seal.ioKubevelahttps:/kubevela.io/KusionStackhttps:/kusionstack.io/OAMhttps:/oam.dev/Scorehttps:/score.dev/Waypointhttps:/www.waypointproject.io/Humanitechttps:/ 深圳站平台及基础设施抽象底层技术栈选择考虑因素:覆盖容器及非容器场景完善的基础设
14、施即代码(IaC)能力丰富的基础设施生态支持方案候选:TerraformCrossplanePulumi2023 深圳站关注点分离定义应用模块/组件,应用最佳实践,提供可配置参数平台团队web服务MySQL Chart阿里云RDS阿里云主机with Tomcat定义环境并连接基础设施AKS K8s ConnectorProd EnvAliyun ConnectorK8s ConnectorDev&Test EnvvSphere ConnectorK8s ConnectorStaging EnvAliyun Connector基于模块/组件定义组装应用并设置配置参数选择部署环境设置环境/实例相关
15、参数web服务MySQL ChartApplication产品团队Dev&Test EnvStaging EnvCore EngineApplicationApplication基础设施2023 深圳站关注点分离Application TeamPlatform Team2023 深圳站动态配置与环境管理-Workload/ApplicationSpecificationOAM/KubevelaScore/HumanitecSeal 2023 深圳站静态 vs 动态环境管理2023 深圳站应用及基础设施编排设计的考虑因素降低而非增加认知负担充分利用已有技术,避免重复造轮子提供足够的灵活性,而非假
16、设/限定使用场景考虑开源社区及生态支持能力2023 深圳站04平台工程+ChatGPT2023 深圳站平台工程领域ChatGPT可以做什么?Cloud NativeAI Native?KubernetesChatGPT and Others云原生时代的AI原生时代的操作系统操作系统?优化产品团队体验、提高产品团队效率的终极形态?2023 深圳站加入ChatGPT辅助尝试 生成应用模块输入自然语言描述获得AI生成的代码模块AI辅助纠错代码模块提交代码模块到Git仓库生成相关PR使用该部署jar包的模块2023 深圳站进一步工作 微调与专用模型预训练通用文本大数据集领域特定数据集微调数据准备微调验
17、证和测试部署和使用通用大模型(GPT-4)验证测试数据集专用模型2023 深圳站Seal在平台工程领域的探索产品团队企业内部开发者平台开发工具、模板及文档等代码仓库/版本控制系统持续集成&流水线可观测性基础设施平台应用配置管理(ApplicationConfiguration Management)部署管理(DeploymentManagement)基础设施编排(Infrastructure Orchestration)成本管理(CostManagement)环境管理(EnvironmentManagement)ProductionEnvironmentDevEnvironmentTestEnvironmentStagingEnvironment产品团队产品团队产品团队产品团队DevPortal3rdPattyTools IntegrationAppManager3rdPattyTools Integration安全及合规自动化发现及创建(Discover and Create)集成及部署(Integration and Deploy)操作及改进(Operate and Improve)Pluggable Framework2023 深圳站欢迎进一步交流探讨Seal官方公众号平台工程社区公众号感谢聆听