好 大家下午好啊然后我们就直接开始我们今天的这个分享嗯 这次这个分享是关于就是大规模金融级的招商银行关于平台工程的做的一个实践嗯 因为我们是最后一场了可能我们会今天讲的稍微 稍微详细一点时间可能会多点嗯 因为这个事情本身也比较的系统整个分享呢 我来自招商银行我的名字叫许家航有我和曾庆国来自阿里云的给大家一起做整个分享分成两个部分 分成两个部分一个是讲是整个我们在招商银行怎么基于社区的这些技术社区的这些工具链来去结合我们企业内部的诉求然后快速地去形成一个平台工程这么一个工程化的一个这么一个产品然后第二部分的就是说呃 庆 呃 庆国呢会重点说一下怎么基于库尔威拉呃 因为我们这边用到了库尔威拉作为我们的平台工程引擎来去快速构建自己的平台工程的实践呃 简单的自我介绍一下呃 我目前已经工作14年了然后工作经验比较比较比较跨界 呃 因为我呃呃 最早先我是在做呃 通信协议就是无线通信协议然后后面又去做了车载啊汽车然后也参与过两辆车型的研发后来又去做了有一次创业经验做云存储最后来到了庄银行呃 备死在成都做一些呃关于云原生英用的以及平台工程实践呃 也正是因为我呃在不同的行业待过所以说我对于平台工程有一些自己的理解首先整个分享包括四个部分呃 五个部分首先我会有一个影子说一下我对于平台工程当我看到这个技术出现了以后我的一些想法呃 我的一些想法然后以帮助大家呃 来理解这个呃 作为一个对比理解呃 参考例子然后第二个就说我会介绍一下当前的一个呃 在云原生这个领域需要要与平台工程的一个背景然后再说 然后再说一下关于平台工程的一个101的介绍以及重点说一下我们行内怎么去落地平台工程的最后的话呃 就是交给那个清国来做他的分享首先的话这是一个参考的一个对比例子因为我说过呃 我在汽车行业工作过所以说我会 我刚我看到平台工程这样的技术出现了以后呃 这样的工程时间出现了以后我 我会呃 直觉地告诉我这个东西它其实在呃 汽车或者说呃 汽车工程画这个领域是有参考的实践的其实我们可能呃 了解其实最早先开始做汽车平台化呃 公司可能是大众啊 大众呃 比较有名的可能一个平台叫MQB啊 后面 呃 紧接着这个风填就跟进了叫做它有一个叫做呃 TNGA的这么一个平台工程的这么一个系统啊 现在的特斯拉可能是做平台工程做最好的一个公司那我们看一下在汽车领域它的汽车automotive的这么一个平台它有什么样的特点啊首先的话 它这个平台的诞生是为了去解决有诉求就是说怎么用更低的研发成本 制造成本更低的研发周期去推生产 或者研发出新的模车型 新的车型 对吧然后让自己的整个平台是可以模块化的这是这个来自于2021年的一个汽车平台化的一个报告的一个研究报告首先 在汽车平台里面模块化平台以平台工程是非常常见的它的目的其实和我们现在所遇到的一个诉求是一样的然后它所采取的方式也是类似的首先它去做标准化它让它的每一个构建每一个零部件是标准化的同时让这标准化的零部件更加的归约比方说是不是同一个车型的待会我会提到它会用同样的发动机动力总成 发动机 变速箱或者是底盘呢 对吧那么类似的不管是A级车 B级车 C级车都是一样的 SUV也是这样对吧然后它通过这个标准化然后去模块化这有关键字模块 Modules然后最终去 Assembling或者研发 制造它对应的 Model 车型下面这个图的话其实整个来说简而言如果提炼点的话它的整个的思路或者整个一个设计的思路是这么一个逻辑首先它会它的车型建模它会建模它建模以后呢这是一个大众的一个 MQP 平台的一个方案就是它会把它车型分成不可变部分和可变部分可变部分就是通常所说的动力总成就是它的发动机 底盘一遍速箱很多车型全部共享它你没有必要车型不同对吧它可能是在娱乐多媒体或者是其它的做电 空调等一系列舒适型的东西不一样外型不一样对吧其他的东西是Core 是一样的下面不可变成平台的一部分对吧然后上面可变成就是这些它做到了关注点分离就车型研发工程是基于同样的平台可以快速生产出不同的车型所以它建了模以后就做关注点分离紧接着它可以按照这个模块化去做SOP就是标准的操作研发路径对吧去生产它去建它的供应链然后哪些厂家按照这个模型生产出来的东西我可以在对应的这个生产线里面做组装对吧然后再提供一套最短的标准的制造特别是在制造环节生产制造运萎环节是一样的然后我们再看我们以封填的它大概是从2015年开始启动平台化战略的你看它的TNGA缩写的意思就是说就是封填新全球架构它其实建了一个车的模型这模型就是这么一个细致细节我们不了但是它因为去做了汽车铃的平台工程后它实现了一个特别好的效果整个以第二张图一立的2015年以岌岌2020年这段时间包括后面的车型你会发现它实现了一个很强大的一个收益首先它可以保证它的A型车D型车甚至SUV用的是同一个平台也就是同一个生产线可以生产出来然后它可以去跨平台生产比方说它的斯巴鲁它的封填一气的然后它的高端一点的一个SARS可以在一条生产线上生产出来所以说这个东西对它的构建的成本以及它的研发效率新车型的研发效率会提升很大就像那换壳嘛不断的换壳然后其实在做这平台化它并不是一个很创新的事它是一个随着汽车工业的积累一直在做这个事情从国内来说国外来说都有很多厂商在跟进其实我想说的其实在汽车领域这就是一个汽车平台就是一个平台工程的一个实践是比较好理解的回到我们的软件工程或者是我们云原生领域现在目前我们所处的一个情况是什么情况呢首先我们从回顾过去20年的一个发展我们简单说一下首先技术或者工具对于开发者所暴露的是越来越多了对吧 技术工具技术是发生很大的变化特别是2015年以后也就是云原生开始加速的时候对吧然后第二个就说因为工具暴露的越多也就是人的能力也负能的越强它需要承担的职责也越来越多从最早期的可能只负的coding或者部分的比如说投产对吧但运萎它基本不管后面到现在是全生命周期工程师什么都管对吧然后整个技术这个设计发展很大变化特别是2015年以后然后应用加购从从单体到短暂的SOV化以后然后再到不断的分布式的微服务化以后这个带来的直接一句话工程师需要操心的事越多需要学的掌握的事越多然后那么对于工程师的认知负贷会越重那么2015年以后其实有几个比较典型的事情发生了就说有些标准开始逐步的形成了第一个就是就是容器变成了一个标准的交付戒指然后微服务变成了相对来说目前比较标准的一个运用业务运用的一个标准的价格实践然后kbox变成了运用的一个资源管理的一个标准然后ICC也变成了一个自动化的一个标准实践然后社区也在2015年以后特别是CNCF比较蓬勃的在发展这些东西所带来的它会进一步加速这个复杂性复杂性然后我们看一下Dora去年发布了一个关于DevOps的一个报告就整个企业上云可以看到就是从中间疫情这一年2020年没有发布但是2019年到现在为止可以看第一列没有上云的企业已经从整整的40%降到了10.5%也就是大部分的企业已经上云了而昭壮银行也是在基本上同步的在三年花了三年去整体去上云完成了上云然后共有云增长的少一点混合云和私有云增长多一点那么对于我们昭壮银行来说目前比较大挑战是什么呢再这么个大背景下就是两个的叠价第一就是昭壮银行的私有云的规模是大的然后第二就是说同时上云马上上云的目的是什么上云的目的是给云上的应用去负能马上就要启动云渊争转型那在刚才所提到的大背景下其实就出现了三个风险第一复杂度对于开发运维人员其实是越来越高了然后它带来的两个负面作用可能的负面作用就是说效能和系统的有下降的风险那么我们尝试在我们企业内部去做了相应的疏离就是说以当前我们的私有云环境我们的开发者他需要关注越来越多的东西我们做了一个疏离就是说很多云的复杂性如果去没有去面向应用开发者做相应的抽象以及简化的话规约的话它会暴露的细节很多复杂应用进入的我们从一个应用开发的从初始化到最终的配置部署以及运维观测等一系列做完的话不算技术语言它至少有60个门类我们统计了一下有60个门类的领域知识那么我按照我刚才的理解我刚才所说的理解我们其实是想通过平台工程在软件工程这个领域做相应的实现去解决这个复杂度标准化效能还有稳定性的问题简单说一下为什么要平台其实刚才我在讲汽车这个例子的时候其实已经有一定的参考性了其实这个平台工程如果真的能落地真的能落地它其实为了解决几个问题五个问题第一个首先是它是为了去减少大家的认知特别是产品团队就是业务团队开发团队降低复杂度第二个就是说保证系统或者产品的可用性以及它的任性第三个当这两个东西如果得到了环节以后第三个它自然它的研发效能交付效能就会加速同时它还能够满足比方说一些企业的安全合规特别是金融企业的安全合规可以标准到流程去解决这些e-show的风险还有就是说它能让整个成本以及生产力可能更加的会不会显现出来那么对于刚才我觉得立的是一个汽车的平台工程事件那么对于云原生的一个平台工程来说的话对吧它又是一个什么样的平台呢一个平台工程叫做平台因为平台在整个在云的领域非常泛化非常泛化它这个平台工程还是有专业的专业术语的意思首先它是集成了所有的应用开发者平台用户所需要的需求它是按需集成的然后它去把这些它提供一个一致性的体验给用户而不是说我在一个平台里面在不同的用到不同的能力的时候实际上它又是不同的体验不同的操作路径不同的使用方式那等于说还是一个套娃它不是一个套娃然后还有就是说它要去把外部的这些按需的能力管理这些能力服务化通过开发门户或者是一些模板或者VPI的方式提供给用户当然我想起想说一下然后这个平台有什么特点呢大概有六个方面的特点如果我们再细化一化第一就是说它一定是平台作为产品的方式来去运作其实很多时候做平台工程的时候会做工具类的团队来说它有一种什么就是我做成什么样子你就怎么用它没有有效的把技术设计的能力有效的按需的提供给应用开发者不是按需的它是你做的将去策我用然后还有就是说它追求用户体验这用户体验更多的是体现在一致性的而不是说它有多么的UI多么的好看第三个就是说它提供自服物但自服物是有一个golden passgolden pass就是我们所说SOP它做一个事它有一个标准操作路径反正按这个路径操作出来这个应用就能创建出来按这个标准路径创造出来操作出来这个应用就能部署出来当问题发生的时候按这个操作路径去操作那就能把问题给找到对吧这就是操作路径你想想生产线上的工人都是蓝领其实我没有没有任何的意思我只是说其实汽车作为一个相对精密的工业品对吧但是在组装它的生产线的人实际上它是不需要了解它的detail也能去很好的把它装备起来对吧对吧那我认为其实我的理解我理解汽车的生产过程本质上就是应用的部署过程它也是应用的生产过程对吧然后第三个就说它减轻的是复杂度降低认知的一些障碍还有是这个平台一定不是一个销它是一个不是个壳它是一个壳扩展的一个壳插拔的这么一个架构可以被随着它业务发展它不断的去聚合它改变它重组它然后自动完成生机然后安全是默认就具备的然后这个平台又谁建的由平台团队来建平台团队通过去把基础折斥按照平台用户的所需去提供给他们那么在招装银行的这个实践里面重点如果是这个实践里面重点就是三个字三个关键字一个是标准化一个是基于标准化做的SOP还有就是说建这么一个平台它一定涉及到和现有平台的集成那么可能有现行的组织架构会影响到当前的平台对它的影响产生副作用那么我们去做标准化主要是从首先我刚才还是参考刚刚的那种方式我们建模我们选取了OEM作为我们的应用模型去对我们的应用来建模建模建两个方面或者建几个方面建两个方面首先我们去用OEM去提供标准的云能力的供给方式供给模式然后这样平台团队就用这个方式这个spec去供给它的云能力然后主要它就供给两个方面第一我的应用我把看的一个汽车它有什么哪些不建组成的那就是有哪些工作负载组成的那每个工作负载有什么样的自动化能力呢那就是它除了定义工作负载还要定义自己工作负载所匹配的自动化能力然后最终就实现这个定义对吧也就是三步那么右侧是一个例子首先这是一个我们的其中一个比较典型的工作负载就是APS2用于提供REST API的层期的访问的后端服务的应用的这么一种工作负载它我举个例子这个工作负载是比较常见的那然后我要定义它的我这是我的右侧式的对应的定义它是基于KBS Diplomint的一层封装然后呢这么一个工作负载我定义了以后它肯定要有对应的能力自动化能力比方说它的访问能力比方说它的什么时候应该开放我墙对吧在银行里面可能什么时候应该去哪些应用应该在哪个时间段提供DMZ访问对吧都是有严格要求的后来之后我就按照定义剧实现对应Ctrl这样就完成了我的这个建模第二个建了模我们建了哪些模型目前我们我们做这些建模的目的是为了归约就是说不需要有那么多的工作负载其实就能满足像招商银行这样的这样的企业它的业务应用开发就够了我们定义了十种工作负载目前的工作负载应该是不该满足90%的这种应用开发诉求我们按照刚才那种方式首先我们提供前端工作负载就是开发人员只需要选择这工作负载不管用什么语言实现它按照这工作负载就能创建出来然后配置它去怎么运为它观测它 监控它对吧然后Web Service刚才我提到就是API Server然后还有就是API网关比较典型的这种网关价格的工作负载就是一次性的任务或者是周性的任务就用Task然后Fast也集成进来就是说有把Surface的一些能力也通过这种方式抽象到我们这个模型面来还有Flink你要做还有做StickFile然后StickFile就是做一些静态文件加载的有CDN加速的对吧它就是静态文件有图片对吧还有就是把MyCircleOracle给封装进来然后Web ServiceWeb Service就是说去满足这些虚计的应用但是我们把它当作一个类容器的方式在管理所以说你可以看我们的工作负载其实是已经已经打平了从从虚计容器到Fast以及典型的一些数据处理还有DB这样已经满足我们的诉求了然后接着我们刚刚说第二步去把对应的能力变成相应的增光灵定义出来然后放进去这边包括什么呢包括应用的创建创建以后我要配置管理配置管理然后我要去回头发布蓝力发布接着我运行起来以后我要去进行谈应声缩然后跑起来以后我要去观测它对吧观测起来以后我要去看它当前的运行是架构因为基于这个观测我们是可以去分析出它的链路关系指标还有事件还有日治对吧我们是可以去观测它然后如果出了问题我们得进行诊断最后我们得进行天仪然后微服治理我们有了这两个一个标准话有我们就可以做SOP了对吧跟我们刚才那个例子一样的怎么做SOP就是用户在左侧右侧就是最右端就是它的那个应用它只要按照刚才那个工作负载那怎么去操作就可以把这个应用给管理起来首先它可以去按需的去选择对应的工作负载by type对吧然后去配置以后它的所有的配置都是diversion的然后最终发布有策略的有灰度的有滚动的有编排的最终它的跑起来Cost的有弹性的对吧按照我们的弹性去配就行了就这么几种配的方式就满足到诉求然后最终观测起来我们也定义了标准的输出标准的输出所谓输出就是指标Trace还有日制然后最终出了问题它就会去诊断或者是Performance Tuning然后它的安全描述什么时候什么人在什么时间能够去访问操作某一个对象发布或者做运萎变更我们的IMSecurity Policy放在里面然后最终的话那这个平台是个全新的平台对吧最终平台全新平台赵令恒也有很多遗产的工具链带那怎么能把那些工具跑着的应用能够不中断无缝的切到这个平台上来还要做应用的纳管要自动化纳管也就是说有了这么一个SOP以后它就可以把这个运用给管起来了然后整体的参考价购大概什么样子呢这个样子左侧这个是CNC服务就是平台工程白皮书里面提到的一种参考价购这个参考价购大概是今年四五月份发布的但是我们这个平台是在去年大概十一月份就开始已经做Beta测试了所以说事后来看其实他们的参考价是高度的相似的首先向上市暴露给通过GUI或者是Open API暴露给用户平台用户团队中间的话提供对应的文档然后命令我们没有提供命令API或者是项目环境模板给到或者是工作负载给到对应的用户那么底层这一平台能力它难过了哪些呢难过了首先它要去资源管理环境管理对吧它要抽象掉计算存储数据网络还有一些中间键比较DB之类的然后右侧的话有健全IM security然后这边有工作负载的config然后还有对应的它把CI的一部分放进来了对吧然后还有对应的代码git自动化的构建测试发布以及对应的这些观测工作负载那我们右侧也是这样的左侧的就是工作负载右侧是用户特性下面通过OEM作为CoverVilla作为它的平台的引擎下面去屏蔽掉所有的云的能力以及用户的能力整个体系也是这样的还有一个东西在实践的时候是不得不考虑的甚至它如果没考虑会产生副作用的首先就是我们也工作那么多年肯定也知道如果我们再做一个产品这产品和当前组织的架构是不匹配的很有可能这个产品会做黄料对吧它可能因为非技术的原因做黄料所以说我们在做这个产品的时候平台化的就考虑了这个事情必须要去符合科学就是要满足康为定律那么满足康为定律逻辑是什么呢首先我们我们现在平台已经变成了所有的所有这些平台我们根据这个产品我们目标形态去调整了逻辑上调整了我们都组织架构首先我们现在最右侧的是原始的组织架构有技术设施团队EFOROS有SRE有Security还有一些流程的团队对吧但我们要做到这一平台以后它这些能都会变成平台能力提供给上面的用户的时候不是以工作负载就是以工作负载的用为自换能力那么我们就要去把它调成和我们这个希望的产品平台相对统一的这么一种架构然后我们这也有一种比较好的工程实践就叫做反康威定律时间我们现在目前团队已经和行内的其他团队已经形成了这么一种主子结构的协作了所以这然后最后我们因为这个平台首先我们这个平台从最初的开始应该是在2021年开始做了以后然后我们是在去年10月开始做Beta内部今年3月份开始推广不到半年时间它产生了几下收益第一整个应用的管理周期从几个小时缩短了几十个分钟也就是应用管理旅程在缩短那么我们的参考对象就是一个新手去用我们这个平台和对比老的平台Rookie是新手菜鸟他用这个可以去在整个研发的实效上缩短很多第二就是说遗产工具开始逐步按照我们刚才所说的反抗危定律的一种方式来去做相应的Reorg这是对于复杂度的提升第二就是说我们的Office Time的下降MTDR也下降还有在效能上就说我们推广我是觉得这个数据对于这平台的异用性或者说它的意义来说也是比较有参考意义的说那么多赵正阳那么多云的应用跑带现遗产的系统里面我们只用了半年时间生产环境在基本上没有发生应该是基本上就没有发生过生产事件的情况下直接把63%的生产直接就自动化到纳管到这个新的平台用户直接切到新平台就用了然后而且是不到半年不到半年然后这速度是非常快的然后整体的研发覆盖了5500个研发就基本上行内的大部分研发已经开始用这平台了所以说它几乎平台它建的过其实也起到了一个快速平原生转型的效果我们在整个平台里面形成了一个能力级就是这个能力级面我们知道我们的开发者知道每种工作负载能具备什么样的能力有哪些工作负载同时我们的平台团队也知道哪些工作负载缺少着什么能力这样的话它就可以知道哪些工作负载它的能力半径我们也知道怎么建这个产品接下来的第二部分就是交给那个庆国他来讲一下QVLA怎么去带出的作为平台工人的引擎好 谢谢大家感谢加航的分享然后招商银行一直就是QVLA社区非常重要的合作伙伴对吧加航本身也是QVLA社区的Mantino之一然后从刚才的分享中我们可以看到招航能够在这么短期的时间之类把企业平台从最初的搭建到目前那么大的规模的使用对其实跟社区的紧密合作是分不开的然后就在去年的时候我其实也统接过一个数字就是在QVLA的社区里面金融相关年的用户特别的多其实为什么最后我们也总结出为什么呢是因为这一类的行业的用户在做云元身转型其实是跨越了一个中间阶段就是容器化或者让我们的业务研发者一定要去学习大量的云元身技术的一个阶段转入了直接面向一个未来的平台化的这样的一个过程对由于那个时间的关系我今天的分享主要就跟大家聊一个点QVLA的这样的一个项目是如何作为一个云元身对类的建设平台的这样的一个核心引擎以及如何模块化的进行扩展出丰富的面向不同企业诉求的这样的一个平台对吧然后也简单再自我介绍一下我是来自阿里云智能然后之前多年一直在云元身领域然后目前也是在整个平台工程和可观测整个相关的方向对我今天的演讲的话会先简单的介绍一下QVLA项目在可扩展方面是怎么样去设计的以及怎么样做的然后会给大家带来一个完整的DEMO视频大概10分钟可以看到从零怎么建设起一个相对功能丰富的企业开发者平台简单的介绍一下刚才加上你提到了核心的有一个抽象就是OM的一个设计对然后这里的话其实就是简单的介绍一下在OM中是如何把我们各种各样的云元身能力变成原子的能力提供给上方的开发者直接选用的对吧其实这里就必然会有屏蔽屏蔽什么呢就屏蔽复杂性在CNCF的那么多的核心能力上我们去选择一些特别是对于平台的构造者来说他都需要去做选择对吧选择什么样的一个能力提供给我们的开发者以及对于开发者他需要去学习到哪些概念或者是怎么样的一个使用方式这就是平台扩展核心的一个体系这里举了一个例子就是我们要去交付一个黑暗包的这样的一个置品对 对于一个守护式的黑暗包交付在目前社区里面有两个常见的使用方案比如ARGO CD和FLUG CD他们都实现了守护式的黑暗包的一个交付过程对 那这两个选择我们只需要直接把它交给我们的平台使用者那当然是复杂的对吧而且要去学习它大量的相关领域知识对当我们去通过OM模型去做了一层抽象以后我们发现最前面的这样一个YAM描述如果把它UI化以后它其实面向最终使用者的时候它只需要感受到了几个字段就好了你要去交付哪一个卡的包像我们版本交付到哪里对 就这样一个简单的概念同理这样的事情在很多的领域里面都是一模一样的这样的一个呈现方式在整个QVNR的架构中分为怎么几个部分第一个部分就是它的核心的引擎去demo的时候就可以看到它的安装非常的简单就是一个核心的业务服务存单了整个的一个在KBS的环境中工作的这样的一个形态能够把OM的整个模型插一化的能力统一地进行驱动守护和相关的交付的动作在上面就有这么几种扩展的模式对吧我们基于云元生社区所以所有KBS的相关的CRD都是我们可利用的技术或者利用的资源我们不是所有的业务都需要去写CRD不是所有的能力都能去包装出一个控制器对 所以在API的层面上QVNR也提供了面向所有Restful API直接可以拉管到以IC的形式来描述资源的形态一会我们demo中可以看到这样的形式能够帮助API的扩展同理往上看一点有了API的扩展还不够我们要去做打造的是平台所以在UI的层面上也提供相应的框架去帮助我们打造用户体验对然后从右方我们可以看到所有的云元生的能力正在产生的已经有的其实都可以被我们去选择去使用但是它的差异在最终平台使用策来说是完全屏蔽掉的对就简单的介绍一下然后我就给予一个demo的视频大家可以看一下整个一个基于QBVR这样的项目去搭建一个企业内部的应用管理平台会是大概是什么一个过程对然后会介绍这个视频的播放过程中然后给大家做一个简单的解读在开始之前其实这里会先准备了一个KBUS环境这个就我们就过多的说了然后这个也是社区非常成熟的方案了对吧OK然后当第一个步骤就是整个Velacore引擎的安装这个安装对于一个开源项目来说当然是需要让它极度简单对所以对于Velacore一条命令可以完成整个Velacore引擎的安装对然后等它安装完成以后我们会发现在这个集群中会多了两个服务对一个服务就是搞了Velacore的整个控制器核心引擎对于单个核心引擎的能够驱动的应用量是庞大的然后当然同时它也可以很像的伸缩完了另外一个服务就是一个面向于多起群资源调度的集群网关能够帮助我们把底层的计算资源各种形态的计算资源能够打通这一点这里就不做了多多多分享了就有了这个引擎以后我们第二步可能需要搭建一个dashboard或者UI平台对 这就是一个插件了这是我们装的第一个模块化组件可以看到它安装命令它安装起来以后会拉起了我们整个UI的一个平台当然这个是一个社区的一个实现对于我们目前社区比较多的用户都是基于这样的一个实现拿去再做一下自己的一个修改或者再二次的扩展形成一个自己的平台一或者说像招行这种可能就直接定义自己的UI平台了好 有了这样一个框架以后就是基于刚才的整个核心引擎以及安装了第1个插件就是我们的整个dashboard就有了一个最基础的框这个基础的框目前已经具备了交付一些基础的工作负载的能力对 就比如说KBS的基础工作负载那在这个时候肯定还得学习一个容器的知识对吧但我们大多数公司可能就是交付一些甲网应用交付前段应用就跟刚才招行提到的工作负载为一所以第一步我们来对它进行扩展我们这时候我们需要交付的甲网应用对于开发者来说他可能只会感知几个概念我有一个价包或者挖包我需要去设置GVM的参数我需要去设置一下GTK版本就够了他可能不需要去感知进向导渴进向感知环境面量感知各种各样的启动命令等等这些参数的概念不需要他只需要去提供对应的价包 挖包以及GVM参数就可以把这个应用部署起来刚前的整个部署它就是在执行相应的工作流这是一个最基础的然后我们可以看一下这样一个组建的配置的参数就是GTK版本然后副本数和对应的挖包的地址这种可以结合的CI平台就可以自动的把相关的制品打过来就可以完成这样的一个部署就没有过多其他的参数了当然也可以设置一些高级的参数这就是制定义了第一个制定义的工作负载能够部署伽网的应用概念是非常简单的但同理它的整个管理过程是一模一样的都是可以相同的形式进行管控能够看到它对应的资源状态这个对于去做可安测和debug的同时就非常的关键了同时可以体链它的一些工作的副本对吧直接查看那些副本的信息这就是从观测的维度来查询对然后这样的一个托普其实里面可以看到这里部署的一个微服务整个微服务的一些相关的资源但这些资源在用户及创业应用和部署应用都是无资感知的对然后这里也可以通过提供了一个命令去访问这样的一个应用这样其实就是一个本地的玩法然后同理当然你是在服务器环境或者正式的环境的话可以配置相应的域名对对这样的一个应用就部署完成了好然后我们接下来的下一个步骤对吧我们部署玩一个夹板的应用可能这时候需要部署一个前端的应用前端应用的特点是什么只是一个GS打包玩的一个踏包对吧这样的一个服务我需要把它用中间键拉起来那对于前端的开发者来说他可能就只知道我打包好了一个包给你了我怎么部署其他的服务端领域这事我就没了对所以对于一个前端应用我们给开发者暴露的配置的参数就可能只有踏包的地址对吧然后一些是否要进行压缩是否要进行访问日治的开启等等这样的一些可刷参数这里的整个配置表单都是基于背后的参数动态生成的对然后也可以有些高级的策略就是设置一下一些进程数和一些其他的变量等等对这就是一个前端应用的部署同理这样的应用跑起来以后这也是比较简单工作流只有一个步骤我把它拉起来副本可以看到刚才的加碼应用的工作负载和现在前端应用的工作负载在管理流程上是完全一致的对这也是从开发者体验上来保持它的一致性对同时把它跑起来以后我们要去访问它也同理跟刚才的加碼前端应用是类似的可以通过相关的当本地的模式的话直接Port Forward把端口端印设出来就可以去直接访问到这样一个前端的一个计算器的一个应用对其实扩展工作负载就跟刚才赵航提到的一样就可以我们都是通过配置的方式不需要写相关的编译代码都是Q这样一个语言这个我就不多想述了对然后大家可以去关注相应的文档然后有了部署的应用以后下一步怎么办我们要可观测试对所以那我们就去搭建相应的可观测试设施这里就有一系列的插线去提供相关的能力每一个插线的安装都提供了对应的能力比如第一个安装了插线是Flexed对吧它同时提供了Gate Offs的能力安装Heavenball的能力这些能力就会被应用到下一次的其他应用的部署过程中它的管理模式完全都是一致的平台化对然后对于Flexed的应用可以看到它部署了大量的资源以及相应的模块化对于同一个应用来说它就是一个业务单元这个业务单元里面可能会有多个业务组件去完成相应的事情对吧然后这里都会统一的去把它的相应的工作负载的副本抓出来可以去做观测对这个的背后它是一个Heavenball的部署刚才的两个前端应用加上应用它就背后就不是Heavenball对但这些的差异对于开发者来说不需要关注的对然后第二个安装的插件是提供了Rist4 API的面向资源的包装比如说我们已有的能力比如说我们想像果然发达里面去创建一个大盘这种就是一个调用Rist4的接口的这样一个事情会包装成我们的一个工作负载或者包装成有我们的trade的能力这个能力会被后面的相关的我们直接会用到对 我们可以看到当前部署了一个提供客观测的纯属的一个插件对吧这个插件它也有N个副本同时这里就有工作流有更多的事情了因为要控制它不同组建部署的顺序以及要去安装一些其他相关连的形态所以我们可以看到有工作流再去控制它整个流程来完成相应的交付所以不同的工作负载不同的能力它的交互使用上是一不一样的然后工作流可以去做这样流程式的一个控制对这就是完成了一个客观测就是插件的一个纯属测的一个服务的部署对吧这样的一个就是它作为一个系统的应用 系统级别的应用 为这个平台提供客观测的能力客观测数据存储的能力然后以集会自动化的把相应的数据源进行向平台注册对它去安装一个Granfana的插件的时候它相应的大盘数据源就已经自动化的可以完成配置从这里可以看到这样的一个普伦比休斯的规范的一个服务就已经注册完成了对然后下面我们会去部署进行一个插件因为我们要去抓KBS集群的指标源数据对所以就部署了这样的一个社区一个插件这个插件它其实也是一个最基础的一个普属的模式但是它有一个特殊的点就是配置了一个Trade这个Trade就是由刚才安装的air-down提供的在这里可以配置它的指标采集的相关的信息这种指标采集的配置一旦配置完成的话这个组件提供的Metric信息就会被安装的可观测系统说自动化采集最后呢拉起一个Granfana的一个可视画面板在这可视画面板拉起来以后它同时会创建大量的已经类似在里面的大盘这些都是由air-down描述的也就是使用到了刚才所扩展出来的能力API的自动化调用的那些大盘以及数据员自动化注册以及相关的配置的交换都是由前面的air-down提供的能力后面的air-down会直接使用到最后可以看到这个工作流它就会先把Granfana部署出来然后去注册对应的数据员注册对应的大盘然后完了把Granfana的服务注到整个平台系统中完成整个平台能力的一个扩展最后我们可以来访问一下这个Granfana大盘是否可以看到整个数据就已经进去了然后我们可以看到这个Granfana大盘里面已经会有一些默认的盘就是由刚才Granfana的应用里面类似去交付了整个大盘的形态这些大盘也是一个工作负载所以都是由刚才所说的插件提供的能力但是数据也就刚才已经安装的插件就完成了采集所以这里就提供了相关的提供了一些默认的大盘所以这些能力的掩饰其实在不同的业务系统中都是类似的都可以直接去附用同时在这里面也可以明确地观测到一些异用的大盘等等然后这样的一个掩饰过程所给大家想体现的一个点就是基于一个非常小的微类盒我们基于一个Aedan的扩展生态的一个体系它都是标准化的模块就跟刚才所提到的造车一样我们每一个功能每一个能力都是在整个平台化的一个里面的一个小体小块我们需要它的时候把它完成这样的一个扩展这是平台团队可以去做的当然它也可以根据自己的需求去定义自己的工作负载定义自己的一些trade的能力等等整个集成在这样的一个门户平台中这个门户平台里面的每一块其实都可以通过GS的Aedan整个Aedan生态里面可以如何包含前端扩展可以直接加载对应的GS提供相应的交互界面所以整体的扩展能力是非常的强的这也是Cubevilla作为平台工程这样的一个引擎的这样的一个定位的存在所给带来带来的这些基础的能力这里我们可以看到刚才扩展的出来的几个工作负载在这里都显示出来了以及加瓦的瓦包以及工作负载一旦扩展背后就对应的我们交互式的表达怎么去生成的对就在这里有一个简单的展示对 好这个视频就结束了所以好 没有对所以今天有花这样的一个短暂的时间给大家做了一个这样一个demo视频的展示其实大家今天晚上回去可能花个半小时就可以去复刻我刚才所说这样的一个过程这就是因为整个的一个扩展标准化 模块化所带来的这样的一个优势我今天分享就到那里看看大家有没有什么问题