版本管理(lǐ)与持续集成最佳实践

版本管理(lǐ)与持续集成最佳实践
    马上咨询


    陆老师  前微软亚洲工程院 自动化测试及持续集成负责人

    现任Lane Crawford集团電(diàn)子商(shāng)務(wù)部副总监,负责由零开始组建電(diàn)子商(shāng)務(wù)部及全面将線(xiàn)下业務(wù)整合至線(xiàn)上,以及整个团队的岗位设置、人员招聘、日常管理(lǐ)、产品、研发、质量、东南亚市场运营、传统业務(wù)系统升级及流程重造等工作。目前研发团队覆盖中國(guó)大陆、香港、东南亚,将集团业務(wù)由B2C扩展至B2B及B2B2C多(duō)模式。同时负责整个集团的研发规范化。
    具有(yǒu)超过10年技术团队管理(lǐ)工作经验,一直专注在大型系统软件开发、自动化测试及持续集成/持续交付、产品化等工作上,对技术团队管理(lǐ)也比较有(yǒu)经验。目前个人专注于自动化测试及持续集成/持续交付;产品设计框架及方法论;基于多(duō)租户技术的SaaS系统架构等技术方向。
    曾就职于微软亚洲工程院,先后创建过多(duō)个不同职能(néng)的团队,有(yǒu)创新(xīn)型团队、执行型团队、以及保障型团队等。在团队结构优化、人才梯队建设、以及跨部门合作管理(lǐ)方面有(yǒu)丰富经验。注重培养团队的创新(xīn)能(néng)力,所带团队发表过12个國(guó)际专利、自主立项研发2个新(xīn)产品線(xiàn)。对如何发挥团队潜力有(yǒu)深入研究。擅長(cháng)团队激励,从基层员工发现及培养有(yǒu)潜力的管理(lǐ)者,所带过的团队均表现出团队整體(tǐ)能(néng)力及成熟度的持续提升!

    • 微软亚洲工程院自动化框架设计及主程序之一
    • 微软核心项目持续集成建设负责人
    • 所研发的自动化测试及持续集成赢得微软工程技术创新(xīn)奖
    • 带领团队建立微软亚洲工程院自动化实验室及持续集成系统
    • Photoshop自动化框架及持续集成系统总设计师
    • 建立Photoshop全球自动化实验室
    • 在《程序员》杂志(zhì)上发表过数篇关于自动化测试技术及持续集成的文(wén)章

    曾受邀在MSUP Top100及MPD会议上/沙龙上发表关于自动化测试、社交网络游戏产品设计核心等技术演讲。 

    课程简介

    配置管理(lǐ)是持续集成及DevOps实施的重要技术支撑及实施基础。本课程全面细致地介绍配置管理(lǐ)的理(lǐ)论及最佳实践,包括版本控制、协同开发、跨产品版本管理(lǐ)、安全策略、构建管理(lǐ)、持续集成的完整过程。為(wèi)多(duō)人快速协同开发、敏捷测试、DevOps、持续集成及持续发布建设坚实的配置管理(lǐ)基础支撑。

    目标收益

    學(xué)员可(kě)以系统性地掌握配置管理(lǐ)的相关知识、并合理(lǐ)进行分(fēn)支管理(lǐ)、基線(xiàn)管理(lǐ)等实战。通过本次培训可(kě)以為(wèi)快速协同开发环境及持续交付的项目要求提供有(yǒu)效支持。
    将在课程中要逐一解决的问题:
    1. 如何保证源码库中的代码的可(kě)用(yòng)性?
    2. 在什么情况下使用(yòng)分(fēn)支?
    3. 基線(xiàn)的类型有(yǒu)几种?分(fēn)别在什么情况下使用(yòng)?
    4. 公司的项目背景对代码安全比较敏感,多(duō)个团队工作在一个大项目里,但希望每个团队只能(néng)访问自己团队部分(fēn)的源码,而技术上又(yòu)彼此依赖,有(yǒu)没有(yǒu)解决方案?
    5. 哪些类型的文(wén)件适合纳入版本库?哪些文(wén)件类型不适合?希望有(yǒu)个最佳实践的规范建议
    6. 公司有(yǒu)的是项目型开发、有(yǒu)的是产品型开发,这两种类型的版本管理(lǐ)有(yǒu)何不同?
    7. 多(duō)团队协同开发的情况下应该如何合理(lǐ)进行版本控制?既能(néng)保证版本清晰、又(yòu)不会因為(wèi)一些改动影响效率。

    培训对象

    • 配置管理(lǐ)员
    • 开发人员
    • 持续集成实施人员
    • 开发经理(lǐ)、项目经理(lǐ)

    课程大纲

    第一章【软件配置管理(lǐ)基础理(lǐ)论】
    这一模块先系统性地介绍软件配置管理(lǐ)以及版本控制的理(lǐ)论知识;让學(xué)员从原理(lǐ)上掌握版本管理(lǐ)的运行机制,為(wèi)后续建设配置管理(lǐ)體(tǐ)系的实战打下坚实的基础。

    (1)什么是软件配置管理(lǐ)
    (2)案例分(fēn)享:对比导入版本控制之前之后的实际变化
    (3)源代码版本控制的原理(lǐ)
    (4)版本管理(lǐ)工具的演进:集中式版本控制分(fēn)布式版本控制
    (5)一个比较难招到人才的岗位:配置管理(lǐ)员

    第二章【协同开发】
    多(duō)人共同编辑和修改同一段源代码是开发团队的常见现象。这是协同开发必须面对的现象,本模块介绍配置管理(lǐ)的协同开发原则及冲突处理(lǐ)的方法,目标效果是在多(duō)人协同开发模式下保障版本清晰、版本演进、及项目效率 

    (1)工作空间与版本库的定位与用(yòng)途
    (2)代码传递从星形模式到网状模式
    (3)版本覆盖的预防
    (4)版本冲突的处理(lǐ)方法和原则
    (5)用(yòng)任務(wù)单元来组织工作

    第三章【版本分(fēn)支的使用(yòng)及规范】
    分(fēn)支是版本控制中的重要内容,它就像一把双刃剑,使用(yòng)得当则配置管理(lǐ)灵活又(yòu)强大、反之则增加了复杂性和混乱。本章内容分(fēn)享分(fēn)支的原理(lǐ)及重点讲解分(fēn)支使用(yòng)的最佳实践。 

    (1)深入理(lǐ)解何為(wèi)版本分(fēn)支
    (2)库级分(fēn)支的配置及使用(yòng)
    (3)文(wén)件级分(fēn)支的版本规则及应用(yòng)
    (4)分(fēn)支的分(fēn)支
    (5)分(fēn)支的合并及冲突处理(lǐ)
    (6)扩展讨论:开发库-受控库-产品库模式的优缺点

    第四章【基線(xiàn)的使用(yòng)及规范】
    基線(xiàn)同样是配置管理(lǐ)中的重要内容,合理(lǐ)使用(yòng)基線(xiàn)可(kě)以化繁為(wèi)简,通过各阶段的基線(xiàn)规则,可(kě)以让复杂的源码项目管理(lǐ)变得清晰。更重要的是,基線(xiàn)可(kě)以极大提高版本管理(lǐ)的可(kě)靠性。 

    (1)基線(xiàn)的概念及作用(yòng)
    (2)开发进程中的基線(xiàn)设置
    (3)阶段性成果的基線(xiàn)应用(yòng)
    (4)发布级的基線(xiàn)设置
    (5)分(fēn)支和基線(xiàn)的混合应用(yòng)
    (6)基線(xiàn)的合理(lǐ)使用(yòng),最佳实践分(fēn)享

    第五章【跨产品版本管理(lǐ)及构建管理(lǐ)】
    越来越多(duō)的软件或应用(yòng)以产品包的形式出现,例如微软的Office中有(yǒu)Word、Excel、PPT等;Adobe的CS中有(yǒu)Photoshop、Light Room、Illustrator等。这些软件即相对独立又(yòu)有(yǒu)很(hěn)多(duō)通用(yòng)共用(yòng)的代码块。这一章重点讲解跨产品版本管理(lǐ)的实践及方法 

    (1)构建管理(lǐ)的核心
    (2)自动构建、每日构建、和构建分(fēn)级自动化
    (3)通过构建级别的定义及使用(yòng)支撑跨产品技术集成
    (4)产品内可(kě)使用(yòng)的构建等级
    (5)跨产品可(kě)使用(yòng)的构建等级
    (6)产品包级别的构建等级

    第六章【配置管理(lǐ)的角色及安全设置】
    源代码是团队的核心工作成果,所以安全是源代码管理(lǐ)中的核心关注点。本章用(yòng)一个多(duō)团队协同开发的实例讲解配置管理(lǐ)的安全策略、最佳实践、需要哪些角色、以及每一个角色的权限设置。 

    (1)系统级管理(lǐ)员的设定及权限
    (2)项目级管理(lǐ)员的设定及权限
    (3)用(yòng)户角色设定及权限
    (4)全部访问控制及部分(fēn)访问控制
    (5)实例分(fēn)享:多(duō)团队协同开发的安全策略

    第七章【持续集成系统的设计及部署】
    这一模块的目标是建设部署完备的持续集成系统:包括源码库、构建管理(lǐ)、任務(wù)调度系统、自动化系统、拓扑管理(lǐ)的综合应用(yòng)。这将是持续集成及DevOps的核心支撑。
    (1)构建管理(lǐ)的原理(lǐ)及与源码管理(lǐ)的关系
    (2)构建等级定义最佳实践
    (3)每日构建的原则与难点,及相应的解决方法
    (4)持续集成总體(tǐ)建设思路
    (5)自动化测试+持续集成的运行部署策略
    (6)测试环境及测试数据的自动化部署
    (7)如何获取及分(fēn)析代码覆盖率检查
    (8)多(duō)机器池自动化部署
    (9)如何将大规模自动化+版本控制+持续集成部署為(wèi)一个复杂完备的大型配置管理(lǐ)體(tǐ)系