課程簡介
配置管理是持續(xù)集成及DevOps實施的重要技術支撐及實施基礎。本課程全面細致地介紹配置管理的理論及最佳實踐,包括版本控制、協(xié)同開發(fā)、跨產品版本管理、安全策略、構建管理、持續(xù)集成的完整過程。為多人快速協(xié)同開發(fā)、敏捷測試、DevOps、持續(xù)集成及持續(xù)發(fā)布建設堅實的配置管理基礎支撐。
目標收益
學員可以系統(tǒng)性地掌握配置管理的相關知識、并合理進行分支管理、基線管理等實戰(zhàn)。通過本次培訓可以為快速協(xié)同開發(fā)環(huán)境及持續(xù)交付的項目要求提供有效支持。
將在課程中要逐一解決的問題:
1. 如何保證源碼庫中的代碼的可用性?
2. 在什么情況下使用分支?
3. 基線的類型有幾種?分別在什么情況下使用?
4. 公司的項目背景對代碼安全比較敏感,多個團隊工作在一個大項目里,但希望每個團隊只能訪問自己團隊部分的源碼,而技術上又彼此依賴,有沒有解決方案?
5. 哪些類型的文件適合納入版本庫?哪些文件類型不適合?希望有個最佳實踐的規(guī)范建議
6. 公司有的是項目型開發(fā)、有的是產品型開發(fā),這兩種類型的版本管理有何不同?
7. 多團隊協(xié)同開發(fā)的情況下應該如何合理進行版本控制?既能保證版本清晰、又不會因為一些改動影響效率。
培訓對象
? 配置管理員
? 開發(fā)人員
? 持續(xù)集成實施人員
? 開發(fā)經理、項目經理
課程大綱
第一章【軟件配置管理基礎理論】 這一模塊先系統(tǒng)性地介紹軟件配置管理以及版本控制的理論知識;讓學員從原理上掌握版本管理的運行機制,為后續(xù)建設配置管理體系的實戰(zhàn)打下堅實的基礎。 |
(1)什么是軟件配置管理 (2)案例分享:對比導入版本控制之前之后的實際變化 (3)源代碼版本控制的原理 (4)版本管理工具的演進:集中式版本控制?分布式版本控制 (5)一個比較難招到人才的崗位:配置管理員 |
第二章【協(xié)同開發(fā)】 多人共同編輯和修改同一段源代碼是開發(fā)團隊的常見現(xiàn)象。這是協(xié)同開發(fā)必須面對的現(xiàn)象,本模塊介紹配置管理的協(xié)同開發(fā)原則及沖突處理的方法,目標效果是在多人協(xié)同開發(fā)模式下保障版本清晰、版本演進、及項目效率 |
(1)工作空間與版本庫的定位與用途 (2)代碼傳遞從星形模式到網狀模式 (3)版本覆蓋的預防 (4)版本沖突的處理方法和原則 (5)用任務單元來組織工作 |
第三章【版本分支的使用及規(guī)范】 分支是版本控制中的重要內容,它就像一把雙刃劍,使用得當則配置管理靈活又強大、反之則增加了復雜性和混亂。本章內容分享分支的原理及重點講解分支使用的最佳實踐。 |
(1)深入理解何為版本分支 (2)庫級分支的配置及使用 (3)文件級分支的版本規(guī)則及應用 (4)分支的分支 (5)分支的合并及沖突處理 (6)擴展討論:開發(fā)庫-受控庫-產品庫模式的優(yōu)缺點 |
第四章【基線的使用及規(guī)范】 基線同樣是配置管理中的重要內容,合理使用基線可以化繁為簡,通過各階段的基線規(guī)則,可以讓復雜的源碼項目管理變得清晰。更重要的是,基線可以極大提高版本管理的可靠性。 |
(1)基線的概念及作用 (2)開發(fā)進程中的基線設置 (3)階段性成果的基線應用 (4)發(fā)布級的基線設置 (5)分支和基線的混合應用 (6)基線的合理使用,最佳實踐分享 |
第五章【跨產品版本管理及構建管理】 越來越多的軟件或應用以產品包的形式出現(xiàn),例如微軟的Office中有Word、Excel、PPT等;Adobe的CS中有Photoshop、Light Room、Illustrator等。這些軟件即相對獨立又有很多通用共用的代碼塊。這一章重點講解跨產品版本管理的實踐及方法 |
(1)構建管理的核心 (2)自動構建、每日構建、和構建分級自動化 (3)通過構建級別的定義及使用支撐跨產品技術集成 (4)產品內可使用的構建等級 (5)跨產品可使用的構建等級 (6)產品包級別的構建等級 |
第六章【配置管理的角色及安全設置】 源代碼是團隊的核心工作成果,所以安全是源代碼管理中的核心關注點。本章用一個多團隊協(xié)同開發(fā)的實例講解配置管理的安全策略、最佳實踐、需要哪些角色、以及每一個角色的權限設置。 |
(1)系統(tǒng)級管理員的設定及權限 (2)項目級管理員的設定及權限 (3)用戶角色設定及權限 (4)全部訪問控制及部分訪問控制 (5)實例分享:多團隊協(xié)同開發(fā)的安全策略 |
第七章【持續(xù)集成系統(tǒng)的設計及部署】 這一模塊的目標是建設部署完備的持續(xù)集成系統(tǒng):包括源碼庫、構建管理、任務調度系統(tǒng)、自動化系統(tǒng)、拓撲管理的綜合應用。這將是持續(xù)集成及DevOps的核心支撐。 |
(1)構建管理的原理及與源碼管理的關系 (2)構建等級定義最佳實踐 (3)每日構建的原則與難點,及相應的解決方法 (4)持續(xù)集成總體建設思路 (5)自動化測試+持續(xù)集成的運行部署策略 (6)測試環(huán)境及測試數(shù)據的自動化部署 (7)如何獲取及分析代碼覆蓋率檢查 (8)多機器池自動化部署 (9)如何將大規(guī)模自動化+版本控制+持續(xù)集成部署為一個復雜完備的大型配置管理體系 |
第一章【軟件配置管理基礎理論】 這一模塊先系統(tǒng)性地介紹軟件配置管理以及版本控制的理論知識;讓學員從原理上掌握版本管理的運行機制,為后續(xù)建設配置管理體系的實戰(zhàn)打下堅實的基礎。 (1)什么是軟件配置管理 (2)案例分享:對比導入版本控制之前之后的實際變化 (3)源代碼版本控制的原理 (4)版本管理工具的演進:集中式版本控制?分布式版本控制 (5)一個比較難招到人才的崗位:配置管理員 |
第二章【協(xié)同開發(fā)】 多人共同編輯和修改同一段源代碼是開發(fā)團隊的常見現(xiàn)象。這是協(xié)同開發(fā)必須面對的現(xiàn)象,本模塊介紹配置管理的協(xié)同開發(fā)原則及沖突處理的方法,目標效果是在多人協(xié)同開發(fā)模式下保障版本清晰、版本演進、及項目效率 (1)工作空間與版本庫的定位與用途 (2)代碼傳遞從星形模式到網狀模式 (3)版本覆蓋的預防 (4)版本沖突的處理方法和原則 (5)用任務單元來組織工作 |
第三章【版本分支的使用及規(guī)范】 分支是版本控制中的重要內容,它就像一把雙刃劍,使用得當則配置管理靈活又強大、反之則增加了復雜性和混亂。本章內容分享分支的原理及重點講解分支使用的最佳實踐。 (1)深入理解何為版本分支 (2)庫級分支的配置及使用 (3)文件級分支的版本規(guī)則及應用 (4)分支的分支 (5)分支的合并及沖突處理 (6)擴展討論:開發(fā)庫-受控庫-產品庫模式的優(yōu)缺點 |
第四章【基線的使用及規(guī)范】 基線同樣是配置管理中的重要內容,合理使用基線可以化繁為簡,通過各階段的基線規(guī)則,可以讓復雜的源碼項目管理變得清晰。更重要的是,基線可以極大提高版本管理的可靠性。 (1)基線的概念及作用 (2)開發(fā)進程中的基線設置 (3)階段性成果的基線應用 (4)發(fā)布級的基線設置 (5)分支和基線的混合應用 (6)基線的合理使用,最佳實踐分享 |
第五章【跨產品版本管理及構建管理】 越來越多的軟件或應用以產品包的形式出現(xiàn),例如微軟的Office中有Word、Excel、PPT等;Adobe的CS中有Photoshop、Light Room、Illustrator等。這些軟件即相對獨立又有很多通用共用的代碼塊。這一章重點講解跨產品版本管理的實踐及方法 (1)構建管理的核心 (2)自動構建、每日構建、和構建分級自動化 (3)通過構建級別的定義及使用支撐跨產品技術集成 (4)產品內可使用的構建等級 (5)跨產品可使用的構建等級 (6)產品包級別的構建等級 |
第六章【配置管理的角色及安全設置】 源代碼是團隊的核心工作成果,所以安全是源代碼管理中的核心關注點。本章用一個多團隊協(xié)同開發(fā)的實例講解配置管理的安全策略、最佳實踐、需要哪些角色、以及每一個角色的權限設置。 (1)系統(tǒng)級管理員的設定及權限 (2)項目級管理員的設定及權限 (3)用戶角色設定及權限 (4)全部訪問控制及部分訪問控制 (5)實例分享:多團隊協(xié)同開發(fā)的安全策略 |
第七章【持續(xù)集成系統(tǒng)的設計及部署】 這一模塊的目標是建設部署完備的持續(xù)集成系統(tǒng):包括源碼庫、構建管理、任務調度系統(tǒng)、自動化系統(tǒng)、拓撲管理的綜合應用。這將是持續(xù)集成及DevOps的核心支撐。 (1)構建管理的原理及與源碼管理的關系 (2)構建等級定義最佳實踐 (3)每日構建的原則與難點,及相應的解決方法 (4)持續(xù)集成總體建設思路 (5)自動化測試+持續(xù)集成的運行部署策略 (6)測試環(huán)境及測試數(shù)據的自動化部署 (7)如何獲取及分析代碼覆蓋率檢查 (8)多機器池自動化部署 (9)如何將大規(guī)模自動化+版本控制+持續(xù)集成部署為一個復雜完備的大型配置管理體系 |