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