加速:高效能軟件交付之道 Accelerate DevOps with GitHub: Enhance software delivery performance with GitHub Issues, Projects, Actions, and Advanced Security

Michael Kaufmann 譯者:華東師範大學全民數位素養與技能訓練基地

商品描述

本書是關於DevOps的實用指南,使用GitHub作為平臺,展示了如何利用GitHub工具集的強大功能進行協作、精益管理,
以及實現安全快速的軟件交付,從而將DevOps和DevSecOps提升到一個新的水平。
書中為常見問題提供了簡單的解決方案,讀者將學習如何找到正確的度量標準,以及如何學習其他團隊的成功經驗。
讀者將學會利用GitHub來加速價值交付,具體包括:
使用GitHub Projects實現工作的可視化,使用GitHub Insights衡量正確的指標,
使用GitHub Actions和Advanced Security開展可靠的和經過驗證的工程實踐,以及遷移到基於事件的、鬆散耦合的軟件架構。
zui後,本書介紹了影響軟件交付性能的因素,並指出了一些可持續改進的方向。

目錄大綱

目錄
譯者序
推薦序一
推薦序二
前言
作者簡介
審校者簡介
第一部分 精實管理與協作
第1章 重要的指標 2
為什麼要加速 2
工程效率 4
高效率企業 8
衡量重要的指標 10
提升開發者效率的SPACE框架 12
目標與關鍵成果 15
案例研究 18
總結 19
拓展閱讀 20
第2章 計畫、追蹤與視覺化工作 21
工作就是工作 21
非計劃的工作和返工 22
工作視覺化 23
限制在製品 25
GitHub的Issues、Labels和Milestones 26
GitHub Projects 35
第三方整合 41
案例研究 46
總結 47
拓展閱讀與參考資料 47
第3章 團隊合作與協作開發 49
軟體開發是一項團隊活動 49
協作的核心—Pull Request 50
動手實作:建立一個Pull Request 53
提交更改 57
Pull Request審閱 61
程式碼審閱的最佳實務 67
總結 68
拓展閱讀與參考資料 68
第4章 異步工作:無所不在的協作 70
比較同步與非同步工作 70
分散式團隊 74
跨團隊合作 74
轉變為非同步工作流程 75
團隊和Slack整合 75
GitHub Discussions 76
GitHub Pages和GitHub Wiki 79
透過GitHub Mobile隨時隨地工作 86
案例研究 88
總結 89
拓展閱讀與參考資料 89
第5章 開源與內部開源對軟體交付效能的影響 90
自由軟體與開源軟體的歷史 91
開源與開放開發的差異 93
企業採用開源的好處 93
實施開源策略 94
開源與內部開源 95
內包的重要性 96
GitHub贊助商 97
總結 99
拓展閱讀與參考資料 100
第二部 工程DevOps實踐
第6章 使用GitHub Actions實現自動化 102
GitHub Actions概述 102
工作流程、管線和操作 103
YAML基礎 104
工作流程語法 105
使用金鑰工作 111
動手實作:第一個工作流程 114
動手實作:第一個操作 117
GitHub Marketplace 120
總結 122
拓展閱讀 122
第7章 運轉工作流程 124
託管執行器 124
自託管執行器 127
使用執行器群組管理存取 131
使用標籤 132
擴充自託管執行器 133
監控與故障排除 134
案例研究 136
總結 136
拓展閱讀 136
第8章 使用GitHub Packages管理依賴 137
GitHub Packages 138
將npm包和Actions結合使用 140
將Docker和包結合使用 143
Apache Maven、Gradle、NuGet和RubyGems包 146
總結 148
拓展閱讀 149
第9章 部署到任何平台 150
分階段部署 150
自動化部署 153
如何部署到Azure AppService 153
如何部署到AWS ECS 156
如何部署到GKE 158
基礎設施即代碼 160
衡量成功 164
案例研究 166
總結 167
拓展閱讀 167
第10章 功能標記與功能生命週期 169
什麼是功能標記 169
功能的生命週期 170
功能標記的優點 172
開始使用功能標記 173
功能標記和技術債 174
框架與產品 175
使用功能標記進行實驗 176
總結 178
拓展閱讀 178
第11章 主幹開發 179
主幹開發簡介 179
為什麼要避免複雜分支 180
其他git工作流程 181
使用MyFlow加速 184
案例研究 189
總結 190
拓展閱讀 190
第三部分 自信發布
第12章 使用左移測試來提高質量 194
利用測試自動化進行左移測試 194
根除不穩定的測試 199
代碼覆蓋率 199
右移—在生產中測試 200
故障注入與混沌工程 201
測試與合規性 202
GitHub中的測試管理 203
案例研究 205
總結 206
拓展閱讀 206
第13章 左移安全和DevSecOps 208
左移安全 208
假設攻擊、零信任與安全第一的思考方式 209
攻擊模擬 211
紅隊藍隊演習 211
攻擊場景 213
GitHub Codespaces 215
總結 219
拓展閱讀 220
第14章 代碼保護 221
依賴管理和Dependabot 222
密碼掃描 230
代碼掃描 234
撰寫CodeQL查詢 245
總結 248
拓展閱讀 248
第15章 保護部署 250
容器和基礎設施安全掃描 250
自動化基礎設施變更流程 253
原始碼和基礎設施完整性 254
動態應用程式安全測試 259
加固發布流水線的安全性 261
案例研究 266
總結 267
拓展閱讀 267
第四部分 軟體架構
第16章 鬆散耦合架構與微服務 270
鬆散耦合系統 270
微服務 271