光环it学院OpenStack文档的持续集成与持续交付是怎么实现的

栏目:干货分享丨时间:06-20丨来源:未知丨作者:admin
  光环it学院的讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。

光环it学院
 
  光环it学院的讲师均为实战专家,具备10年以上软件开发培训经验,五年以上大数据实战经验,行业口碑最好。

  每个人都可以通过这些投票在OpenStack的Gerrit中进行评估:

  0:不计分;

  +1:在我看来这很好,但是还需要其他人批准;

  -1:在被合并之前这些补丁需要进一步完善;

  光环it学院认为,我们还需要对补丁进行评论,阐明它们为什么是错误的,一些问题需要被澄清,或者是说明它们为什么很好。这些评论可以帮助原作者或其他评估者更新和评估这些修改。

  高级评估者,即“核心评估者”(corereviewers)能够给予分值为2分的投票并批准修改,让该修改能够被发布。这些评估分值的含义是:

  +2:在我看来(核心评估者)这很好。

  -2:不能合并。

  光环it学院认为,一旦两名核心评估者给了+2(一名核心评估者赞同该修改,通常第二名核心评估者也给了+2)那么它们就会被并入和被发布。带有负评论的修改是不会被批准的,在意见达成一致并通过批准后文档才能被发布。

  在评估阶段,Jenkins的自动检测也会进行一个投票。一旦修改被批准,Jenkins会再次对并入当前升级后的git仓库的修改进行检测,以确保不会产生倒退。如果Jenkins对修改的评价是肯定的,那么修改仅仅是被并入。

  这些自动化修改是在惠普和Rackspace的公有云上进行的。OpenStack项目目前可使用950台虚拟机展开测试工作。每一项测试工作都会启动一台机器,所有与测试套件有关的东西都会被安装,然后测试套件会展开测试。是的,我们正在使用云来测试关于云的文档。

  使用文档CI/CD会带来哪些好处?

  光环it学院认为,OpenStack每天都会将多个项目与多个修改进行合并,因此文档系统也需要能够跟上修改的步伐。持续集成与交付使得它成为了可能。这不仅是一个优势,也是我们环境所提出的需求。编写者的工作流与开发者的工作流相同,他们也得到了与提供捐献的开发者一样的认可与奖励。

  我们还发现,尽管捐献者仍然需要能够在本地构建文档,但是它们正在让构建文档远离本地编写者的环境。通过让已经建立的草稿做好评估准备,临时捐献者和评估者可以避免过度下载补丁,过度复制构建环境,以及过度创建文档。我们之所以能够评估源和输出,应该感谢系统的自动化。

  由于在基于云的CI/CD持续运行的同时,编写者能够迅速致力于多个补丁,因此构建速度得到了提升。在OpenStack中,基础设施团队也使用了许多针对服务器管理的技术。

  光环it学院认为,草稿文档的创建和发布允许评估者在文档被发布时快速检查修改是如何被呈现出来的。他们不需要下载和在本地创建就能够快速地进行评估。

  我们还使用了OpenStack开发者和基础设施团队所使用的工作流。对于开发者来说,他们可以更轻松地捐献文档。随着我们近期开始转而将RST作为格式,由于RST在OpenStack中已成为了标记语言,这些都变得更加容易了。

  自动化中的风险与陷阱

  光环it学院认为,考虑到编写既是一门技术也是一门艺术,我们一直在尝试着在自动化和手动之间实现一种平衡。一个早期的担忧是发布过快,或是发布不完整的文档。我们发现只要评估者采取的指导方针是“它们比我们现在的好”,“我对它们进行了测试,并知道它们是如何工作的”,或是“这个文档解决了我调查过的已经被上报的漏洞”,那么一天发布50至100次更新所隐藏的风险将会出现下降。

  我们必须要在评估者中建立起信任,在每六个月召开一次的OpenStackSummit上,我们还将会展开现场讨论。我们已经编写了评估指南,并尝试着对评估者展开培训,让他们在评估补丁包时拥有最佳的判断力。

  为此我们还缩写了一套评估指导。持续集成不仅是我们快速发布的一部分,也在促进值得信任的评估者展开最公正的评估。与此同时,让机器人进行测试评估会让他们相信自己不必担心文档无法被创建,或者是我们破坏了整个文档站点。

  文档测试

  光环it学院认为,Jenkins允许执行脚本,文档团队拥有自己的测试脚本的仓库。这些测试脚本多数都是由Python编写的。我们使用与文档相同的工作流开发这些脚本。一旦进行了重大修改,我们就会编写一个测试工具版本,随后这个版本就会被用于测试所有的文档修改。在文档仓库中,我们会使用一个测试所需的.TXT文件,这个文件会显示哪些openstack-文档-工具的版本能够与给定的系列源文件协同工作。

  为了让评估者能够将关注点聚焦在内容上,而不是格式上,自动测试为我们处理了大部分挑错的工作。为了发布文档,我们不需要通过所有的自动测试。一些测试只是用于“投票”,这意味着文档不会进行合并,除非它们通过了所有的这些测试。部分测试是用于“非投票”,这意味着即便测试失败,我们也会允许发布补丁。

  光环it学院认为,我们还对测试脚本进行了一些优化。例如,由于DocBookXML文件创建非常昂贵,一个小型的独立创建器可以用于检测哪些文件经过了修改,哪些指南中包括了这些文件,随后只有指南将被创建。如语法或URL检测等其他测试仅运行于经修改的文件。没有必要对那些没有经过修改的文件进行反复检测,测试单个文件可能会非常快,而测试上千个XML文件的速度就很慢了。

  这些优化没有用于RST文件,因为RST文件非常容易分析,指南的创建也更为迅速。由于核对投票需要非常精准,因此我们也没运行语法和拼字检查器。我们已经就自动化拼写展开了充分讨论,不过这实际上还是需要人通过肉眼进行判断。

  CI基础设施的其他用途

  光环it学院认为,我们会使用它们与我们的翻译服务器对话。翻译团队会使用Transifex翻译服务器翻译说明。只要修改被并入,那么CI基础设施就会自动将当前文本上传至翻译服务器,翻译者可以直接对它们进行翻译。每天CI基础设施会从翻译服务器定期下载所有的翻译好的内容到文档仓库。随后新的内容会作为修改被提出来。

  此外,我们还使用CI基础设施将来自一个仓库的共享文件同步至其他仓库中。这些文件是我们与其他翻译共享的词汇表和“支持附件”。在修改被并入到这些文件的主仓库中,它们会检测其他仓库中的文件是否需要升级;如果需要,那么相关修改会被提出。这一过程允许在导入和最终的人工评估中运行测试工作套件。

  程序员培训,就选光环it学院。

光环IT学院,专注IT培训16年,培养IT行业精英! —

光环IT学院

注:本站文章采用原创+网络转载两个方式,对于转载的文章,由于网络信息过多,无法100%找到原始出处。如果本站文章有侵犯了您的权益,请联系我们删除或授权。

请遵守理性,宽容,换位思考的原则

2017-06-20 13:26 发布 丨 人浏览

热点推荐

微信
公众号

微信扫码,即可关注

反馈
意见
回到
顶部