00:03
Hello,大家好,非常欢迎大家前来参家TSF系列直播活动,呃,我们这一期系列直播是为了让用户更好的使用微服务平台TSF呃,与大家分享产品的最新功能,使用场景以及我们的实操教程。本期第一期直播我们将为大家分享TSF最新发布的发布单以及轻量化部署的功能特性啊,我们提供多种的这种部署方式,方便用户以更原生的方式去部署TSF的应用,提高提高大家的发布效率。呃,首先我们有请今天的第一位分享嘉宾韩冰,然后来给大家去做分享啊,在分享的过程当中,如果您有什么问题的话,也可以扫描我们直播平台右侧的一个现场互动的二维码,然后写下你的问题跟我们讲师进行互动啊,那有请第一位讲师开始他的分享。
01:06
嗯,Hello,大家好,我是韩冰,嗯嗯,感谢大家来参加TSF的系列直播,这次分享的是嗯,K8原生部署,还有呃发布计划两个新的功能,呃展示还有DEMO。然后然后今天嗯主要分为四部分,因为今天分享的两个新的功能都是跟嗯部署相关的呃能力,所以第一部分我会先来简单介绍一下TS当前的部署功能,然后第二部分我会来呃介绍一下新的这个K8S原生部署的功能,以及做一个简单的DEMO演示,然后第三部分会交给小明与小明来做嗯发布计划的嗯介绍和演示,然后最后我们再一起去回答大家的问题。然后开始,嗯,第一部分。
02:00
嗯,先看一下当前的TSF的部署能力,可以看到呃主要是通过在界界面上面通过呃提交表单的方式来去做部署,比如这里需要去选择镜像,然后去选择数据检呃环境变量以及资源配置等等。嗯,填完这些信息之后,就可以在页面上面提交到呃TS后台,然后我们会去呃触发部署。嗯,比如说对于容器来说,就是呃,去更新KS的department,对于虚拟机我们会自己去进行一个部署的流程。嗯。然后嗯,可以可以看一下这个图,这个图就是呃虚机的一个部署的一个简单的截图,可以看到跟刚刚容器的那个呃截图是非常像的,然后我们来简单总结一下呃当前TSF的部署功能,呃优点和缺点优点是第一个是呃我们同时支持了虚机和容器,这样子的话用户呃。
03:09
嗯,的操作上面其实是形成一个统一的一个体验,然后嗯,第二个方面是因为是界界面操作,所以用户使用成本会低一点,就是只要按照界面上面的引导就可以完成部署。然后呃也会减少用户的出错,用户体验上会比较好一点,但是他的呃也有一些缺点,比如说一次只能部署一个,你提交一个嗯表单只能部署一个,部署只能部署部署一个应用。然后第二点就是它的部署策略比较单一,就是呃只支持我们当前呃有的一些部署策略,比如说当前有滚动部署以及快速更新这两种,但如果你想去呃。用更加高级,更加复杂一点的部署策略的话,当前这种就是这种界面上的这种表单,这种部署还是不支持,然后另外就一个就是特别对于容容器来讲的话,因为我们知道比如说呃TSF的容器是底层是基于KS的,然后KS它有呃非常多的参数,呃可以可以去填,但是因为我们在界面上边其实可以看到我们能够支持的呃参数是有限的,就是相当于我们支持哪些用户就可以使用哪些,我们不支持的用户就用不了。
04:33
啊,然后嗯,今天的两个,嗯,两个新的功能的分享,主要也是为了去解决当前的这些问题。接下来看,呃。嗯,这个K8S原生部署这个新的功能。嗯,八原生部署。他想要解决的问题主要就是呃,刚刚刚刚提到那些,然后我们的方式是呃,想尽量让客户通过雅来去部署。
05:06
就更加用原生,然后这样会有很多好处,比如说呃,因为你是提交一个ya给K8S,然后那KS,呃里边可以用的工具就都可以用,比如说Co CL,或者是customize,或者是一些更加复杂的一些工具,然后另外就是另外是提交加盟给T8,所以你可以批量提交多个。就可以实现批量部署,非常容易的去实现批量部署。然后就是可以通过CD的工具,比如说刚刚的阿狗或者是其他的呃持续部署的工具,可以去实现更加复杂的部署策略,然后呃其实当前呃TSF,如果你用TSF法也是可以去实现一些呃CD这种持续部署,只是呃在当前的情况下,你需要去调呃TSF的云API来去实现,但是呃如果我们可以让用户呃直接通过呃提交压M给K8S的话,那用户就不需要去熟悉TSS的云PI,他只需要去熟悉KK8S的压M就好了。
06:17
然后另外就是嗯嗯,我们希望通过压模方式能够让用户去提交PSF界面上不支持的一些字段,比如说tolerance to。然后另外一个问题就是嗯,就是如果你在TSF呃界面上边去部署呃一个容器的一个应用之后,那它会呃,TM会修改你的那个deploy,然后会使你的deploy变得呃非常的复杂,然后你后边再去想自己修改这个lo的话,可以说是非常难的。比如说嗯,这个是一个当你经过T呃部署之后产生的一个压模,可以看到它有非常大量的TSF自己的一些信息,而这些信息呃其实是客户完全不需要知道的。
07:12
那我们嗯,其实简单总结起来就是我们希望实现的效果就是用户他只需要提交department给KS,然后后边的事情他就不需要去操心了,然后KS再去跟TSF去通信,然后TSF去帮你完成实际的一个呃部署。嗯,那我后边会介绍通过压木来部署这样一个流程,呃,主要分为其实还体检分为两步,第一步是呃,一个开始必须要对集群进行初始化。就在界面上这个地方就可以初始化,然后初始化之后你就可以呃,提交你的department的。到K8S,然后之后的话,呃,K8S会通过web调用到TSF,然后TSF去帮你去创建应用,还有创建部署组,呃,这些都不需要在界面上面去去完成。
08:15
然后比如说嗯,今天的DEMO我们会来演示一个非常简单的一个应用的一个部署,然后看一下它的一个整体的流程是怎么样。然后可以看到,嗯,就是这个是一个集群的一个页面,如果是呃,QS原生部署的话,我们需要先点一下开始使用。网络可能有点问题。然后点完之后,嗯,然后。就会完成这个初初始化的操作,然后我们呃就可以在呃通过请教压给K8S的方式来进行,然后另外一个其实是界面部署,界面部署其实也可以完成类似的操作,我会之后再讲一下。
09:04
然后比如说,嗯,当前我们有。有一个这样的一个压模,它非常简单,它是一个department,然后有基本的一些,呃。嗯,Department的信息,但是这里边完全没有呃,TSF的任何的内容。然后我们如果想部署它的话,呃需要先进行一些操作,比如说呃首首先的一个操作就是呃当前我们的实现默认的话,呃一个命名空KS命名空间下边是以白名单的机制,就是如果你呃虽然完成了刚刚那个初始化的操作,但是如果你呃在应用空间下边去呃创建或者更新department的时候,我们是不会帮你去注入的,需要你自己去呃把这个开关给打开,然后打开的方式其实就是在呃命运空间里边去加一个这样的一个label。
10:08
就是inject,然后是表示的就是是一个呃,白名单的方式。然后。然后我们来去。提交一下这个,呃,那个空间啊,我之前已经提交过了,然后嗯,他已经更新好,更新好了之后。嗯,我们先来去,我们先来部署一下刚刚的这个。嗯,看一下会是怎么样的。2.0就是最原始的。嗯,可以看到这个provider,这个consumer先忽略,因为是呃,我之前布置好,待会儿可以有有一个地方展示,然后provider的话,嗯,可以看到它已经提起来了,但是嗯,它是会有问题的,是因为这里并没有。
11:08
就是如果你用呃TSFSDK去部署的话,他呃TSFSDK是需要一些TSF的内容的一些注入,但是这里没有,所以他肯定是会报错的,也就是说呃现在部署的这个。这个服务它并没有被正确的导入到呃TSF里来,然后我们去看呃现在的应用,然后我搜了这个SFDEMO,就跟这个名字一样的,然后并并没有搜到,然后包括不如呃包括不组这里也是没有的,然后呃服务这里,这里只有consumer,但是并没有provider。然后我们现在就是想呃,通过呃KS原生部署,然后把它部署起来,并且能够在控制台上的呃应用以及步组这里能够导入进来。
12:03
那我们需要做的其实就是,呃。看一下新的这个这个这方面新的这个压,它主要改动的只有这几行,一个是我加了一个新的level。表示inject是enable,就表示我在当前的命中间下,我需要去注入呃,注入TSF的信息,然后另外就是我,呃,我限制了它的那个应用的类型是普通应用,就是TSFSDK的这种方式。然后其他的,嗯,可以看到跟之前的是一样的,我们可以为例来看一下。就就这三行的改动,然后我现在把它给呃提交到。Last。现在已经提交好了。
13:00
然后嗯,可以看到新的这个。嗯,报已经记下来了,并且。它已经在正常运行。然后可以看一下他的日志。可以看到它已经正常启动了。就是说我们嗯,只是通过刚刚的那个把雅MTK8就完成了一个呃,TSF,嗯,普通应用的一个部署。然后我们再看一下,呃,刷新一下应用。发现他已经呃创建好了,帮我们创建出来,然后再刷一下这个呃部署组,然后这个这个也有。然后另外我们可以看一下呃,服务治理。
14:00
因为服务这里是最终是不是,嗯,注册上来会在这里展示他的信息,然后也有,并且嗯,我们可以点进去看一下他的一些。具体的一些一些东西。嗯,可以看到这个是依赖拓,因为呃在这个DEMO里面,Consumer会呃不断的去向去发起请求。然后所以这里是可以看到它的一个,呃。依赖top刷新了,看看有没有那个。嗯,监控可能稍微等一下。稍等一下,然后我们可以嗯,自己来调一下这个,呃,这个里边的的接口。比如说这里,我们可以在页面上面去调试,然后。呃,去发发一个请求。
15:01
然后也呃,收到了这个,呃。他的响应。呃,同时我们可以看到这里,呃监控这里已经有了一些,呃,调用相关的一些监控。旺财码错误率等等。然后嗯,在我下一步之前,我想先来再多讲一下,嗯,刚刚的那个亚盟就是嗯,我们可以发现这个部署,部署者的名字其实是跟这个department的名字是一样的,就是说我们会用,嗯,嗯。KS就是提交给KS的这个department的名字来作为部署总的名字,然后应用的名字,默认情况下,我们也会用这个department的名字来作为应用的名字。如果呃分组和应用都没有的话,那我们就创建出来,但如果已经存在了,我们会尽量去做关联。
16:17
然后我们其实可以看一下。嗯,再来看一下运行时的一个状态,比如说我来看一下。嗯,就是新部署的这个,呃。Development它的一个,呃,在K8里边,里面毛是怎么样的。然后看一下他的SPA。先看一下它,嗯,Label,其实可以看到已经是多了一些level,这些level都是通过TS呃入进来的,比如说platform以及q cloud APP name等等。然后我们来看一下它的SPASPA这呃,有一些是八默认的,就。
17:07
我要去关注,然后我们做重点来关注,嗯,Employment里边container的一些信息,可以看到这个信息其实跟我们呃,提交给K8S的其实是几乎是一样的,就是说呃。通过KS原生部署的方式去部署一个department,呃到KS里边之后,就是对于这个department我们是基本上不会做修改,只会只会修改刚刚像呃一些label或者是一些一些必要的一些字段,但是对于这个呃,真正pod里面的信息,在deploy里面我们就不会修改那。那嗯,就是为什么它还是起作用了,因为你知道我们要去注入一些烟V对吧,包括像看这里呃容器,其实我们发现是有两个容器在运行,而不是我们刚刚看到只有一个容器,那我们可以看一下这个呃,Pod。
18:13
抱。嗯,我们同样来看一下,看SPA可以看到,呃,这里这个po的压其实已经非常复杂它,呃,就像我刚刚在PPT里面展示的一样,有很多TS的信息,比如说呃,环境变量。是吧,有,有比如说token这种非常重要的一些环境变量。然后有呃卷的一些挂载,就是TSF1很多功能是依赖于这些word的挂载,比如说呃呃监控,或者是一些调用链日志等等。然后另外可以注意到这里有多了一个新的contain,然后这个contain是a contain a主要是呃需要来完成一些跟日志以及呃监控相关的一些功能。
19:11
然后发现呃A也被注入到这个pod的DEMO里面了,然后并且它有它的resource,或比如说这里可以注意一下它的呃request的CPU是100,然后limit是200,我们待会儿会呃修改一下来看看怎么去修改。然后这里展示完之后,我们来可以看一下,呃,下一个我们下一个想做的事情就是,嗯。就是,呃。假,假如说你想在一个应用里面去,嗯,不创建多个部署组。但是呃不组的名字,嗯是呃,Department名字是跟步组一样的,但是应用的名字怎么去指定,我们是通过education来去指定的,比如说呃,你想指定呃这个PROVIDE2的名字还是现DEMO provider,你就可以通过这样的方式来指定,并且可以通过来指定agent的一些参数。
20:16
然后呃,其他的我也做了一些修改,比如说这里的配改成二,就是现在想付出两个po,并且呃,我在这里加了一个呃,To to,然后待会可以看一下呃,是不是这些都生效。让我来,嗯,部署更新一下这个啊,不对,这里是部署了一个新的,嗯,二。我现在已经,嗯,提交好了,等一下他。嗯,二正在创建。然现在已经都在运行当中,然后我们可以看一下,呃,原来的这个。
21:00
这个应用已经有两个部署组。然后一个是刚刚第一次部署的,然后一个是我刚刚,呃。呃,提交的一个报二。然后部署组这里也已经有,然后我们去看。嗯,从这里的话可以看到,呃已经变成了三个事例,刚刚就只有一个,因为这里呃,我刚刚写了那个瑞贝卡是二,所以这里是呃。相当于普二是有两个pod。然后同时我去看一下二的一些具体的一些信息。嗯。先来看一下agent。
22:00
最近的刚刚呃一个request的是100,然后limit CPU是200,现在已经呃改成了就是我们自定义的,就是如果你不自定义的话,会用我们系统默认的一些组。然后另外就是看一下。没事。俺要讨。就是这个,呃,下面的两个是KS,默认都会有。然后有t ke都会,然后上面一个是我刚刚自定义的一个DEMO key的一个。那投入可以看到已经生效了,就是说呃,如果你在TSF的页面去部署的话,会发现它,呃当前是不支持投,但是你通过这种方式就可以很轻松的去,呃添加一些新的功能,比如像to这样的K8字本来支持。
23:00
然后。然后可以看到这里的,嗯,现在请求就更加多了。傲视等等都有。然后另外我再,嗯,简单。简单介绍一下,就呃界面的一个操作,刚刚的呃操作都是通过呃命令行,就是通过cook c t去完成的,呃主要想想给大家演示一下,就是如何只通过K8S去完成TSF的一个部署,而不需要去呃操作TS的控台,当然在部署完之后的像呃服务治理以及呃服务治理等等的功能还是需要的,这个嗯K8原生部署嗯主要是针对部署的这个功能是可以脱离TS控制台去去完成的。但是假如说。
24:06
呃,还想在控制台去呃更方便的去完成的话,我们其实也提供了一个嗯页页面页面化的一个导入的一个方式,就比如说在这个页面上,然后你去点导入SF,然后就呃提交一个表单就可以完成这个部署它的嗯部署其实跟刚刚是一样的,就跟亚某的部署,呃直接用库4T也好,或者是其他方式提L84也好,嗯其实是一样的。他都是修改了,呃,相应的label,或者只是为了方便去操作。然后后面是一个文档链接之后应该PPT里面也会有。啊,那我这边就呃讲完了,然后如果有问题的话,大家可以先呃先给我们,然后之后跟小梅一起来来回答。
25:01
呃,下边我把这个分享交给小明,小明来完成后边的分享。哈喽,大家好。嗯,我是李晓明,刚才韩冰大佬给大家分享了TSFK8S原生部署,接下来我给大家分享一下TSF的产品的一个新的功能发布计划,希望提升应用的一个发布效率。
26:00
随着企业业务的一个不断拓展,系统的架构为了快速的响应业务的一个发展要求,也在不断的发生着变化,从最初的一个单体应用架构演变成为当下比较流行的一个微服务架构,微服务架构相比于呢单体应用的一个架构呢,有较好的一个可用性,伸缩性,敏捷性,享有服务治理等一些优点。可以帮助我们化解业务发展过快导致的一个产品迭代压力,让我们可以自由的选择一些技术站,让系统能够承载海量的用户的一个访问。微服架构优点很多,但是随着服务的一个增加了,给应用发布也带来了一些挑战。为了保证了应用的一个可靠发布,通常呢,需要组合比如版本物料、应用配置、文件配置、灰度策略,然后监控部署等多个动作来完成的一个发布动作。这些会暴露一些问题,比如动作遗漏啊,误操作等等,会导致业务受到影响。给用户呢,带来一个高昂的一个成本。
27:03
TSF作为了微服务的一个pass平台。呃,需要思考如何降低用户的一个操作成本,提升的一个发布效率,减少误操作导致业务的一个影响。通过梳理了用户的一个发布习惯了,从自动化程度和人力成本的一个角度来看,大致分为三个阶段,第一个是呃,也是比较普遍的,就是人工在界面上去操作,这种可能会面临一个操作时间的一个成本比较高,然后失误比较多,然后异常回退比较复杂,比如要记录之前的一个物料的一个版本号,如果涉及到配置,还要记录配当天,就是之前的一个配置的一个版本等等。第二个是对于经常需要大规模发布的一个用户,可能会有一些资源的一个发布系统。将TSF部署相关的一个云API进行集成。这种呢,对用户的一个研发能力有一定的要求,同时云API的接口的一个变更呢,用户不一定能够及时感知。
28:05
第三个就是即将要介绍的就是基于用户流的一个发布的一个计划功能,这个是由TS平台提供的。通过减少用户的一个资源成本,提升用户的一个发布效率。发布计划了,作为TSF针对应用发布的一个新功能。如下图啊,通过将离散的一个发布动作。然后通过模板化进行了应用发布的多个离场的动作,进行编排成一个相关性的一个任务流,进行复用执行的一个自动化和可视化。来减少了用户的一个用户发布的一个成本,提升用户的一个发布效率,用户可以在那个T发布的一个功能界面里面,可以创建发布单,编辑发布单,执行发布单,查看发布单等等,同时可以查看当前或者历史的一个发布的一个过程。
29:00
然后出于了技术战领域或者是私有化等方面的一些考虑,发布计划是以资源为主的,技术站是够弄。然后采用了业界比较成熟的流程引擎的一个典型的一个分层架构。这里面主要是分成四层,第一层是用户交互层,我模板、语法规则、界面等等。第二层是持久化层。实际还人主要是记录了模板,模板的一些记录,历史执行记录等等。第三层是引擎实力层,主要关注点是能否水平扩容,异常恢复、断点续跑等等。第四层就涉及到驱动层,这里的话表达了一个步骤,能干什么活。是设置一个路由,还是发布一个应用配置?这里主要考虑到接口的一个密等性。稳定性和扩展性。接下来我们看一下那个,呃,任务流发布计划的一个功能特性,终止和确认通常是任务流中必不可少的一个能力。
30:05
这里终止是支持任务流级别的一个终止动作,也就是说发布单在运行task a到TASK1的过程中,可以终止其继续执行。确认了,对于确认是支持任务级别的一个手动确认,比如说我对task地进行了一个手动确认的一个设置。当这个时候,当任这个发布单执行到他这个地址之前,他会去有一个等待用户去做一个确认,是拒绝还是同意执行他个D。这里是界面的一个展示,比如说它状态是运行过过程中的时候,我可以去进行终止的,然后发布依赖里面我可以看到,如果是DG运行到啊这个一个任务节点的时候,我可以去进行拒绝执行或者是同意执行。
31:00
然后再看一下发布回滚,发布回滚呢,主要用于用于应对了发布失败的一个场景。在执行到发布单当前任务节点之前呢,系统会自动的快照当前现网的一个参数供回本上使用。发布单在执行失败后呢,用户可以指定任务节点是否参与回滚,回滚时由D的一个尾部进行立项的一个执行,未执行的,或者是选择这个回滚节点要跳过的,他就会去把它跳过。我们可以看一下它从界面上可以看到,我们如果要回滚的话,这里面可以有个按钮,可以选择是否回滚,然后选了之后,然后在这里点回滚就行了。同时我们可以在回滚详情里面可以查看回滚的一个快照,比如说我之前是什么样的一个状态信息,然后回滚快照里面的一个版本是什么样子。然后发布记录,里面会记录发布单的一个发布详情,拓扑图,然后任务节点的一个执行结果,运行日志和变更记录等等,这里面可以看到它的一些相关的信息,运行的一个ID,发布单ID,然后执行人是谁。
32:12
然后他的一个特步关系。然后它的一个每个任务节点的一个基本信息,同时我也可以查看它的一个运行日志的一个情况,比如这里面它包含了这个任务节里面包含了应用配置和部署和文件配置等等。同时可以看到它的一个病历进。接下来看一下权限控制,这里权限控制分为三个维度,第一个是用户管理维度,这里可以记录发布单的一个创建人的一个信息,同时以记录了发布单执行人的一个信息。第二个是数据集的一个管理,数据集管理可以指定的发布单ID资源的一个用户的一个可见范围,这个大家如果使用过TSF的话,应该是比较比较熟悉的。还有一个角色管理,角色管理可以支持发布单的云API的一个读写权限的一个控制。
33:06
接下来我们看一下发布单。发布计划可以支持的一个发布模板,发布计划目前呢,可以开放的,目前主要是开放了两个,一个发布模板,一个是批次发布。第二个是蓝绿发布,批次发布呢,主要应对于应用实力规模比较大的一个发布场景,可以按照批次进行的应用的一个部署。分批过程中如果出现了故障了,可以及时进行回滚。如下图啊,把一个应用的发布分为三个阶段,就是每一个批次一个批次进行发布。同时这里的批次的一个初始化过程中可以主动的一个物料的一个版本应用配置,这个应用配置可以设置应用应在发布之前,在应用在启动之前进行发布,应用配置还是在应用启动之后进行发布,同时还包含包括了文件配置,然后部署的一个组的一个批次的一个设计。然后部署应用类型的一个任任务的一个初始化,包括了然后部署参数的一个调整。
34:04
比如启动参数、滚动方式、健康检查等等,还包含包括了一个处罚方式,是自动处罚还是手动处罚,比如这里面的处罚就可以显示出来,它是手动触发,这里是自动触发。执行时长,就是说这个任务节点他在执行多久,如果如果超过了这个时间的话,就会一次超时,然后进行终止。再看一下蓝绿发布,蓝绿发布呢,是将应用分为蓝绿两个分组部署服务的不同的一个版本,蓝主为存量版本,绿组为一个更新的一个版本,其核心的是灰度的一个路由的自动切换。然后流量监控的一个展示。在使用到这个模板的时候,你只需要选择两个部署组进行拦阻和绿组的一个一个选择,它会自动帮你完成路由规则的一个切换配置。不用你做更多的一个操作。
35:05
接下来我们演示一下,呃,一个DEMO吧,就是provider。主要演示部署组,以部署组为力度的一个批次发布PROVIDE1到PROVIDE2部署主类的执行顺序是文件配置,然后物料部署和应用配置。这里可以看到它批次发布之前的一个应的一个信息,雇主为PROVIDE1和PROVIDE2,应用配置的一个版本是V1。啊,文件配置的版本是V1,用配置也是V1,然后物料是1.29.0。通过批次发布之后,它的版文件版本的一个信息是V2,然后应用配置的一个版本也是V2,物料是1.29.11。同时我可以演示一下回滚。这里我们看到PROVIDER1和PROVIDER2的应用的两个两个部署组。
36:02
然后对应的一个,首先它的一个部署组的一个物料的一个版本信息,1.2.9.0。然后它的应用配置我们可以看到。它的一个发布情况就针对部署主一和部署主二的话,它的呃,物料的应用配置的一个版本也是V1,然后我们再看到它的一个文件配置。文件配置的一个版本也是V1。然后我们通过在界面上可以查看一下这个部署的一个。一个情况。这个provide它对应的版本是1.29.0,然后它的一个文件配置。内容是F1。
37:08
内容对应F1,如果是版本V2的话,它是加了一个就是G2。接下来我们去进行发布计划的一个配置。首先我们创建一下发布单。这里可以选择手动处罚或者是定时处罚,然后应用发布,这里面,比如说创建之后是否启用,这里面可以选启用,也可以选不启用。然后这里选择一下应用。接着我们可以选择它的一个发布类型是分批发布和蓝绿发布,对于比如说选择分批发布的话,我们可以创建它的一个发布模板,这里面可以选择它的一个物料,这个时候我们批次发布的时候,我们选择一下物料版本是1.29.111。然后应用配置,应用配置我们可以指定它是在物料发布前还是物料发布后,比如我在物料发布前,我要要发布这个配置的一个版本设备二。
38:11
文件配置我也选一下。没有,然后步骤组我可以指定一下,从PROVIDE1到PROVIDE2,就是分两个批次。斤斤计较。接下来我会对那个任务节点进行初始化。这里面可以选择它部署应用里面的一个处罚方式,比如是自动处罚还是手动处罚,比如这里面我选自动处罚任务的一个时长,比如说是200秒。然后这里面可以设置一些基本参数,比如说它的发布参数什么样子,然后它支持部署组内部的一个更新策略,比如说立即更新还是滚动更新。是否启用健康检查?比如重复检查或继续检查。这里暂时不请。
39:02
然后提交。触发之后它会自挥,然后这个第二个步骤也做一个相关的一个操作,这里面的话,我把它比如说把它作为一个手动触发,也就说他任务执行到这个任务节点之前,他会做一个手动,需要做一个手动确认。这基本的一个发布单就已经创建创建好了,这一个是一个基本的一个概览页,比如说这个发布单provider里面它的ID是什么,然后它呃包含两个任务节点。主要类型是手动的,然后执行人是谁?然后完成。这个时候比如说我要进行发布了,因为所有的条件我们也准备就绪,这个过程中我们可能是有一些审核,审核机制参与其中,然后发现切没有问题了,这个时候我需要进行一个发布了。先启用一下状态,然后我进行一个run。执行这个发布的。
40:01
你看它的状态就是运行中。我们看一下他的一个发布的一个基本信息,这里面的运行中,然后创建人是谁。然后他的一个一个基本信息是什么样子。然后我们可以看到它的一个发布记录。发布记录,可以看到它在运行中,然后看到它的一个运行ID,你说这个执行人到底是谁?我们可以看到他现在是在进行这个部署组PROVIDE1的一个部署。我们可以看到它的一个详情情况。它的一个基本信息是什么?期望的一个物料是1.29.11,然后配置配置的一个版本是V2。然后运行日志,我们可以看到它包含包含文件配置、应用配置和部署。然后变更记录,你也可以查。
41:01
这个时候发现这个步骤已经执行成功了。他的状态也可以看到是成功还是确认、等待等等。到第二个节点的时候,它的处罚方式是不一样的,它是一个手动处罚,这个时候我们可以点击同意执行,或者是会拒绝执行。碰到这种情况,我们可以根据他的一个发布的一个结果,比如说去查看一下监业务的一个监控,发现有没有问题,如果没有问题,我们去执行一个同一执行,就是进行下一批。这个时候他会去执行task。第二个他。我们也可以看到它的一个详情。
42:01
那他的一个执行结束。因为这里面部署应用,它包含了一个应用配置,文件配置,还有一个物料的一个部署多个动作,所以说它执行执行时间上会稍微会长一些,同时他部署部署完了之后,不光是把这个部署动作下发下去了,还要去切一下他的部署这个任务是否执行成功。啊,这里执行结束了,然后它会显示一个结束的一个状态,开始的一个状态是什么。然后我们回到上一页,这个时候我们可以看到它是执行成功的,我们也可以直接到部署组里面去确认一下。刚才是1.29.0,现在它已经变成了1.29.11的一个版本。同时我们可以看到应用里面这个部署组相关的一个应用配置的一个版本号。
43:01
变成了VR。然后文件配置。文件背景也可以看一下。也是变成V2了。比如说我们这个操作是有效的。然后我们看一下这里面的一个实际运行的一个情况,它运行的一个版本号是1.29.11。然后它的文件配置我们可以看了一下,看一下里面它加了一个版本。版本是VR,所以说它的一个返回结果有个7272的一个一个内容。OK。这里我们就演示了一个基本的一个过程。然后回到他的一个一个发布记录里面,我们可以看到,如果说。我们觉得这一次的发布有些问题,或者说我们业务业务觉得有些问题需要去回滚的话,我们这里也可以做一个回滚产品。
44:04
回归里面可以可以指定这个任务节点是否参与到回本,比如说我有时候想想去那个debug的话,可能去保留某个任务节点,然后看看它的业务的一个运营状态。但是通常我们可能会指定所有都需要回本的,然后这里可以看到一些基本的详情。比如说当前的是什么样子的,然后他回滚那个快照里面是什么样。不用拍照,就是他。嗯。批次发布之前的一个是什么样子的一个状态,比如他的物料是1.29.0,版本信息是V1。对,这个是符合我们的预期的。接下来我们执行一个回滚。确认一下。回本的话,我们就可以看一下他的一个记录。回滚是作为一个子子外,也就是说它的,因为它的快照是基于这个运行时的,所以说它是挂靠在它的一个下面的,你们可以看到它的一个执行流。
45:04
它的执行流是逆向执行的,所以说它是先从这边开始运行。同时它还有一个一个特点,就是说虽然我们的处罚方式指定为手动,但是在回滚的时候实际上是K这个这个处罚方式的,因为我们期望是他能够尽快回复,就是说不需要去做手工确认。嗯。第一个已经回滚,回滚结束了。
46:06
这里相较于传统的部署来讲的话,可以看到它很多的操作或者是执行都是在一个task里面去进行的。刚才我们可以看到查看某一个发布用的发布的时候,我们要切换部署组。应用管理,然后配置管理多个地方,它比较零散,你如果是某个某个界面的操作遗漏的话,就可能会出现问题,同时你如果包含灰度的话,还有复制里面的一个设置。啊,这个已经回退已经结束了,这个时候我们可以看一下。啊,状态是成功的,然后看一下步数主里面。然后它物料版本已经变成1.29.0。然后再看一下它的配置。用配置也变成V1,然后配置管理里面文件配置。
47:05
也变成V1了,然后我们直接到那个实力上去。可以看一下确认一下。已经变成1.29.0。之前是1.29.1,然后它的一个文件库存内容。这时候变成了F1,之前是F1加二。你说这个回退过程已经结束。同时呢,我们还可以复用一下这个模板,比如说我下次发布的时候,我可以。呃,这些编辑。等等。你说。把这个处罚方式改一下。等等吧,自动会变手动或者是加一些参数等等,比如说这个模板是可以进行这个发布单是可以进行复用的。
48:02
下次可以基于这个发布单,然后进行再次的一个发布。同时这个发布单还可以。多次发布的。因为首先我们保证了它的一个。一个底层的一个密等性。刚才我们也看到它分成四层的一个架构嘛,驱动层里面我们是保证它的密等性的,也就是说这个时候我们进行了二次的一个防护。刚才已经回滚了,这个时候我继续下一次发布,然后它又会产生一个运行的一个一个ID,同时是谁来执行的。然后运行是什么样子的。反正这里主要演示就这么些吧,对,然后对于那个蓝绿发布的话,可以作为一个。
49:09
一个直播下面的一个一个小的DEMO吧,大家去体验一下,这里面有个官网,里面可以看到比较显眼的一个地方。就是在TS操作指南里面有应用发布,应用发布里面包括发布计划的一个概述,批次发布和蓝绿发布。蓝绿发布就是在。呃,部署组的的任务类型的基础上,又包含了一个灰度路由的一个任务。当然目前的这个功能是以白名单的一个方式开放给大家的,所以说大家如果想用的话,可以找产品去升一下白名单,你体验一下这个功能,对。我这边的关于发布计划的一个能力的一个一个大致的一个介绍,就就这些。嗯,大家有什么问题的话也可以。嗯,提提出来吧。
50:00
我和托尼这边可以一起帮大家解答一下。现在是有两个问题,一个是那个。发布效率提升200%是如何统计的?然后第二个问题是对于呃,后边对于多应用的组合发布是怎么规划。
51:00
第一个问题,嘿,其实并没有一个实际的统计,但是嗯,如果你去看这两个功能的话,比如说你过去要发布十个应用,嗯呃,我先说那个K8原生部署这种方向。那嗯,比如说过去要在页面上去点的话,那你要点十次页面,然后去提交十时刻这个嗯,填这个表单去选美,但是你现在。嗯,就拿库CTR来讲的话,你只需要批量把那个压模改一遍,然后全部提交给KS就可以了,所以其实呃是很容易有一个发布效率的一个一个提升的,或者是你可以呃对接开源的一些呃C堆的一些工具,然后去完成这个呃。嗯,容器的一个发布。然后发布单这边小明也可以说一下,就是发布效率提升这一块是怎么样去。
52:06
嗯。啊,刚才在我的演示中大家也可以看到了,比如说我要呃针对一个应用的一个部署的话,实际上我基于传统的那个发布的一个过程的话,我需要点击比如说文件配置的一个管理,然后那个应用配置管理,然后物料的一个部署等等这些操作,对吧,同时还有一些先后的一个顺序。如果如果这些东西如果把它通过发布单的方式串联起来的话,这样的话,实际上我在进行直接发布的时候,直接点击一下就可以了,但是实际上你如果基于传统的话,你要进行发布,你是每次都要去实时的去做这些操作的,这个实际上会有很大的一个误操作的一个可能性,同时它没有包含一个回滚的一个能力的。比如说我出现问题时候,我回滚的话,我还要去去了解我历史是什么样的一个状态,对这个话有一定的一个风险,如果我回退的一个版本就不到位的话,可能会导致导致应用都起不来。
53:11
然后这个是针对发布的一个效率的一个提升吧,然后第二点的话,针对多应用的一个组合发布的话,这也是我们后续的一个一个方向,比如说刚开始的时候我们是支持单用发布,然后对于多应用的一个发布的话,实际上它对于任务流的一个节点来讲,它实际上也算是一个任务类型,比如说现在部署。啊,部署的部署类型属于属于一种,然后发布单,实际上相当于将多个一个应用的一个发布串联成一个任务也是一样的,就是就是底层的逻辑是一致的。然后再补充一个是嗯,就是发布计划更多的是TSM内部,就是我们对于发布的这个流程的一个完善,然后呃,另外一个方向是我们像类似于K8原生部署这种功能,我们也想更多的去对接开源的一些社区,然后去借助外部的一些工具去完成DSF发布,比如说嗯,K8原生部署,你可以通过嗯,Custom。
54:24
这种嗯任何就是K8支持的工具去完成发布,那一个集群里边就可以多呃同时嗯我同时发布多个应用,比如说你可以把,甚至你可以把这几段,你可以把呃一个集群里边所有的应用都用卡麦去管理,去用你的get去管理起来,然后嗯一次提交给K8S,然后去完成发布。OK,两位老师还有其他补充吗?
55:03
我这边暂时没有。好的,诶小明你这边还有其他的补充吗?嗯,我这里也没有太多的点嘛,可能比如说托利刚才刚才讲的它是针对。部署就是部署这个这个东西来讲的,我发布计划的是更多的是在部署之上的,可能会串联出,比如说嗯,监控啊,然后配置啊,然后灰度一些策略等等,它是粘在一个更高的一个层面来来去把这些东西把它穿起来的一个东西,比如说可能发布计划可能会复用一下。就是某些节点会复用Tony的那那一部分能力,但是它属于更高更高一个一个层面的一个东西。包括后续对多应用的一个支持也是一样的。
56:02
OK。好的,嗯,那谢今天就谢谢两位讲师的分享,我们今天的QA环节啊就到此结束,后续的话,我们本次的直播视频会啊,以回顾的形式,然后放在我们啊微服务平台TSF的产品介绍页,然后帮助大家去后续去回顾啊,那今天就分享到这里,感谢大家的时间。
我来说两句