官术网_书友最值得收藏!

3DevOps平臺第三方服務集成示例

Gitlab集成

DevOps平臺集成Gitlab過程大體可以分為以上3個步驟,先要做的是了解Gitlabapi接口,看一下身份認證方式是通過token還是session等,Gitlab的接口有很多我們是不需要的,此時我們就需要看DevOps模板需要哪些,不需要哪些,將需要的接口整理出來,并研究它們的QueryParamBody的格式,驗證接口是否可以正確調通,接口通了,我們得到了需要的數(shù)據(jù),但是數(shù)據(jù)格式跟DevOps的模板不符,我們就要進行最后一步,將所得數(shù)據(jù)映射到DevOps模板就大功告成了。

1)研究GitlabAPI接口

GitlabAPI接口我們可以直接從官網(wǎng)的相關文檔查閱,按照官方的說明,自GitLab 9.0起,API V4是首選使用的版本。2017822日發(fā)布的GitLab 9.5不支持API V3。在GitLab 11.0中刪除了API v3,就是說11版本起Gitlab不再支持v3版本的api,所以我們在集成Gitlab的時候就要考慮集成兩個版本的API

2)篩選DevOps平臺所需的接口

DevOps平臺集成Gitlab僅需要應用到Gitlab的部分接口,如代碼庫的增刪改查,分支、標簽的增刪改查等,過濾去無用的接口,并以查詢分支接口舉例。

可見,該請求的身份認證方式是通過token實現(xiàn)的,返回的數(shù)據(jù)格式如圖顯示:

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

3)將返回數(shù)據(jù)填入DevOps模板并展示

此為集成成功后的Gitlab代碼庫在DevOps平臺中的展示界面,用戶可以在此查看代碼庫的文件內容,分支、標簽信息,也可以對比不同分支或標簽的差異:

Zentao集成

因為Zentao的接口設計比較特殊,在使用它的api接口來實現(xiàn)集成時遇到了種種問題,故改用了直接操作Zentao數(shù)據(jù)庫來實現(xiàn)服務集成的方法。大體步驟是先研究Zentao的表結構,然后與DevOps相應表做對照,然后做DevOps服務端多數(shù)據(jù)源實現(xiàn),直接從Zentao數(shù)據(jù)庫讀取數(shù)據(jù),映射到DevOps的模板并展示給用戶。

1)研究Zentao表結構&將Zentao表數(shù)據(jù)映射至DevOps模板

Zentaozt_story表舉例,如圖是禪道的需求表結構:

下圖是DevOps工作項模板:

要想在DevOps平臺中展示Zentao的需求信息,還要做一次數(shù)據(jù)映射,集成時,需要先設計DevOps平臺的服務端多數(shù)據(jù)源實現(xiàn),就是定義一個ZentaoDao實現(xiàn),同時,Zentao的數(shù)據(jù)庫需要用戶來配置,解決方案1:用戶可以在配置文件中配置Zentao的數(shù)據(jù)庫地址以及賬號密碼;解決方案2:用戶可以在服務集成處配置Zentao的數(shù)據(jù)庫信息;兩種方式的Dao層實現(xiàn)也是有差異的。下面展示方案1ZentaoDao部分實現(xiàn):

2)數(shù)據(jù)展示

成功集成后的任務模塊展示如圖,用戶可以在該界面進行任務、需求、bug的增刪改查

主站蜘蛛池模板: 孙吴县| 凤阳县| 韶山市| 千阳县| 磐安县| 阳山县| 乐亭县| 瑞昌市| 古浪县| 启东市| 铜梁县| 天津市| 垦利县| 都江堰市| 琼结县| 和田县| 邻水| 班玛县| 宁津县| 宣汉县| 莒南县| 文成县| 宁乡县| 渑池县| 湖口县| 德惠市| 家居| 寿阳县| 宕昌县| 莒南县| 临猗县| 曲麻莱县| 甘泉县| 盐池县| 昭平县| 淮南市| 黄骅市| 洛隆县| 盘山县| 安溪县| 大埔区|