00:00
同学啊,大家好,那接下来呢,我们来说一下GALACI和GIS他们之间的一个对比啊。嗯,金S是大家最熟悉的一个了,也是应用最广的一个自动化服务器了,那么它的功能这里面我就不说太多了啊,它也是可以支持很多很多构建工具啊,然后跟代码库也是可以无缝集成,也可以直接使用一些现成的插件啊,在各个这个集成这种部署工具啊进行发布,因为现在金S用的还是非常广的,那GALACI呢,它是在GALA8.0之后啊,自带的一个持续集成系统。呃,这里面想到一个有趣的故事啊,在我们公司刚开始用的时候啊,其实也有jamess,也有这个GALA,当时呢,Jamess是这样的,Jamess呢,它有一个插件,就是我们想实现一个需求,就是我们提交完代码之后,然后触发JS去进行构建,但是JS有两个插件啊,第一个插件是那个。
01:00
有一个被动的一个扫描的啊,就是我们直接使用那个,我我记不清那个插件名称了,就是它的作用就是在精子服务器上配置一下轮询是吧,轮询一下我们这个,呃,这S上面,呃,这个getlab上面代码有没有变化,然后进行集成,还有一个插件是GI lab的一个直接的一个户插件,对吧,当时这个效果啊,当时还没有研究到那么深,然后我们先用的是get lab CI和CD这样的一个做法。我当时怎么做的呢?就是我直接先创建了一个runner啊,让他去跑,然后我创建了一个shell类型的runner,就是执行一些shell脚本的啊,然后当时写了一个Python脚本,然后它的核心流程是怎么样的,就是我开发人员去提代码对吧?提完代码之后,呃,提提提,提交到代码之后,然后它会触发金S啊,触发它运行这个脚本,这个脚本,然后去触发JS。然后去运行是这样这样这样的一个过程啊,因为呃,之前应该是在几版本啊,我记不清了啊,当时它还是在galab里边有一个模板的配置,就是在它的这个系统设置里面有一个模板的配置,它是支持,嗯,你像那个G啊,什么QS这些对吧,它都是支持的,但是后来啊,你看这service template在这里面,后来你就找不到了。
02:18
后来找不着金子啊,然后当时是这样去做的,但是后来其实get up的这个CI的语法啊,越来越强悍了啊,所以后来就把这种方式给替代了。OK,所以说这个也是一个,呃,他的一个优点吧,就是现在它的这个压苗语法要比这个词写起来要简单一些,OK,写写起来更加友好一些啊。然后下面我们就来拿出几个对比点来对比一下。关于。嗯,GALACI和JS他们之间的一些这个优优缺点吧,首先说分支这一块啊,只要涉及到代码库这一块,其实get up CI要要要比这个精S有绝对大的优势啊,有绝对大的优势,因为我们在分支这一块啊,比如说我们要想实现像刚才说的新建一个分支,对吧?我们给它绑定一条流水线,那这时候实现方式有两种啊,一种是使用gila CI,那么这时候你写的压ma文件之后,你再新建分支的时候,那么这个亚ma尔文件是不是直接就跑到另外一个分支里边去了,对吧?相当于我们不需要进一步的配置就可以去使用了,那金S呢,要想实现这样的效果,我们可以在金S上面装一个get up的这个多分支的一个流水线,通过这个插件呢,来扫描我这个它是需要绑定get上面的某一个库啊,看一下有没有新增分支,但是它会检查一个什么呀,检查我们代码库里边每个分支里面有没有j file,如果有j file的话,它会给它。
03:48
成一个以分支名为名的一个项目。OK,所以说相对来说他们都支持这样的一个配置性,但是GALAC更加方便一些。
04:00
OK,就是这一点,然后第二点呢,就是关于定时构建这一块了,定时构建也就是计划任务是吧?在JS里面我们可以直接去使用这个定时构建,因为它是呃,在这的触发器里面,它是有这一项的啊,我们可以直接类似于写这种呃,C table这种语法对吧?直接实现啊,直接实现这个定时的构建,那get up CI呢,它是没有这个功能的,但是如果你要想实现这个功能怎么办呢?你可以在另外一台机器上啊,在它的c table里边加一个定时任务,然后写一个脚本,写一个出发给LACI的功能是吧?但是这一点来说,其实没有JS方便呀,对吧,JS我不需要在其他的服务器上再去配置了。因为你在其他服务器上再配置一遍,那这个维护性就很低了,很低了,所以说这是这是这1.ok,但是有的时候我们在某种特定的场景下,可能就不会用到这个c table了啊,有的时候我们用table主要是做一些定时啊,有的时候我们可能每天开发人员下班之后啊,比如说晚上11:12点做一个构建是吧。
05:03
那这个啊,其实有就是按照我们现在的这种开发模式来说,这种方式就可以退退就给它消除掉啊,因为这种我感觉也是一种资源的浪费,因为后面其实根据我们实际的场景,我们可以给他配置,只有开发人员提交代码之后才会给他做一个集成,对吧,但是有的时候你可能是这样的啊,啊,如果你的CI和CD特别健壮的话啊,你可能有一个需求,就是我们今天已经把上线的所有版本已经测完了,然后我们就想夜里。或者是凌晨一两点要上线是吧,然后这时候就不需要人来看了是吧,我们直接在精子里边设置一个计划任务,自动的去上线。这是很很理想的一个状态,但是实现起来可能有点困难啊,不过这个是以后的一个趋势啊,所以说定时构建这块啊,金子做的更加好一些。好,关于分支的这个拉取请求啊,就是破和墨制,这个就不用说了,肯定是金S,呃,肯定是gila CI更加这个更加友好一些,因为他已经把代码库都已经集成了,对吧?然后权限管理这块啊,金子的权限管理一直是一个很头疼的问题,其实大家在开发在企业里面啊,你应该会发现一个现象,就是开发人员他用的是往getlab里面去创建项目,对吧?那这时候GALA里面肯定有一个权限管理啊,管理每个团队的开发人员,而到了金S呢,因为每个团队的人他肯定需要去部署流水线嘛,对吧,那这时候他就需要。
06:37
给JS里边给他授权了,那JS那个权限管理真的是很难受啊,除非你要是有一些外围的平台支持的话,能够做到自动授权,那也可以说是忽略,但是实际上来说,我们如果用了galab的话,那galab和galab CI它是深度整合的,对吧?那么权限管理我们直接什么呀,实现了统一的管理,就直接在哪里管理,直接在GALA里边管理就可以了。
07:03
OK,所以说权限管理这块,这这个GALA有很大的优势。然后第五点呢,就是存储库的一个比较了,那这个存储库还是代码库啊,那JS啊,它是松散的啊,松散的就是你可以支持任何代码库,比如说啊,那个我要在我可以在S分上下载,对吧,我可以在lab上下载,我还可以在bit啊等等,或者是coding啊是吧,等等其他的一个平台去下载,那get up CI就不一定了啊,这个它是绑定的,OK,这个是绑定的啊,所以说这一块就是各有各的特点,如果你要用gib CI,那它跟B。代表库是集成在一起的,所以说他们之间能够实现很良好的交互。但如果你的代码库没有在getlab上面,没有应用get lab,那这时候对get lab CI来说就是很痛苦的一件事情了。OK,就是这一点啊,所以这一方面JS更加灵活一些啊,更加灵活一些,最后一点就是插件的管理啊,JS的插件管理啊,首先J的插件很多是一件非常好的事儿,但同时也是非常让人痛苦的一件事。因为在我们。
08:17
大规模的使用当中啊,JS的插件。后面的这个更新成本,维护成本真的是太高了。太高了。OK,我们有的时候会出现插件更新啊,你更新完之后一堆插件,它又需要更新,更新不可怕,可怕的是更新完之后重启它这个服务都启,启动不了了,就出现各种问题,影响我们的这个运行稳定性,影响啊,非常影响,那GALA呢,这方面也没有,我觉得也没有太大的优势比这主要是他已经把这些功能全部集成好了,我们不需要再支持插件了,比如说你想加一个功能,那你可以在官方去给他提一些这个提提一下合并请求,对吧,去给他提交代码,最后集成到get up就可以了。
09:02
所以说这个怎么来说呢?就是金S扩展性非常强,那gila呢也行,也扩展也还好,对吧,但是你得每次发版之后才能去用啊,而这个JS这是立马就可以直接去用,那对于维护来说,对于我们运维来说啊,维护来说那GALA肯定是更好一些,对吧,我们不需要再去维护那那样的一个这个插件了,好吧,这是总结的几个点啊,可能有的地方总结的不是特别特别到位,那根据大家这个应用的不同场景来说啊,他们的对比点就有很多了啊,其实没有对比就没有伤害,对吧?那么仔细对比一下,其实各有各自的一个优势。OK,各有各的优势啊,大家也不用担心说现在那个GALACI,刚才我讲的是GALA cib,金S有很大的优势啊,我们不会说是立即把金斯上面的项目都给迁移到GALACI里面,OK,现在我们就是一个研究的一个阶段,OK,但现在已经有很多公司啊,已经在使用这种模式了,尤其是互联网公司,OK,好听我给大家总结一下啊,那么get up CI它的特点我这里边也总结了,金色的特点也总结了,对吧?那特点我这里边不说了啊,因为刚才都说了,那缺点来说,那GI up CI没有统一的管理页面。
10:18
无法去管理所有的项目,那这种情况下它适合什么呢?啊,给CI总结一下,它适合互联网公司啊,适合于这种敏捷开发的这种形态,也就是开发金运会。那开发进运维,也就是没有运维这个角色,我开发人员完全把代码里面就定义好,我们这些部署啊,发布的过程啊,完全由开发人员自己来做的时候,那写的代码库里面是最方便的一件事情。对吧,好,那这个呢,它也有本身的一个优点和特点,那特点就是啊,它的缺点就是关于这个插件啊,还有自己的一个配置的复杂性啊,配置的复杂性还是挺复杂的,不是很适合小型的团队。
11:01
那这个词适合于什么场景呢?就刚开始我们刚开始说这种多角色的啊,可能不是不是互联网行业的企业。像传统的一些,我估计一些金融企业可能也是这样的啊,金融呢,还有一些银行的对吧,就这些啊,那么他们在做的时候,可能一个团队里面有各个角色啊,开发运维测试是吧,那这时候JS呢,就可以被运维同学统一的管理了,统一管理所有的这个角色。对吧,所以说这个是两个场景吧,好吧,那今天就对比这么多啊,这是关于galaci和金S的一个对比,呃,总的来说呢,嗯,各自有各自的一个优缺点,但是这里面我们还是要去做一下关于GALACI的一个体验,因为只有你实际上体验了galay之后,你才能知道金S是有多么复杂,好,而且你还会体验到这个GALACI是有哪些好处啊好,那后面呢,我们就开始讲解这个实践的一些部分了,那我们这节课先到这里啊,感谢各位同学。
我来说两句