您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

DevOps平台之开源技术图谱

时间:2019-08-14 12:23:28  来源:  作者:
DevOps平台之开源技术图谱

 

转载本文需注明出处:微信公众号EAWorld,违者必究。

引言:

DevOps平台在研发过程中,集成了许多的第三方工具来完善持续集成的流程,诸如Jira、Gitlab、Jenkins等,集成一个工具其实是一个繁琐的工作,需要注意到许多的细节,那么我们又是怎么做的呢?本文就是介绍一下我们是如何将这些工具集成到DevOps平台中去的。

目录:

1.DevOps平台第三方服务集成概览

2.DevOps平台第三方服务集成思路

3.DevOps平台第三方服务集成示例

1.DevOps平台第三方服务集成概览

说明:DevOps平台所有集成的第三方服务信息都保存在平台管理的服务集成页面,如下图展示:

DevOps平台之开源技术图谱

 

1、介质服务器

DevOps平台采用的介质服务器类型为NEXUS,NEXUS是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问。

 

DevOps平台之开源技术图谱

 

2、构建引擎

DevOps平台采用的构建引擎类型为Jenkins,Jenkins是一个开源软件项目,是基于JAVA开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

Jenkins是DevOps平台很重要的一个组成部分,CICD就靠Jenkins来实现,用户可以在DevOps平台创建一个构建定义、配置好需要的任务如maven构建,还可配置定期执行或触发执行该构建任务,将用户从繁琐的构建工作中解脱出来。

 

DevOps平台之开源技术图谱

 

3、部署引擎

DevOps平台采用的部署引擎类型与构建引擎同为Jenkins。

4、质量分析服务器

DevOps平台采用的质量分析服务器为SonarQube,SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。通过插件形式,可以支持包括java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy等等二十几种编程语言的代码质量管理与检测。

 

DevOps平台之开源技术图谱

 

5、项目管理服务器

DevOps平台的项目管理我们采用的是Jira和Zentao这两个专业化的工具,依靠这两个工具支持起了DevOps平台的项目管理、概览和任务三大模块,用户可以很便捷的在DevOps平台查看编辑项目的基本信息、新建一个迭代和查找指派给自己的需求任务bug,提高工作效率。

JIRA 是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

 

DevOps平台之开源技术图谱

 

Zentao 是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,实现了软件的完整生命周期管理。

6、容器云服务器

DevOps平台集成的容器云服务器类型为k8s。

容器云以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建,发布和运行分布式应用的平台。

 

DevOps平台之开源技术图谱

 

7、镜像服务器

DevOps集成的镜像服务器类型为Harbor。

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

 

DevOps平台之开源技术图谱

 

8、代码服务器

DevOps采用了Gitlab、Github和Svn作为代码的管理工具,支撑起了平台的代码模块,用户的项目相关代码都可以存储在以上三种工具中并关连到DevOps平台的相应项目里,方便用户查看对比代码,也为后续的CICD提供了便利。

GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

 

DevOps平台之开源技术图谱

 

9、文档服务器

Confluence服务器的存在使得整个项目生产过程中的文档有了一个集中存储的地方,方便管理。

Confluence为团队提供一个协作环境。在这里,团队成员齐心协力,各擅其能,协同地编写文档和管理项目。从此打破不同团队、不同部门以及个人之间信息孤岛的僵局,Confluence真正实现了组织资源共享。

 

DevOps平台之开源技术图谱

 

2.DevOps平台第三方服务集成思路

1、数据实体的对应

DevOps平台有属于自己的模板,比如工作项模板、迭代模板等,这就要求在集成第三方服务的时候要将获得的数据映射到DevOps模板中去再做展示,举例说,DevOps平台在集成Zentao作为项目管理工具的时候,有bug、story、task三张表,而DevOps平台只有Workitem一张表,那么我们就要将3张表的数据想办法转换到1张表中,这个过程肯定会存在概念无法对应的问题,解决思路要么就是用相近的概念替换,或者剔除掉多余的概念,总之,还是要以DevOps平台的模板为主;

