2019-10-18

一、Devops整合gitlab 進行持續(xù)集成
gitlab CI已經(jīng)集成到了git lab中,只需要在項目中添加一個gitlab-ci.yml文件即可進行持續(xù)集成,
1、相關(guān)概念
Pipeline
一次 Pipeline 其實相當(dāng)于一次構(gòu)建任務(wù),里面可以包含多個流程,如安裝依賴、運行測試、編譯、部署測試服務(wù)器、部署生產(chǎn)服務(wù)器等流程。 任何提交或者 Merge Request 的合并都可以觸發(fā) Pipeline,如下圖所示:

+------------------+           +----------------+
|                  |  trigger  |                |
|   Commit / MR    +---------->+    Pipeline    |
|                  |           |                |
+------------------+           +----------------+

Stages
Stages 表示構(gòu)建階段,說白了就是上面提到的流程。 我們可以在一次 Pipeline 中定義多個 Stages,這些 Stages 會有以下特點:
所有 Stages 會按照順序運行,即當(dāng)一個 Stage 完成后,下一個 Stage 才會開始
只有當(dāng)所有 Stages 完成后,該構(gòu)建任務(wù) (Pipeline) 才會成功
如果任何一個 Stage 失敗,那么后面的 Stages 不會執(zhí)行,該構(gòu)建任務(wù) (Pipeline) 失敗
因此,Stages 和 Pipeline 的關(guān)系就是:

+--------------------------------------------------------+
|                                                        |
|  Pipeline                                              |
|                                                        |
|  +-----------+     +------------+      +------------+  |
|  |  Stage 1  |---->|   Stage 2  |----->|   Stage 3  |  |
|  +-----------+     +------------+      +------------+  |
|                                                        |
+--------------------------------------------------------+

Jobs
Jobs 表示構(gòu)建工作,表示某個 Stage 里面執(zhí)行的工作。 我們可以在 Stages 里面定義多個 Jobs,這些 Jobs 會有以下特點:
相同 Stage 中的 Jobs 會并行執(zhí)行
相同 Stage 中的 Jobs 都執(zhí)行成功時,該 Stage 才會成功
如果任何一個 Job 失敗,那么該 Stage 失敗,即該構(gòu)建任務(wù) (Pipeline) 失敗
所以,Jobs 和 Stage 的關(guān)系圖就是:

+------------------------------------------+
|                                          |
|  Stage 1                                 |
|                                          |
|  +---------+  +---------+  +---------+   |
|  |  Job 1  |  |  Job 2  |  |  Job 3  |   |
|  +---------+  +---------+  +---------+   |
|                                          |
+------------------------------------------+

二、Devops-Service 使用Helm 進行微服務(wù)應(yīng)用打包
Helm 使用稱為 chart 的包裝格式。chart 是描述相關(guān)的一組 Kubernetes 資源的文件集合。單個 chart 可能用于部署簡單的東西,比如 memcached pod,或者一些復(fù)雜的東西,比如完整的具有 HTTP 服務(wù),數(shù)據(jù)庫,緩存等的 Web 應(yīng)用程序堆棧。
chart 通過創(chuàng)建為特定目錄樹的文件,將它們打包到版本化的壓縮包,然后進行部署。

三、整體流程

CI流程.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容