00:00
大家好,今天呢,我们来看一个叫持续集成的概念,以及实现持续集成的一个工具叫Jenkins,那我们还是要先看这个概念,其实呢,跟持续集成相关的概念呢,还有持续部署和这个持续集成和持续交付什么意思呢?在这儿哈,咱们就不一个字一个字的去念这个课件了,我给大家呢,以通俗的话语呢来解释一下。我们说持续部署哈,就是你我们一个比较大型的项目,在开发的时候有好多个模块,那你得确保每一个模块都是可用的。啊,那么你在你开发的时候呢,在你本机呢,去做一个小的局部的单元测试,这个是不够的,你至少要保证呢,你开发的整个模块呢,在服务器上面是能跑通跑得通的啊这这个叫做啊,这个叫做部署啊,部署到服务器上以后能可用,啥叫持续部署呢?你想想你写的代码是不是持续的产生这个新的代码呀。
01:04
你开发的时候,哎,随着你开发的呃,进度的向前推进呢,你会不断的有新的代码产生,那么我们要求呢,在你不断产生新的代码的时候,你的这个负责的模块,或者说你们小组负责的这个模块,它持续的都是可以部署的,它都持续的都是跑得通的啊,你持续开发,它持续的都是跑得通的啊,这个是很重要的啊,啊这个叫持续部署啊,那么什么叫持续集成呢?我们一个很大的一个项目,在开发的时候会有好多个模块,那我们很可能呢,每一个模块哈,是分给一个小组去做,那么你开发的时候哈,你们自己的这个模块是拿这个假数据去测试的,诶假数据测试的时候呢,诶,我这个模块自己没问题啊,但是呢,你这个模块真正的跟其他的模块,甚至于说整个项目所有的模块都集成在一起以后去测试是不是跑得通的呢?是不是这个功能是正常的呢?这个就说不好了,哎,那么我们,呃,非常重要的一点是我们要尽早的去做这种集成啊,避免呢,很多问题都留到上线前的一段时间,那那个时候呢,有可能再改或者说再修复呢,就来不及了。
02:19
啊,那你这个时候呢,如果发现这个严重的问题啊,要改的话,牵一发而动全身,嗯,都没有时间,不可能能把这个问题给他修复,那我们可能就要宣布这个项目开发失败的,这个成本,这个责任可是相当之大的,我们应该来说呢,咱们普通的这个员工哈,咱们是承担不起的,所以说呢,我们要尽早的去发现问题,尽早的去进行这个所有模块的集成,诶这个持续的意思也是一样的,你持续的有新的功能加进来,持续的有新的代码加进来,那么我们要持续的去做这样的全模块的集成,以尽早的去发现问题。啊,诶,所以这是其持续集成啊,在我们开发大型的复杂的项目的时候,这个是很关键的一个要素啊,什么叫持续交付呢,这个交付呢,我们面对的是最终的用户,你想哈,我们最终的用户呢,它有一个特点,就是你哪怕把你的所有的功能的开发都是正确的,诶你从我们逻辑上来说呢,都没有任何的问题,功能全都跑得通,但是不等于用户爱用啊,你能不能够吸引到用户来用我们这个项目呢?呃,这个牵扯到用户他是不是喜欢这个,喜欢不喜欢这个事儿哈,我们做单元测试啊,做服务器上面去测试,这个测不出来,我们测试呢,只能是从我们严格的从数据的这个角度,从功能的角度,哎,证明呢,我们预先设定的功能呢,它能够实现,但是呢,用户喜欢不喜欢这个事儿呢,测试人员他可不敢打这个包票啊,他可不敢说我测试通过以后用户就喜欢啊,这个喜。
03:59
团呢,是一种这个主观性很强的一个东西是吧,这个很难我们非常量化的去衡量这个事儿,那怎么办呢?怎么保证这个用户能喜欢呢,保证其实很难说有人能保证哈,但是我们可以做到这样一点,就是我们嗯不断的进行小版本的迭代。
04:18
诶然后呢,我在用户使用的过程中呢,不断的去收集这个用户的行为啊,用户的反馈啊,诶然后呢,不断的去想办法贴近用户的需求啊,这样的话,慢慢的呢,就不断的改进我们这个用户的体验,诶说不定呢,咱们用户的粘度呢就能够越来越强,这个里边呢,就不仅仅是一个我们开发的程序员的呃职责的问题了,还牵扯到我们的运营的问题,牵扯到我们产品经理怎么去定义我们这个产品啊等等等等。诶,那么我们程序员要配合的呢,就是我们在持续的产生这个代码,产生新的功能的时候,咱们不要等到,呃,编一个很大的大招,几个月才更新一次啊,那样的话可能用户呢就流失的就很厉害了,我们稍微有一点更新呢,诶咱们就让用户呢感觉到啊,所以这个交付呢,指的是针对最终的这个用户去交付。
05:10
哎,所以说呢,我们在开发比较大型的,特别是互联网项目的时候,诶,去做到持续部署,持续集成,持续交付啊,这个呢,对于我们呃,留住用户啊,去减少减小我们项目的风险,都是非常非常有呃非常关键的作用的啊,那么我们说总体目标来说哈,它我们做到上述几点呢,有这样一些好处,一个是降低风险,那么我们频繁的去做这个集成,那么有问题尽早发现啊,那么尽早发现呢,你上一次集成已经确定没问题了,但你下一次再集成发现问题呢,它也是我们最近的代码出现的问题啊,它这个也比较容易解决,那么减少重复的过程,诶这是两方面,两方面来说啊,重复的过程呢,一个是我们构建过程有很多重复的操作,呃,我们可以采取这个借助于一定的这个工具呢,把它们转换成这个自动化的这个,呃,完成啊,另一个呢。
06:09
就是任何缺陷我们及时的去发现,哎,及时的呢去进行修复避免呢,这个问题已经出现很多了,我们已经基于这个错误的这个代码,已经开发了很多新的代码,诶那你这个时候呢,这个错误要修复的话,这个后来开发的新的代码也跟着要去改,这个时候呢,就等于前面活就白干了,哎所以说这个呢,我们减少重复过程也是提高效率的很重要的一个方面。然后呢,任何时间任何地点啊,都可以生成可部署的软件,那我们不断的在集成嘛,我们集成了以后呢,它就是一个本身就是一个可以运行的啊,那么我们在稍加呃参数的调整,就可以拿到这个线上去发布了啊,这个也是我们提交高提高我们的效率,增强项目的可见性啊,我这个开发的时候,这个项目呢,不断的是可以这个跑起来的啊,那么我们可以跑起来的话,我们就能够更有效的进行这个评估啊,我们开发的时候呢,也更心里头也更有数,这就是最后一点,建立团队呢,开发对产品的这个信心。
07:12
啊,这就是我们说的这个三个持续啊,持续部署,持续集成和持续交付啊,对于我们开发大型的互联网项目呢,都是这个,呃,非常好的一种开发的实践。这个大体上呢,大家这个概念呢,可以去好好的再去这个体会体会,哎,那么我们下面要说的呢,就是这个东西怎么去装啊,和它的这个相关的工具。
我来说两句