DevOps實踐-設計-部署流水線設計

DevOps實踐系列文章,請參見連接报慕。

描述

在一個軟件產(chǎn)品公司中豆巨,一般的基礎設施會包括在每個產(chǎn)品線上的各種環(huán)境畜侦、以及針對這些環(huán)境構(gòu)建起來的部署流水線元扔。

  • local:本地開發(fā)環(huán)境
  • dev:內(nèi)部開發(fā)環(huán)境
  • mock:團隊間協(xié)作時使用的模擬環(huán)境
  • test:供測試人員測試環(huán)境
  • performance:非功能需求測試環(huán)境
  • stage:試運行環(huán)境(新功能部分目標用戶使用)
  • production:對外開放的產(chǎn)品環(huán)境

一個已經(jīng)上線的正式產(chǎn)品,第一要務就是保證線上系統(tǒng)是穩(wěn)定可靠運行的旋膳。所以需要通過各種手段保證新功能上線澎语,線上系統(tǒng)問題的快速反饋與立即解決。根據(jù)不同公司產(chǎn)品形態(tài)的不同验懊,每個公司都需要有一套功能上線流程以保證線上系統(tǒng)的正常運行咏连。


開發(fā)到上線的流程(使用mermaid編寫)

上圖中比較詳盡的描述了一個功能從開發(fā)到上線的整體過程。且在過程中每一個過程都由不同的角色參與鲁森。最終保證系統(tǒng)在線上環(huán)境的正常運行祟滴。故根據(jù)上圖的流程下面對持續(xù)交付過程中操作進行分析。

分析與拆分

軟件開發(fā)是一個團隊合作的工作歌溉。在圖中由相關(guān)的人員做相關(guān)的推動之后功能才能進入到下一個步驟垄懂。每一個步驟都可以將動作分為:構(gòu)建、部署痛垛、測試和發(fā)布草慧。而每個步驟所做的內(nèi)容也有所不同,下面以步驟和環(huán)境例舉要做哪些操作:

步驟 構(gòu)建 部署 測試 發(fā)布
開發(fā)集成 編譯
代碼掃描
單元測試
簡單部署
部分環(huán)境部署
開發(fā)測試 推送到測試環(huán)境
團隊間協(xié)作 編譯
自動接口測試
無部署
mock服務器
接口測試 將接口模擬發(fā)布
交付測試 編譯
自動驗收測試
全環(huán)境部署 自動回歸測試 推送到用戶驗證環(huán)境
交付運維 編譯 容器部署
負載節(jié)點
升級腳本驗證
release notes驗收
推送到正式環(huán)境
正式上線 編譯
構(gòu)建容器
容器部署
負載節(jié)點
無測試 允許回滾

對上面的操作進行拆分后匙头,可以分為對資源的管理工作:

  • 二進制包
    下載代碼漫谷、依賴管理、編譯蹂析、打包舔示、代碼掃描、單元測試
  • 容器
    構(gòu)建电抚、發(fā)布惕稻、拉取、運行
  • 部署
    架構(gòu)即代碼蝙叛、藍綠發(fā)布俺祠、回滾

設計原則

前一段時間寫了一篇分層架構(gòu)模式,這里以分層的方式去說明部署流水線的分層關(guān)系借帘。這里的分層其實是理解或概念的層面蜘渣。這里將分部署流水線設計分為幾個層次:服務層,流程層肺然,原子操作層蔫缸。

  • 服務層
    提供自定義能力,可以將流程和原子操作組合成一個適用于當前業(yè)務系統(tǒng)的狰挡。這個是最頂層捂龄,最實用的實用層。

  • 流程層
    提供一整套流程提供各種各樣的流程加叁。大到可以將整體持續(xù)交付寫到一個Pipeline內(nèi)倦沧,也可以只對容器構(gòu)建,發(fā)布過程形成一個Pipeline它匕。只要之后可以用流程去組織各種各樣的大的服務展融。

  • 原子操作層
    提供最基礎的原子操作。這里可以將上面提到的對資源的操作作為一個原子操作豫柬。不需要劃分的更小告希。

總結(jié)

最好的實踐,是在有大量項目的情況下去實現(xiàn)原子操作和流程層烧给,然后在這兩層上去實現(xiàn)具體項目的服務燕偶。如果產(chǎn)品型公司,比較好的方式是直接實現(xiàn)流程層和服務層础嫡。這樣既可以滿足業(yè)務要求指么,也可以降低流水線構(gòu)建的成本。

參考

持續(xù)交付

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末榴鼎,一起剝皮案震驚了整個濱河市伯诬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巫财,老刑警劉巖盗似,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異平项,居然都是意外死亡赫舒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門闽瓢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來号阿,“玉大人,你說我怎么就攤上這事鸳粉∪咏В” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵届谈,是天一觀的道長枯夜。 經(jīng)常有香客問我,道長艰山,這世上最難降的妖魔是什么湖雹? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮曙搬,結(jié)果婚禮上摔吏,老公的妹妹穿的比我還像新娘鸽嫂。我一直安慰自己,他們只是感情好征讲,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布据某。 她就那樣靜靜地躺著,像睡著了一般诗箍。 火紅的嫁衣襯著肌膚如雪癣籽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天滤祖,我揣著相機與錄音筷狼,去河邊找鬼。 笑死匠童,一個胖子當著我的面吹牛埂材,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汤求,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼嘲更,長吁一口氣:“原來是場噩夢啊……” “哼乾吻!你這毒婦竟也來了谆棱?” 一聲冷哼從身側(cè)響起阶祭,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勒奇,沒想到半個月后预鬓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡赊颠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年格二,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竣蹦。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡顶猜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痘括,到底是詐尸還是另有隱情长窄,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布纲菌,位于F島的核電站挠日,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏翰舌。R本人自食惡果不足惜嚣潜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椅贱。 院中可真熱鬧懂算,春花似錦只冻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酸役,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驾胆,已是汗流浹背涣澡。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丧诺,地道東北人入桂。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像驳阎,于是被迫代替她去往敵國和親抗愁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容