2、API接口的调用

有些时候,第三方服务提供出来的api接口难以操作,或者存在接口错误的情况,此时我们就要转换思路,废弃使用api接口改为直接操作数据也许是一个好的解决方案;

拿Gitlab来说,Gitlab至今已经出了12版本,使用的api版本也已经到了v4,若我们还是使用Gitlab8的v3版api调用Gitlab12的接口是会出现问题的。

3.DevOps平台第三方服务集成示例

1、Gitlab集成

DevOps平台集成Gitlab过程大体可以分为以上3个步骤,先要做的是了解Gitlab的api接口,看一下身份认证方式是通过token还是session等,Gitlab的接口有很多我们是不需要的,此时我们就需要看DevOps模板需要哪些,不需要哪些,将需要的接口整理出来,并研究它们的QueryParam和Body的格式,验证接口是否可以正确调通,接口通了,我们得到了需要的数据,但是数据格式跟DevOps的模板不符,我们就要进行最后一步,将所得数据映射到DevOps模板就大功告成了。

1 )研究GitlabAPI接口

GitlabAPI接口我们可以直接从官网的相关文档查阅,按照官方的说明,自GitLab 9.0起,API V4是首选使用的版本。2017年8月22日发布的GitLab 9.5不支持API V3。在GitLab 11.0中删除了API v3 ,就是说11版本起Gitlab不再支持v3版本的api,所以我们在集成Gitlab的时候就要考虑集成两个版本的API。

 

DevOps平台之开源技术图谱

 

2 )筛选DevOps平台所需的接口

DevOps平台集成Gitlab仅需要应用到Gitlab的部分接口,如代码库的增删改查,分支、标签的增删改查等,过滤去无用的接口,并以查询分支接口举例。

可见,该请求的身份认证方式是通过token实现的,返回的数据格式如图显示:

 

DevOps平台之开源技术图谱

 

而DevOps代码分支模板如下图展示,所以要再做一次映射:

 

DevOps平台之开源技术图谱

 

3 )将返回数据填入DevOps模板并展示

此为集成成功后的Gitlab代码库在DevOps平台中的展示界面,用户可以在此查看代码库的文件内容,分支、标签信息,也可以对比不同分支或标签的差异:

2、Zentao集成

因为Zentao的接口设计比较特殊,在使用它的api接口来实现集成时遇到了种种问题,故改用了直接操作Zentao数据库来实现服务集成的方法。大体步骤是先研究Zentao的表结构,然后与DevOps相应表做对照,然后做DevOps服务端多数据源实现,直接从Zentao数据库读取数据,映射到DevOps的模板并展示给用户。

1 )研究Zentao表结构&将Zentao表数据映射至DevOps模板

以Zentao的zt_story表举例,如图是禅道的需求表结构:

 

DevOps平台之开源技术图谱

 

下图是DevOps工作项模板:

 

DevOps平台之开源技术图谱

 

要想在DevOps平台中展示Zentao的需求信息,还要做一次数据映射,集成时,需要先设计DevOps平台的服务端多数据源实现,就是定义一个Zentao的Dao实现,同时,Zentao的数据库需要用户来配置,解决方案1:用户可以在配置文件中配置Zentao的数据库地址以及账号密码;解决方案2:用户可以在服务集成处配置Zentao的数据库信息;两种方式的Dao层实现也是有差异的。下面展示方案1的ZentaoDao部分实现:

 

DevOps平台之开源技术图谱

 

2 )数据展示

成功集成后的任务模块展示如图,用户可以在该界面进行任务、需求、bug的增删改查

 

DevOps平台之开源技术图谱

 

4.总结

