和艦長一起 30 天玩轉 GitLab【第二版】(iT邦幫忙鐵人賽系列書)

79折$ 513
5 /5
1位讀者評分
5
100%
4
0%
3
0%
2
0%
1
0%

全部書評 | 共1則書評

評鑑星等(可複選)
評鑑日期
user-img
5.0
|
2023/12/22
自先前看過和艦長一起30天玩轉GitLab後沒多久,這本書居然也出了第二版。但當時手上忙著研究與開發其它專案,就先把翻閱第二版的事先擱下。過了大半年,最來得開始評估Jenkins和GitLab CI兩者的異差與優劣,回過頭來看起這本2022年翻新的第二版,感覺學到的知識又更加深刻了許多。

說真的,把GitLab和Jenkins拉在一起討論,實在是小看了GitLab。有別於Jenkins是專注在CI/CD領域,如書中所述,GitLab從原本的版本控制軟體起家,在不斷發展擴充功能下,已定位自己是DevOps管理平台,參與涵蓋軟體開發過程中的各個階段。它提出了DevOps Lifecycle,定義了下面各Stage並提供相關的功能讓PM/開發人員協同作業。

Plan: 提案階段。有Issue Tracker、Issue Board和Issue Kanban等專案管理工具。
Create: 開發階段。有To-Do List和Issue List,還有Merge Request的機制,可以限制合併分支時,必須有專人核可。
Verify: 持續整合階段。藉由GitLab CI腳本實踐自動化測試/整合測試。
Package: 套件管理階段。內建的Artifact management機制,達成程式產出物管理。
Secure: 資安掃描階段。整合資安掃描軟體,進行SAST(靜態程式安全測試)、重要機敏資訊清查、程式碼品質掃描。
Release: 持續交付階段。一樣透過GitLab CI來完成自動佈署作業。
Configure: 運作環境管理階段。
Monitor: 監控階段。
Govern: 治理階段。
Manage: 管理階段。提供專案進度、工時控管等基礎的數據分析功能、圖表。

第二版的重點在於用更多的篇幅來介紹如何按步就班地利用GitLab CI撰寫出Pipeline,完成自動化編譯到佈署的一連串作業。兩相比較下,Jenkins Pipeline能做到的,基本上GitLab CI也能可以達成。巧的是兩工具都建議利用Ansible來簡化自動化佈署的難度(責任外包...XD)。而GitLab CI顯而易見的差異在於,GitLab CI是以分支的commit來觸動pipeline、擁有artifact產出物管理功能、pipeline和專案一同被版控管理等等。加上提供mesasge和API觸動pipeline的機制,以功能完整性來看,GitLab CI確實遠優於Jenkins。當然Jenkins也有數不清的Plugins可以擴充功能,所以很難斷定那個工具是第一。

GitLab中涵蓋的軟體工程觀念實在博大精深,即便是這本和艦長一起30天玩轉GitLab第二版也僅能點到為止。對於有心導入更多、更完整軟體工程制度的管理人員/開發人員而言,這本書可以是個起點,藉由GitLab這個強大的平台,漸進式的導入適合的流程與機制,以更有效率的作法產生更優質的軟體產品。
展開