Omad羣組部署、依賴部署一鍵解決

本文來自網易雲社區html


做者:李培斌
前端

前言

基於omad部署平臺實現一鍵部署的實踐已有不少成功的經驗,杭研QA的技術先鋒們也在ks圈裏有不少不一樣的文章去闡述關於這類需求的實現和思路,固然包括咱們金融事業部QA這邊以前也有利用Jenkins+Omad實現一鍵部署的場景應用,但本次我想體現的基於omad實現一鍵羣組部署、依賴部署功能,這個有別於以前的「一鍵部署」功能,一鍵羣組部署、依賴部署工具在咱們這邊已經上線一個月了,目前功能已比較穩定,所以本文主要圍繞該工具的實現進行簡要的闡述分享。
mysql

需求

隨着業務的快速發展,業務應用隨之增多,每次項目和平常迭代須要部署的應用環境、靜態資源、cdn等將近20個,這僅僅是一套環境,對於不一樣階段不一樣環境的部署均會存在重複的狀況,好比項目測試環境的一套部署,持續集成環境的一套部署、在線確認環境的一套部署等,由此可知,一個項目的研發過程當中投入重複約60次的部署工做已經佔用QA不少的時間和精力投入,並且應用依賴的部署只能手工去OMAD平臺上一個一個去觸發,也下降不少效率,所以咱們就會造成一個簡單的需求,oamd可否支持一鍵根據我任意要部署的應用進行批量部署?可否支持應用之間依賴的順序部署?
redis

基於以上狀況的需求點以下:
sql

一、一鍵批量部署
json

二、依賴部署
api

爲平臺化的實現以上需求功能,同時結合Omad平臺現有的功能,須要作以下需求拓展:
數組

a、提供配置化的頁面,引入分組的概念,實現一鍵批量部署功能
緩存

b、權限體系維持與Omad一致(我的維度),避免水平和垂直權限紊亂問題
框架

c、應用環境健康狀態自動檢查,頁面實時檢查由工具平臺觸發的部署進度

d、產品、應用、環境、實例的關聯關係保持與Omad一致

實現

設計分析

工具使用如下Omad的api接口來獲取環境列表信息、一鍵部署、健康檢查、用戶信息獲取等:

一、/api/cli/ls:獲取我的全部的產品、應用、環境及實例的詳情信息

二、/api/cli/estatus:獲取某個環境狀態詳情

三、/api/cli/vcchange:修改倉庫、分支地址

四、/api/cli/deploy:一鍵部署

五、/api/cli/login:獲取我的token接口

因爲Omad平臺設計的產品體系是以產品爲維度劃分,應用、環境及實例均掛靠下不一樣的產品下,經過產品、應用及環境的組合形式來控制權限訪問,一鍵羣組部署和依賴部署工具做爲部署的頁面化入口,其設計理念和原有平臺的方式保持一致,工具平臺上也是根據產品、應用、環境、實例,層層掛靠遞進的模型設計,以下圖

對應的數據傳輸模型設計,以下圖

Omad的接口/api/cli/ls返回的是一個大的json數組串,所以數據流解析時直接將返回的數據進行JSONArray對象化,利用json數組對象去循環遍歷出JSONObject對象,以此類推層層遞進,直到將最後裏層的Instance給解析出來,然後根據數據傳輸模型組裝成前端須要的json串。

交互框架


一、工具平臺經過api與omad交互,實現環境數據、部署、健康檢查等功能

二、工具平臺根據api返回的數據進行不一樣類型的處理和組裝,返回前端頁面處理展現

三、羣組數據落地至本地的mysql庫,爲持久化部署提供支持

四、因爲環境列表一個很是大的json數組串,每次調用須要處理耗時較久,且我的的環境列表信息變化週期較長,所以該數據作LocalStorage緩存處理,同時提供接口支持手動刷新

五、權限控制維持Omad體系,第一次使用需用戶錄入AccessKey和AccessSecret,用戶惟一的token標識信息緩存至redis,避免屢次交互

權限控制

權限控制直接按照Omad原有權限體系來控制,按照我的權限維度作區分,實現從工具平臺頁面入口的我的產品、應用、環境權限與直接從Omad平臺入口保持一致,避免一鍵羣組部署和依賴部署的權限紊亂,引發權限滲透的狀況發生。在工具平臺這邊維護一個用戶表,記錄錄入的AccessKey和AccessSecret信息,以獲取用戶的惟一標識token信息,從而達到每一個用戶的權限隔離。

功能展現

操做指導


一、第一次訪問工具須要錄入OMAD-KEY,或錄入的OMAD-KEY信息不正確也須要從新錄入

二、選擇產品、選擇組,添加部署的應用環境信息,其中倉庫地址、分支、版本能夠爲空,爲空則表示維持現有的omad配置而不作修改。

三、組狀態下的應用環境部署狀態是可持續化的,離開頁面後從新進去組仍是會進行健康檢查,若無組化部署,離開後則再也不檢查應用環境的健康狀態。

四、部署失敗的應用須要「前往」OMAD平臺查看詳細的日誌,若OMAD在登陸狀況則直接跳轉至對應的應用環境,若未登陸則去OMAD登陸頁面。

五、應用部署過程當中,狀態會自動刷新。

頁面展現


工具現狀

一鍵部署工具已上線一個月時間,如今已接入30幾個用戶,創建近300個羣組,有效觸發一鍵部署次數達200屢次,功能逐漸趨於穩定,歡迎你們前來嚐鮮。

改進問題

一、組數據的複製功能

二、我的權限隔離後引發的數據不能共用的問題

三、部署進度刷新功能存在侷限性,沒法徹底的實時同步

四、......

邀請

Oamd一鍵羣組部署、依賴部署工具是基於Omad平臺而開發的一個測試效率工具,理論上全部接入到omad上進行部署的應用,如有羣組部署和依賴部署的需求都可以使用本工具做爲部署入口,邀請你們一塊兒來嚐嚐鮮,同時也給出一些寶貴的意見。

網易雲新用戶大禮包:https://www.163yun.com/gift


本文來自網易雲社區,經做者李培斌受權發佈。


相關文章:
【推薦】 kubernetes 1.3管中窺豹- RS(Replica Sets):the next-generation Replication Controller

相關文章
相關標籤/搜索