00:00
好,接下来呢,我们就正式进入到David维奥斯章节,那通过前面的实战,我们是以手工的方式将若伊cloud部署上云,其实部署任何项目都是一样的,只要呢我们分析清楚项目的一些架构,它有哪些中介价,微服务之间他们的这个关系,那么给每一个微服务打包和镜像上云部署就行了。所以我们整个呢,部署期间我们也发现好多部署流程都是一些机械而重复的操作,而且这些操作如果我们每次都要手工来做的话,未免显得有点太笨重,比如我们整个的这个需求更替的很快,我们每天可能要发布好多版本,那么每次呢都这么来部署,那就有点太慢了,所以呢,我们就需要进入到一个自动化的流程,那自动化的流程呢,就是我们今天要说的dev UPS。什么是dev UPS,它呢,其实是两个单词,一个是dev,就是我们的开发人员,一个是operation,我们的运维人员。而戴维奥斯呢,它呢其实是一系列做法和工具,也就是说希望通过我们戴维奥斯的思想指导,能让我们开发人员和运维人员能在一个自动化的流程之间互相配合起来,最终呢,实现我们持续集成和持续交付能力,而什么是持续集成和持续交付能力,比如以这张图,那么这张图里边呢,我们看到了这么三个部分,首先continuous integration,这一个部分呢,是我们的持续集成阶段。
01:28
持续接撑阶段呢,希望我们的这个代码当我们敲好以后,接下来进入build代码的构建,然后呢,代码的测试,以及我们合并到我们的代码库里边,这一系列的操作呢,应该是一个持续化的自动化的过程,所以在我们持续集成阶段,我们的代码一旦完善以后,希望能有一个整个自动化的构建、测试以及合并代码库的流程,那我们的代码都自动化操作完了以后,将来就进入到持续交付continuous delivery。
02:01
持续交付呢,就是我们希望能自动化的去来把我们的这些代码啊,制品们说的这些制品,我们制好的这些制品,或者我们的这些镜像能给我们发布到这些仓库里边,比如我们代码的每一个包啊,每一每一天版本的这些镜像,我们都能自动化的发布到我们这些仓库里边,所以呢,这是我们说的持续交付的这个过程,那最后呢,就进入到我们的持续部署流程,一旦代码我们发生了变动,我们整个系统集成测试全部都通过,也合并到代码分支,然后我们所有的这个代码呢,也把它的镜像推送到这个代码仓库,那么接下来就可以干嘛,是不是就是进进行部署啊,我们整个部署呢,我们也希望是一个自动化的流程,把它呢,给我们所有的这个代码部署到我们的K8S平台上,这样呢我们就会发现,只要我们的代码发生了变更,我们通过呢一系列的自动化流程,就能直接在我们线上的云平台能看到我们代码最终变更后的效果。
03:01
那我们最终的好处就是我们开发人员,运维人员,他们中间的这个协同不需要我们做大量的工作,而是由这些自动化的流程链路去来做这些工作,所以呢,整个David OS啊,它是一系列做法和工具,它呢最终是想实现我们的开发运维自动化的流程,大家看不是说开发的代码帮你自动敲,而是呢,我们代码敲完了以后,所有的东西呢,通过一系列自动化的流程,我们来进行上云部署,所以这一系列的做法和工具就有一个典型的落地,那可能呢,是这样样子的,这个落地呢,是库官网给我们的一个落地案例,举一个例子,我们呢,在开发期间,我们可以通过一些团队协作工具,工具,比如jar之类的,我们也能发布一些需求,我们这个需求呢,我们开发完了,我们代码呢,就可以推送过去,所以我们开发呢,你无论用用任何我们的开发工具,Vs code的eclipse idea等等,我们。
04:01
这代码一旦开发完成以后,我们推送到代码仓库,这个代码仓库呢,可以是giate get lab啦,Get haveb啦,马云啦这些都行,是get类型的这些仓库,或者SVN类型的仓库也都行,所以我们把这个代码呢,可以推送到代码仓库,推送到代码仓库以后呢,就希望能有一个自动化的流程,能进行代码的构建,所有的构建,比如我们Java项目就可以使用me问对代码呢进行打包、构建、编译整个一系列操作,那代码呢,一旦构建完了以后,我们还可以希望我们能对代码的质量来进行一个分析,比如我们可以在系统里边让库斯菲尔来整合so纳来对我们的代码进行质量分析,当我们这个代码呢,我们质量分析通过以后,我们还可以对代码进行单元测试,比如Java的项目可以使用解用ne来对代码进行单元测试,当然这个单元测试呢,也应该是全自动化的流程,整个测试完了以后呢,会生成一些测试报告,或者整个我们项目的构建报告。
05:01
那我们的整个代码一敲,然后呢到仓库里边,我们接下来从仓库里边拿出来,自动构建,进行代码质量分析,然后单元测试,测试通过以后呢,我就可以把代码打包成一个一个的,我们称为叫制品产品,这个产品呢,比如我们的Java项目可能会是一些炸包,我可把这些制品呢,存到我们炸包的这些仓库,比如neus我们的这些仓库,或者呢,你自己建立的一些仓库平台都行,包括我们的一些报告,我们也可以存起来,然后呢,我们的所有的制品都有了以后,我们可以根据这些炸包这些制品,我们再来制作成一些刀客镜像,对吧?刀客镜像呢,最终我也可以推送到。Docker help,就像docker镜像仓仓库,或者我们公司自己建立的哈,这些私有的docker镜像仓库,所以呢,整个一系列化流程下来,我代码只要一敲,全部呢,自动化构建自动化分析自动化测试,自动化呢给我们打包镜像并且推送,推送完了以后呢,接下来就自动化给我们部署到K8S平台,那部署到平台以后呢,接下来我们就能监控整个代码的数据运行。
06:13
期间的一些指标过程,包括呢,它的一些日志,一旦呢,发生一些故障,Bug或者需求更新,那我们可以把这些呢,又提交给我们的整个协作平台,那我们的开发人员呢,一看我们的这个协作平台呢,诶今天发了一个新需求,那我就又要开发了,或者今天呢,线上发现了一些新bug,那我就可以修改了,修改完了以后呢,现在又是进入到我们整个的回路,我们代码呢,进行推送仓库,然后构建分析测试,一直到推送镜像部署,部署以后呢,我们线上运维分析发现发现了问题,然后呢,又回归到我们这儿来进行一一连串的自动化操作,所以呢,我们说devs啊,它是一系列做法和工具,做法工具呢,在典型的落地里边就有一些代表,比如我们。
07:02
代码仓库可以公司用get lab来作为我们的私库来存代码。get lab。包括呢,我们使用me来对代码进行打包,然后呢,使用jeins来进行整个的自动化的构建流程,比如使用harber来存储我们的打包后的这个doer镜像,然后呢,最终部署到我们K8S,当然K8S的整个部署呢,我们可以使用库S来进行手工部署,也可以我们自己写自动化流程来进行部署。所以最终David维奥S的整个一系列自动化工具的落地整合落地就给我们形成了持续集成和持续部部署能力,这样呢,我们每次只要开发团队我们这个代码发生了变更,它呢都可以通过我们的整个自动化构建流程来验证代码并变更的可行性,然后呢,包括我们对代码呢可以进行发布测试等等,然后呢,我们的整个团队就可以高效并且呢快速的来给我们协作起来,这是我们说的David offs,而David offs呢,整个的落落地在我们的库fair里边也做了非常多的事情,库fair呢给我们整合了一系列工具,其中最重要的就是cooper fair整合了ins,因为金克S呢是来作为我们持续集成和持续部署界的一个领导者,可以来看一下金克斯的观望。
08:27
金克S呢,如果我们单独使用起来,其实我们还是需要呃在K8S平台部署金克斯,包括部署金克斯的整个集群,包括呢,把他们整个呃用起来要配置一些插件,或者配置一些好多东西,其实我们要做的工作还是挺大的,而我们这个金克S呢,库给我们平台已经把这个整合好了,所以呢,未来我们的David维奥S就可以来参照库fair平台,他说给我们,而且呢,金克斯整合的是一个叫动态供应的方式,就是金克S的整个集群是一个动态可伸缩的集群,闲的时候金克斯的这个代理可以启动很多,帮我们来构进行很多的构建任务,集群忙的时候呢,代理就可以启的少一点,这都是一切呢,都是自动化的,然后呢,我们的构建任务不要影响我们正常集群的运行效果,所以这都是我们Co s s给我们整合而赋予的这些能力。
09:24
那未来呢,就可以使用Google给我们提供的维S平台,当然这个平台呢,想要使用最一开始我们在安装Google s的时候,在这呢就要启启用我们的一些功能,启用可插盘组件,其中呢就是David op,在这一块我们呢,之前安装的时候David OPS我们是不是给它开启的,所以呢,从下一节课开始就来体会Co s给我们提供的整个一站式维OPS能力,及它的整个落地的这些配套实现。
我来说两句