在集成一个第三方工具时,关注点无非就是如何调用API接口以及将得到的返回结果如何展示,除非API接口调用行不通,才会考虑做一个数据库的集成,在做数据库集成的时候还要小心再小心,如果存在关联表情况,可能会导致第三方工具的某些功能无法使用,还有当api接口访问不成功时,首先要确认请求的body是否符合该接口的规范,若body没问题,再考虑一下api接口的版本是否跟第三方工具的版本匹配,总之,集成并不是一个很难的事情,只要思路明确,耐心细心,总会成功。

关于作者:欣宇,普元Java开发工程师,擅长Java、MySQL、Jenkins等;参与DevOps的5.2-5.5版本的研发工作,参与九江银行的DevOps部署实施,参与碧桂园DevOps定制开发等。

关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。



Tags:DevOps   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
当前,世界对新的数字化转型项目的需求空前高涨。IDG Research 最近的一项调查发现,约有83%的组织表示,在新冠肺炎期间,他们正在加快其应用程序和基础架构的现代化以满足新市场需...【详细内容】
2020-11-13  Tags: DevOps  点击:(130)  评论:(0)  加入收藏
随着微前端、微服务等技术理念和架构的蓬勃发展,我们已经没必要去讨论为什么要前后端分离这种话题,前后端分离已成为互联网项目开发的标准模式。前后端在各自的领域发展越来越纵深。...【详细内容】
2020-11-05  Tags: DevOps  点击:(94)  评论:(0)  加入收藏
11:45日益激烈的市场竞争和不断增长的客户期望促进企业业务的发展。与此同时,采用DevOps对一些企业来说可能是一个挑战,因为它包括调整实践和更新基础设施。尽管工程资源可能...【详细内容】
2020-09-17  Tags: DevOps  点击:(106)  评论:(0)  加入收藏
随着网络架构的不断升级和业务的复杂化,对产品多环境支持的要求越来越高。产品支持的数据库、应用服务器、中间件、操作系统等的多样化,使测试环境的组合越来越多,导致测试环...【详细内容】
2020-09-03  Tags: DevOps  点击:(62)  评论:(0)  加入收藏
前面一章节我们已经了解了Agile,CI/CD,DevOps,作为DevOps的起点,对于一个团队,如何开始自己的持续集成?根据我的经验,列出了一下需要考虑的点1. 代码管理/分支策略 代码托管在哪...【详细内容】
2020-07-19  Tags: DevOps  点击:(57)  评论:(0)  加入收藏
DevOps,这个词似乎是过去几年的一个流行语,是 IT 招聘人员、软件公司和代理机构在互联网上搜索得最多的一个词。专业的支持者认为这与工具或自动化无关,但他们忽略了一点,即工具...【详细内容】
2020-04-27  Tags: DevOps  点击:(77)  评论:(0)  加入收藏
随着企业数据量持续增长、业务系统日趋复杂、市场竞争日趋激烈,用户需求需要得到越来越及时的响应,用户服务需要不间断地进行。但采用的传统的云计算服务模式,即按照传统模式开...【详细内容】
2020-04-02  Tags: DevOps  点击:(93)  评论:(0)  加入收藏
Docker基本操作1. 引言在虚拟化技术中,docker占据了重要的地位,很多公司在Devops开发运维中都会用到,在多服务应用,结合k8s,能让测试上线提高效率,在此不深入的讲解,还是那句话,我们...【详细内容】
2020-03-30  Tags: DevOps  点击:(62)  评论:(0)  加入收藏
DevOps平台在研发过程中,集成了许多的第三方工具来完善持续集成的流程,诸如Jira、Gitlab、Jenkins等,集成一个工具其实是一个繁琐的工作,需要注意到许多的细节,那么我们又是怎么做的呢?本文就是介绍一下我们是如何将这些工...【详细内容】
2019-08-14  Tags: DevOps  点击:(135)  评论:(0)  加入收藏
上期介绍了DevOps的流动原则,是让开发到运维快速的流动。而反馈原则是从运维到开发快速的反馈。这两个原则周而复始运转才能为客户交付最好最快的软件服务。今天我们来聊聊”...【详细内容】
2019-05-05  Tags: DevOps  点击:(530)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条