00:00
好,那接下来呢,我们对以前的所有流水线来做一个最后的优化。首先我给每一个前端项目,我们这儿有两个前端项目,点开给大家看一下,我给每一个前端项目呢,我让前端项目都暴露端口,而且呢,指定好了叫32070,这是第一个前端项目,第二个前端项目。我呢先做第一个优化,前端项目呢,都指定暴露的这个端口,这样的话呢,以后我们就能用固定的地址访问到前端项目了,流水线呢,下一次只要前端项目一部署,我们就啊能直接啊通过外网来进行访问,但你可以呢前端项目多部署几份。比如这个32248端口这些呢,多部署的这个前端项目可以呢,在他们前置也有一个NG,这个NG呢,其实可以用我们K8S以前讲的那个叫网络来做。也可以呢,自己装一些N来做负载均衡,这样的话呢,访问一个负载均衡的域名地址,或者什么能来到我们这些前端项目的什么32248端口,然后前端项目呢,所有请求就交给网关,网关又来后台集群。
01:09
那这块的东西呢,我们也没申请域名,我们也就不用做了,然后那我们这个前端项目,每一个我都固定暴露了IP地址以后,我们再来给大家看一个,这个就是我在创建每一个这个前端项目的时候,我呢专门留心给大家记录了一下这个地址。这个地址是什么呢?我们称为叫web hook地址。Web hook呢,是我们的远程啊,远程触发能力。我们来可以说一下web hook怎么用。来思考一个问题。先来写个外后。就是呢,我们现在的web hook的场景是,首先每个每个咱们这个项目都有自己的流水线文件,都有流水线文件,然后呢,接下来我们每次修改完项目,修改完项目。我们还得手动,是不是点一下流水线运行,手动点击运行,哎,我这样呢,我都嫌太麻烦了,我希望的呢是什么,我们希望希望呢,我们每次修改完项目,修改完项目只要呢,代码一推送,代码推送。
02:17
只要呢,代码推送到代码仓库,然后呢,它这个流水线会自动运行,把我们这个代码拉下来给我们来部署,那希望呢,流水线流水线能。自动运行,那怎么实现这个自动运行的事情呢?其实就要利用这个web hook机制。OOK其实是这样子的,首先我们每次呢,代码敲完,我们推送到代码仓库,代码仓库呢自己是知道的,所以呢先写完代码。写完代码。写代码。代码并提交。我们呢,只要把代码提交给代码仓库,比如我们这个马云他呢,我们这个KE,他就知道我们代码提交了,然后呢,你再来告诉get e说你只要知道我代码提交了,你自己呢,给我们给我们指定的地方发请求,指定的地方。
03:07
发起球。发请求,而我们把这个行为呢,我们就成为web hook,我们叫web钩子对吧,相当于我一件事做完以后呢,我们马云给我们回调一个地方,所以呢,这个勾字呀,每一个项目会有一个这个勾字地址。然后呢,那我接下来我就可以给马云配置,只要马云呢,知道我的代码提交了,然后给我们这个地址呢,发请求,发请求呢,其实就发给库fair,我们装的库fair平台了,这个库巴这个平台。当库fair底层呢,也整合的是金克库S呢,平台感知到。因为我们这个发平台发请求这个web hook地址给大家看一下这个webook地址。这个地址是明显是cooper s菲尔平台的这个地址,所以呢,Cooper s菲尔平台呢,只要感知到我们有人给他发请求,在库S菲尔平台呢,自然就重新启动我们这个流水线,因为我们库S知道问号后边这个就代表我们哪个流水线,所以呢启动我们这个流水线。
04:14
继续。所以呢,我们这个就自动启动这个流水线运行,那最终呢,就能形成我们戴维奥斯最初的这个想法,开发人员只要代码呢,在这一开发代码推送到这个仓库,我们自动的整个流水线启动来把代码仓库里边的代码拉下来,我们构建,然后呢单元测试,当然所有的单元测试我也都调过了,单元测试推送镜像最终部署。那我们现在呢,就来测一下这个web hook这个钩子,这个钩子怎么用钩子呢?这个web钩子现在要这么来用,来到你的这个马云,然后你马云我们现在呢,先来配这个,呃,叫医院挂号的后台管理系统。在后台管理系统,在这一块呢,管理。管理这一块呢,有一个叫web hook点进来,我们在这呢,可以添加web勾子,点一个添加,然后呢,把你webook的这个地址给这一粘,每一个项目呢,有自己的地址,这就完了,点击添加就行,但是添加之前呢,我可以给大家看一下。
05:15
我们医院挂号的密项目。这个呢啊,这可能是之前运行的,我就把先把这个停到这儿啊。这个呢,只运行到了第六个啊,如果呢,我现在呢,添加了一个web钩子,我点一个添加。这个web钩子呢,你刚填上它呢,会尝试自己发一个请求,你看这个请求呢,就是200成功的,这个请求呢,就会刺激我们这个库fair,然后呢,自动的给我们在这儿启动起来,当然这个刺激呢,现在还没刺激起来。来稍等啊,因为我们这个只有代码提交了以后才能把这个刺激起来,所以呢,我们现在确认一下,现在呢只是到第六个,然后接下来我们在这儿来真正的把代码改变并提交。
06:03
我呢,就随便打开我们的这个项目叫din,随便改上几处地方,比如呢,我改一下文档的什么东西。测试代码改变。我呢,只要代码一改变。首先get status,大家看一下。嗯,好,我要保存一下。Get status,我们这个文件呢,有发生改变,然后呢,来get and啊添加到代码仓库,并且呢提交一下。我们提交呢,我们就叫代码改变。提交呢,只是提交到本地仓库,接下来我来推送,所以接下来大家注意啊,我把这个推送呢,跟这个。啊,我来在这儿呢,对比起来。这是我们的这个第六次构建。然后呢,给大家看一下效果。只要我的这个代码一推送给他push。
07:01
我们代码让他推送到马云了,马云感知到代码推送了以后呢,接下来它就会刺激我们的这个库fair。我们等一下啊,等一下呢,这儿可以多刷两下,等一下呢,它这一块就会自动的给我们启动这个流水线的构建任务。点进来看一下。这个怎么没启动呢,稍等一下,这跟我们网络呢有一定的关系。我这一块呢,有稍微一分钟他都没启动,像这种情况下的话呢,我们就得检查一下。啊,比如我们这有一个请求历史,我们外包后啊,我们这个钩子它有它的这个历史。比如我们来看他以前发送的这些历史。这些历史呢,呃,这个呢只是一次测试,而我们真正的代码一提交,他就应该有给我们把这个请求发出去,那现在能看到这是马云呢,给我们没发啊。代码提交他的这个那个后钩子的历史啊,在这有了,这有了,马云终于等了一阵以后呢,给我们发出去了,发到这了,而且发成功了。
08:06
发成功以后呢,我在这儿确认一下,刷一下诶。我呢,我自己是在这刷一下啊,其实你不用杀,等一会儿呢,它自自己就出来了,然后呢,他说我们的最后一次提交是A什么七二是master分支的,它自动触发了啊,自动触发呢,给我们开始整个的运行流程。所以呢,这个钩子呢,是我们的这种方式,那同样的每一个项目的钩子,你都可以在这儿来进行配置,让它呢自动触发。马云呢,他自己发钱就发的慢。跟我们库没关系,好把这这个钩子呢,我们再来一配。然后呢,来到我们的。这一块叫我们仓库。啊,这个塞,我们也给它配上钩子。点击管理。We hook。这钩子。我们来添加一个啊,Hook钩子。只要呢,我们代码仓库有发生任何变化,点一个添加。
09:03
好,我们这个钩子呢,就添加好了。包括呢,这个钩子啊,它会自己呢,先发一次请求测试看能不能成功。来关心他这一次啊,这一次呢是成功的,而真正呢,我们代码一提交他呢,就会给我们真正又自动启动我们的整个流水线。当然我们这个流水线呢。好,我们可以看一下这个医院挂号set,诶这个流水线呢,看这啊,大家主要注意这什么branch inexson,那这一块呢,现在就是我们啊利用钩子呢给启动的,如果是我自己用户点的话,那最后的消息就是这由哪个用户自己启动的啊,只要不是用户启动的,像这些啊,我们已经索引到它的一些分支是自动启动的。那这就有了啊,现在一启动呢,这我们的web钩子以后就跟我们的代码就能配合,形成这样的效果,只要代码一修改,一提交推送到我们的这个分支,那这个流水线呢,就自动运行。
10:01
然后呢,最后大家思考一下,我们这个流水线呢,我只是写了一个master,其实呢,我们可以有多分支流水线,什么叫多分支,比如我在master分支,我呢有一个金,我呢在release分支我也有一个金,那这样的话呢,你把代码推送到master分支,我要执行到流水线,按照我master分支的进,你呢代码如果推送到release分支,我呢就应该按照release分支的进行。所以我们这块呢,几乎什么都不用做。你呢,只需要在你的项目创建多分支项目就行了,比如你再次创建流水线的时候。你流水线呢,随便写一下,因为流水线呢,你要选仓库对吧,这个仓库呢,如果你的代码有多个分支。然后呢,我们这个库fair也能自动的感知到多个分支里边的所有的金fair,我们的代码呢,只要一推送哪个分支推送了,那呢,它就可以把哪个分支的这个金费。
11:00
然后呢,以运行,最终呢,我们就可以形成这样的效果。我呢有个master分支和一个release分支,然后呢,以后release分支的金费是真正部署到我们生产环境的,而master分支呢,你代码的推送都是部署到开发环境的,所以大家呢,直接为一个项目创建多个分支,每一个分支呢放自己的健就行了。另外呢,再补充一点,我们的这个医院挂号的系统的这个parent。他呢是目前不能主动出发的,为什么呢?因为我们当时创建的时候呀。是没有金配置文件的。我们最终呢,通过可视化界面整呀整呀整,终于把这个新的配置文件弄到了,弄到了以后呢,我们当然可以在这保存一下。这是我们最终自己做的金斯费尔文件,然后呢,那你如果想要让他拥有主动触发能力,那你的整个流水线的创建就是拥有web hook能力的话,流水线的创建呢,就不能像我们第一次创它一样,你应该呢这么来做。
12:06
比如我要创建一个医院挂号的parent。你呢,自己一定选中上代码仓库。让他呢自己拉分支。因为你这样创建的话呢。拿过来吧,大家看一下。复制。这做一下。代码仓来选一下,让马云自己拉。那我这样要做的话呢,他在下边是会产生一个web hook地址,那么就用这个地址推啊,而像我们以前。以前呢,我随便写了一个项目,我都不知道代码仓库在哪,我就想自己做,所以呢大家会发现下边呢是没有web h地址的,我们也后不了,所以呢以后我们就推荐大家每一个项目,我可以提前创建一个流水线文件,然后呢在那个可视化界面。啊,我们初学者在可视化界面先点啊点啊点,把流水线呢,整个搞到以后,然后把流水线文件我们就创建到这个项目里边,接下来呢,我们就在这儿创建流水线的时候指定代码仓库,这样呢我们还能进行一个远程的主动出发。
13:13
以后我们代码一提交,让马云呢自己给我们库发请求,库呢启动流水线,把我们的所有的东西呢一构建就OK了。那至此呢,我们这两个自动化构建也都成功了,这个呢是我们主动出发的这个构建成功,包括呢,我们这个医院挂号的set也是主动出发的构建成功。这两个呢,只要构建成功,我就能访问了呀。我呢,随便给大家看一下。呃,我们最后再做一个最终的访问确认,因为我们最后的修改呢,每一个人都有他自己的端口,比如32070,它是医院set。这是用户端的这个访问端口。哎,我们发现呢,能访问了,而且这一块数据有了,对吧,因为我之前呢,把网关地址呢,又改回来了。
14:02
所以呢,这个就能访问了,包括我们部署的后后台管理系统,后台管理系统呢,我们部署文件里边,我也给它固定了note要暴露的端口号叫32248。那我们呢,就在这儿。也访问是不是也可以了,所以大家呢,刚才听见我的这个网易呢,呃,邮件不停的嘣嘣嘣,是不是给我们推送构建成功,所以现在呢,我们就成了一个我们只关心改代码就行了,代码一改以后呢,它在后台给我们自动构建,构建呢等于这你在这访问你就能看到最新结果了。那至此我们流水线的所有东西就结束了。
我来说两句