──── 全新改版 ────
配合 GitLab 15 全新改版,內容增量 1.5 倍
更多圖片、更多文字、更多延伸思考及更多的實戰經驗,
大幅改寫第一版超過一半以上的內容,
為讀者提供清晰易懂的 GitLab 入門指引!
好評推薦
早在 2015 年,那個台灣對於 DevOps 還懞懞懂懂的年代,正瑋與一群熱血份子就率先成立 DevOps Taiwan 社群,對於推廣 DevOps 觀念及技術,有難以磨滅的貢獻。在這本書中,你並不會看到他一股腦推銷 GitLab 功能,而是不斷為文提醒讀者反思。有技術,有熱情,由他來詮釋 DevOps,我們是充滿信心的。
──── 敏捷魔藥師|葉秉哲(William Yeh)
作者除了完整地闡述 GitLab 的整體概念之外,更特別在第 5 章,針對 CI / CD / Pipeline 該怎麼設計與實踐,有著實務的介紹,把我心裡的想法透過 GitLab 實踐出來。
──── 技術部落格《Complete Think》作者|Rick Hwang
如果你正在找尋團隊可以使用的工具及平台;想要快速且全面的了解 GitLab 這個 DevOps 平台;也希望可以從中看到可參考的範例作為開始導入的評估基準,那麼這本書會是你非常重要的資訊來源。
──── 系統分析師|GitLab Hero 陳佑竹(墨嗓)
♛ 第一本台灣本土的 GitLab 專書 ♛
還在苦苦尋覓適合團隊的 DevOps 工作流程與工具?
不如儘早擁抱 GitLab Workflow 已為您備齊的The One DevOps Platform!
全新改版 ☛ 內容增量 1.5 倍,按著 DevOps Lifecycle,跟著 GitLab Hero 一起學習 GitLab 流派的 DevOps 功夫!
入門指引 ☛ 幫助讀者迅速進入 GitLab 建構的開發維運工具生態系!
經驗分享 ☛ 在規劃 CI/ CD Pipeline 時會遇見哪些重要的關鍵問題?
內容簡介
本書初版改編自第 11 屆 iT 邦幫忙鐵人賽 DevOps 組冠軍系列文章 ──《和艦長一起 30 天玩轉 GitLab》── 是第一本台灣本土的 GitLab 專書。隨著 2022 年 GitLab 邁入第 15 版,本書同步大幅改版,內容增量 1.5 倍,將帶領讀者入門 GitLab —— The One DevOps Platform!
精彩內容
❑ 運用 GitLab 建構團隊的開發協作工作流程
迅速一窺 GitLab 規劃的 DevOps Lifecycle,搭配 GitLab 的豐富功能,為團隊搭建一條從開發至維運的工作流程。
❑ Pipeline as Code 以簡便的方式建立 CI/CD Pipeline
只要一個 YAML 檔案,即可編織出多條包含不同工作內容的 Pipeline,GitLab CI 是團隊在實踐 DevOps 之持續整合、持續交付及自動化的重要角色。
❑ GitLab Auto DevOps 之牛刀小試
認識名為 Auto DevOps 的神秘黑魔法,究竟能自動產生 DevOps Pipeline 的神奇功能,其葫蘆裡賣的是什麼藥。
❑ 一步一腳印學習 CI/CD 的關鍵要點
跟著作者一起從零開始建立 CI/CD Pipeline,本書不只教你如何使用 GitLab CI,更帶著讀者一步一步的學習在設計與實踐 CI/CD Pipeline 時,有哪些需要思考的關鍵要點。
作者簡介:
陳正瑋
表面上是只會在臉書釋放夫妻閃光文的愛妻家,私底下其實是默默關注新知的技術愛好者。平時熱衷關注 DevOps 相關新知與技術,期盼未來人人都可以像畢凱艦長一樣用嘴巴叫所有主機做事!工作之餘亦擔任 GitLab Hero、DevOps Taiwan community 志工、DevOpsDays Taipei 的其中一位 Organizer。
曾擔任《Effective DevOps 中文版》翻譯,並且於第 11 屆 iT 邦幫忙鐵人賽以《和艦長一起 30 天玩轉 GitLab》 網路系列文章獲得 DevOps 組冠軍。
--
個人網站 ☛ https://chengweichen.com
目錄
CH01 DevOps 及 GitLab 的基本認識
1-1 何謂 DevOps
1-1-1 DevOps 的關鍵歷史
1-1-2 廣義的 DevOps
1-1-3 狹義的 DevOps
1-1-4 DevOps 的現在與未來
1-2 GitLab 基本認識
1-3 【延伸思考】GitLab CE 和 GitLab EE 該如何選擇?
1-4 【延伸思考】自行架設 GitLab Server 或使用 gitlab.com?
CH02 使用 GitLab
2-1 GitLab 的環境需求
2-2 GitLab 的安裝
2-2-1 以 Package Management 的方式安裝 GitLab Server
2-2-2 以 Docker Container 的方式安裝 GitLab Server
2-3 Admin Area:維運 GitLab Server 的管理者後台
2-4 GitLab 的 User 與權限控管
2-4-1 使用者註冊與新增使用者
2-4-2 權限控管
2-5 First Project 與 First Commit
2-5-1 建立第一個 Project
2-5-2 送出第一個 Commit
2-6 【延伸知識】神奇的自動安裝包 Omnibus GitLab
2-7 【延伸知識】架設並使用 Mattermost 作為團隊的溝通協作平台
CH03 GitLab: The One DevOps Platform
3-1 DevOps Lifecycle
3-2 Plan
3-2-1 專案管理工具 1:Issue Tracker、Issue Board 與 Kanban
3-2-2 專案管理工具 2:Epic、Roadmap、Iterations 與 Milestones
3-2-3 專案管理工具 3:CRM 與 Service Desk
3-3 Create
3-3-1 專注於當前的任務:To-Do List 與 Issue List
3-3-2 貼心的便捷功能 1:自動關聯 Issue、Commit 及 Merge Request
3-3-3 貼心的便捷功能 2:Quick Actions與 Description Templates
3-3-4 為專案撰寫文件:Snippets、Wiki & GitLab Pages
3-3-5 隨時可用的線上編輯器:Web IDE
3-4 Verify
3-4-1 GitLab 內建整合的 CI 工具:GitLab CI
3-4-2 強大的 DevOps Pipeline 範本:Auto DevOps
3-5 Package
3-5-1 GitLab 內建的套件儲存庫:Package Registry
3-5-2 GitLab 內建的容器儲存庫:Container Registry
3-6 Secure
3-6-1 檢查程式碼是否含有已知漏洞:Static Application Security Testing (SAST)
3-6-2 找出不小心 Commit 的重要機敏資訊:Secret Detection
3-6-3 運用程式碼品質掃描提供 Code 持續改善方向:Code Quality
3-6-4 針對 Container image 的漏洞掃描:Container Scanning
3-6-5 付費的進階 Security 功能
3-7 Release
3-7-1 有條不紊的釋出你的程式:Releases
3-7-2 管理應用程式的部署:Environments
3-7-3 動態管理應用程式的功能:Feature flags
3-8 Configure
3-8-1 使用 GitLab K8s Agent 連接 Kubernetes
3-8-2 使用 Terraform
3-8-3 ChatOps
3-9 Monitor
3-9-1 Error Tracking
3-9-2 Product Analytics
3-9-3 更多 Incident management 功能
3-10 Govern
3-11 Manage
3-11-1 Value Stream Analytics
3-11-2 其他的 Analytics 與 Charts
CH04 GitLab CI
4-1 GitLab Runner 簡介
4-2 架設第一個 GitLab Runner
4-2-1 不同層級的 GitLab Runner
4-2-2 安裝與架設 GitLab Runner
4-2-3 架設 Docker in Docker 的 GitLab Runner
4-3 建立第一個 CI Job
4-3-1 .gitlab-ci.yml 的基本結構
4-4 【延伸知識】Git 分支策略與 GitLab flow
4-4-1 GitLab flow 新增的 Branch
4-4-2 GitLab flow 的原則
4-4-3 GitLab flow 的工作流程
4-5 【延伸思考】該為 GitLab Runner 選擇哪一種 Executor?
4-5-1 GitLab Runner 與 Executor 的關係
4-5-2 目前可選用的 Executor
4-5-3 該選擇哪一種 Executor?
4-6 【延伸思考】為何 GitLab CI 沒有在運作?
4-7 【延伸思考】當 CI Service 臨時無法提供服務時該怎麼辦?
4-8 【延伸知識】運用 GitLab CI 實現更多自動化動作
4-8-1 GitLab API 與 CI Trigger
4-8-2 Scheduling Pipelines
CH05 實作 CI/CD Pipeline
5-1 本章範例情境與實作環境說明
5-1-1 範例情境說明
5-1-2 建立實作環境
5-2 Stage: build
5-2-1 建立 Job: build
5-2-2 Stage: Build 之目的
5-2-3 Artifacts repository
5-2-4 使用 GitLab CI - Job Artifacts 功能
5-2-5 【延伸思考】Stage: build 的關鍵議題?
5-3 Stage: deploy
5-3-1 建立 Job: deploy
5-3-2 Stage: deploy 之目的
5-3-3 Artifacts 的檔案傳遞
5-3-4 執行多項 Deploy 相關動作
5-3-5 【延伸思考】Stage: deploy 的關鍵議題?
5-4 Stage: test
5-4-1 建立 Job: build
5-4-2 Stage: test 之目的
5-4-3 執行自動化測試
5-4-4 【延伸思考】Stage: test 的關鍵議題?
5-5 Pipeline 微調與重構 1
5-5-1 建立更多的 Pipeline
5-5-2 調整 only: 規則,合併相似的 Job
5-5-3 善用 extends:,重複利用相同的 Job 內容
5-5-4 運用 before_script: 完成 Job 所需的事前動作
5-5-5 Merge request pipeline 與自動 Merge
5-5-6 在 pre-production 環境,實施壓力測試
5-5-7 【延伸思考】多條 Pipeline 的關鍵議題?
5-6 Pipeline 微調與重構 2
5-6-1 根據不同條件觸發 Job
5-6-2 根據不同的條件產生 Job
5-6-3 運用 Protect variable,保護重要的變數
5-6-4 【延伸思考】Production pipeline 的關鍵議題
5-6-5 運用巢狀 include: 管理 Pipeline
5-6-6 【延伸思考】當 Pipelines 與 Jobs 越來越複雜時?
CH06 Auto DevOps 之牛刀小試
6-1 Auto DevOps 簡介
6-1-1 Auto DevOps Requirements
6-1-2 Auto DevOps 各種 Feature
6-2 在沒有 Kubernetes 的狀況下試用 Auto DevOps
6-3 為 Auto DevOps 啟用 Kubernetes
6-4 Auto DevOps 之 Auto Deploy
6-4-1 Auto Deploy 之 Stage: Staging
6-4-2 Auto Deploy 之 Stage: Production
6-5 Auto DevOps 之 Auto Browser Performance Testing
6-5-1 瀏覽 sitespeed.io 檢測報告
6-5-2 針對多個 URL 進行 Performance Testing
6-5-3 【延伸知識】將 Browser Performance Testing 運用在其他 Project
6-6 客製化你的 Auto DevOps Pipeline
CH01 DevOps 及 GitLab 的基本認識
1-1 何謂 DevOps
1-1-1 DevOps 的關鍵歷史
1-1-2 廣義的 DevOps
1-1-3 狹義的 DevOps
1-1-4 DevOps 的現在與未來
1-2 GitLab 基本認識
1-3 【延伸思考】GitLab CE 和 GitLab EE 該如何選擇?
1-4 【延伸思考】自行架設 GitLab Server 或使用 gitlab.com?
CH02 使用 GitLab
2-1 GitLab 的環境需求
2-2 GitLab 的安裝
2-2-1 以 Package Management 的方式安裝 GitLab Server
2-2-2 以 Docker Container 的方式安裝 GitLab Server
2-3 Admin Area:維運 GitLab Server 的管理者後...