如何快速複製BAT級的DevOps工具鏈

一、流水線改變世界html

1910年,福特汽車在引入流水線生產以後,Model-T 的組裝時間縮短了8倍,從12.5小時降到了1.5小時,這就是流水線改變世界的神話,造就了汽車上的國家!docker

那流水線怎麼改變軟件交付的世界呢?運維

二、持續交付與部署流水線maven

2010年,Jez Humble 的大做《持續交付-發佈可靠軟件的系統方法》出版,軟件交付的世界所以大不一樣,部署流水線就是其中很是重要的一章。工具

2.1 部署流水線的定義單元測試

大神 Jez Humble 對部署流水線的定義:部署流水線是指軟件從版本控制庫到用戶手中這一過程的自動化表現形式。對軟件的每次變動都會經歷一個複雜流程才能發佈。測試

另外一位大神 Martin Fowler 認爲部署流水線是持續交付的核心環節。優化

2.2 持續交付屋的頂樑柱插件

高效運維社區 DevOps 專家,前百度工程效率專家張樂同窗結合本身多年的實踐經驗和精益屋整理出持續交付屋,其中可靠可重複的流水線就是核心內容。從提交與編譯,測試與驗證到部署與運維,打通軟件交付的完整路徑,實現真正的端到端部署流水線。設計

三、部署流水線案例3.1 持續交付示例流水線

在《持續交付》書中,Jez Humble 爲讀者提供了一套最基本的流水線示例,如圖所示:

圖中的多個階段依靠相似 Jenkins 這樣的持續交付引擎工具來驅動,版本控制和製品庫管理是流水線的輸入和輸出。

3.2 百度案例

百度是工程效率很是出類拔萃的公司,敏捷和持續交付都具有很強的能力。如圖就是百度建設的可靠可重複的交付流水線,經過交付流水線,將全局過程標準化、自動化、可視化。

匯聚多模塊之間的部署流水線

3.3 國外案例:Netflix的流水線

紙牌屋的出品公司,國外視頻的一哥 Netflix,也是一家工程能力很是優秀的公司,Netflix 基於 Jenkins 開發了持續交付平臺 Spinnaker,從代碼嵌入、持續集成、環境製做、部署、測試到發佈等各環節都完整打通。

其中還用到了基礎設施即代碼、不可變基礎設施等諸多實踐。

四、全開源端到端部署流水線

看到這裏,你必定在想:

  1. 這些大公司的經驗咱們真能複製嗎?

  2. 在面臨 DevOps 轉型和落地的關鍵時刻,咱們應該怎麼辦呢?

高效運維社區傾力打造的全開源端到端部署流水線就是你要的答案

4.1 流水線設計要點:

1. 全開源工具鏈:示例中的工具全是開源工具,涵蓋依賴與鏡像管理、代碼管理、持續集成、代碼質量、自動化測試、容器化編排和日誌管理等。

2. 多階段過程:示例中將流水線分爲三個階段:提交階段、驗證階段、部署階段。

· 提交階段:代碼提交 Merge Requst 前進行編譯、單元測試的驗證,防止破壞主線

· 驗證階段:基於主線的集成和多環境的自動化測試驗證,輸出可部署的高質量的版本包

· 部署階段:基於已發佈的版本包部署到生產環境

3. 開源工具集成:開源雖好,可不要貪杯哦!

開源工具鏈完整集成和跨領域多工具使用,是大多數企業望而卻步的緣由。高效運維社區的專家們基於實踐經驗,爲你們趟平了前路。

關鍵點1:基於Jenkins與Gitlab集成,實現提交驗證。須要使用 Gitlab API、Jenkins Gitlab 插件、Job深度配置實現完美集成

關鍵點2:Maven 與 Docker 集成實現鏡像自動製做,咱們選用 Spotify 的 docker-maven 插件與 Dockerfile 集成實現鏡像的自動製做和版本關聯。

關鍵點3:SonarQube 質量門設置和代碼質量分析

關鍵點4:ELK 收集、分析和展現日誌信息

4. 最新的 Pipeline 與 BlueOcean:

在案例中,咱們選擇使用 Jenkins 2.0 中全新的 Pipeline 和 BlueOcean 來實現和但是整個流水線,整個過程盡收眼底。

精華都在這裏。流水線實錄視頻:https://v.qq.com/iframe/preview.html?vid=z03959pwc0r&width=500&height=375&auto=0

想要將全開源端到端的流水線帶回去嗎?

DevOps 強調持續改進,不斷進化,高效運維社區踐行 DevOps 理念,也在不斷的優化和改進全開源端到端部署流水線。

8月18日的 DevOpsDays · 上海站將會發布最新的2.0版本,將加入更多的實踐和工具,幫助咱們的企業快速實現 DevOps 的轉型和落地。

相關文章
相關標籤/搜索