持续交付36讲
王潇俊
携程系统研发部总监
立即订阅
7125 人已学习
课程目录
已完结 41 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 量身定制你的持续交付体系
免费
基本概念 (3讲)
01 | 持续交付到底有什么价值?
02 | 影响持续交付的因素有哪些?
03 | 持续交付和DevOps是一对好基友
配置管理 (4讲)
04 | 一切的源头,代码分支策略的选择
05 | 手把手教你依赖管理
06 | 代码回滚,你真的理解吗?
07 |  “两个披萨”团队的代码管理实际案例
环境管理 (6讲)
08 | 测试环境要多少?从现实需求说起
09 | 测试环境要多少?从成本与效率说起
10 | 让环境自己说话,论环境自描述的重要性
11 | “配置”是把双刃剑,带你了解各种配置方法
12 | 极限挑战,如何做到分钟级搭建环境?
13 | 容器技术真的是环境管理的救星吗?
构建集成 (5讲)
14 | 如何做到构建的提速,再提速!
15 | 构建检测,无规矩不成方圆
16 | 构建资源的弹性伸缩
17 | 容器镜像构建的那些事儿
18 | 如何做好容器镜像的个性化及合规检查?
发布及监控 (6讲)
19 | 发布是持续交付的最后一公里
20 | Immutable!任何变更都需要发布
21 | 发布系统一定要注意用户体验
22 | 发布系统的核心架构和功能设计
23 | 业务及系统架构对发布的影响
24 | 如何利用监控保障发布质量?
测试管理 (3讲)
25 | 代码静态检查实践
26 | 越来越重要的破坏性测试
27 | 利用Mock与回放技术助力自动化回归
持续交付平台化 (3讲)
28 | 持续交付为什么要平台化设计?
29 | 计算资源也是交付的内容
30 | 持续交付中有哪些宝贵数据?
持续交付移动App (3讲)
31 | 了解移动App的持续交付生命周期
32 | 细谈移动APP的交付流水线(pipeline)
33 | 进阶,如何进一步提升移动APP的交付效率?
实践案例 (4讲)
34 | 快速构建持续交付系统(一):需求分析
35 | 快速构建持续交付系统(二):GitLab 解决代码管理问题
36 | 快速构建持续交付系统(三):Jenkins 解决集成打包问题
37 | 快速构建持续交付系统(四):Ansible 解决自动部署问题
特别放送 (2讲)
持续交付专栏特别放送 | 答疑解惑
持续交付专栏特别放送 | 高效学习指南
结束语 (1讲)
结束语 | 越痛苦的事,越要经常做
持续交付36讲
登录|注册

07 |  “两个披萨”团队的代码管理实际案例

王潇俊 2018-07-19
在亚马逊内部有所谓的“两个披萨”团队,指的是团队的人数不能多到两个披萨饼还不够吃的地步。也就是说,团队要小到让每个成员都能做出显著贡献,并且相互依赖,有共同目标,以及统一的成功标准,这样团队的工作效率才会高。
现在有很多互联网公司喜欢采用“两个匹萨”团队的模式,你可能很好奇,这些团队通常是如何实施代码管理的?
当前国内互联网公司通常采用特性分支开发的模式,我在第四篇文章《一切的源头,代码分支策略的选择》中,为你详细介绍了这种模式,下面我就以这种模式为例,为你解开困惑。
以迭代周期为一周的项目为例,我将按照从周一到周五的时间顺序,通过整个团队在每天的工作内容,跟你分享项目任务分配,分支创建、集成与分支合并、上线,包括分支删除的关系。你可以从中了解互联网公司研发团队日常代码管理的真实情况,体会团队为了提高研发效率,在代码管理上做出的创新与改进。

背景

周一上午 11:30,“复仇者” 团队的周会结束,会议室里陆续走出了 6 名工程师:
“钢铁侠”:5 年一线开发经验,现任“复仇者”项目经理及产品负责人;
“美国队长”:6 年开发经验,负责“复仇者”项目的技术架构,兼开发工作;
“绿巨人”:3 年开发经验,全栈开发;
“雷神”:3 年开发经验,全栈开发;
“蜘蛛侠”:1 年开发经验,负责几个成熟模块的维护;
“黑寡妇”:资深测试工程师,负责系统集成与测试。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《持续交付36讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(24)

  • Nick~毓
    多说一些 devops 持续交付 持续部署 持续集成 相关的理论 流程 标准 和实战经验吧
    2018-07-20
    7
  • 破晓
    回滚到提交abc前,重新上bc。
    2018-07-19
    6
  • alan
    非常需要这篇文章的经验,感谢!
    2018-07-30
    2
  • 心在飞
    1. 做个业务快关,关闭A功能。 需要提交新的commit D
    2. 删除A功能,在A的MR中点击revert,gitlab会自动产生新的commit D,不过这时候还需要做B,C的测试,确保他们功能没受影响。
    2018-07-20
    1
    2
  • 王浩槟
    好羡慕好喜欢这个开发流程,一定要搭建出这个环境😻
    2018-07-19
    2
  • _CountingStars
    使用gitlab合并请求页面的revert功能 撤销a功能的合并
    2018-07-19
    2
  • Linton
    smart_merge是需要Gitlab通过源码方式一并安装吗?

    作者回复: 是个gitlab service,不需要重新安装,但可能有版本要求,

    2019-10-23
    1
  • 陈文涛
    老师我很好奇,大厂不写设计文档,不做设计评审,不做需求评审么,还是这场景忽略掉了。。。。

    作者回复: 当然要做啊,只是不限制形式,减少没有必要的paper works,比如以backlog,story等代替需求文档等,增加沟通,当然必要的设计说明也是要做的

    2018-10-31
    1
  • 猴哥
    看B C是否有依赖A的功能,没有依赖撤回A,上线后两个,若有依赖,做个业务开关关闭A的功能保留BC依赖的功能,保证BC上线,A功能延期到下一个版本

    作者回复: 行得通,但是这类问题多了就会造成很多并无实际价值的业务开关,本身业务开关的管理也不是那么简单,因此此方法可以应急,但不推荐铺开使用

    2018-08-25
    1
  • james
    smart merge 的作用是不是, 先选定 N 个分支组成一个 group, 之后 group 中任何一个分支变更, 都合并到 group 中另外的几个分支中?
    2018-08-25
    1
  • 手指饼干
    请问smart_merge是不是从master创建sprint26分支?如果feature分支往sprint26分支合并有冲突,到后面往master分支合并是不是要解决同样的冲突?
    2018-07-27
    1
  • lee🙃
    撤回a分支的合并,保留b、C分支的合并
    2018-07-19
    1
  • 图·美克尔
    在gitlab上找到a的合并请求,revert。
    2018-07-19
    1
  • 猩猩
    没有看懂smart merge的作用。是自动往master合并吗?那周二下午”美国队长“做的merge request又是什么?
    2019-08-08
  • Triton
    如果是BUG也需要创建分支吗?

    作者回复: 如果是hotfix,那也是需要独立建分支的

    2019-07-30
  • 春之绿野
    Revert掉A不就行了吗?
    最后合进去的fix不测试吗?
    2019-06-07
  • Jessica
    老师,我公司目前用的是GitHub管理代码,有办法在GitHub上使用Smart Merge插件吗?
    2019-01-15
  • 红娟
    合作很流畅啊
    2018-12-28
  • frankie
    有了 Smart Merge,任何一个分支的变更会自动触发合并----那这个跟主干开发似乎差不多吧?

    作者回复: 是的,但是却不会污染主干

    2018-11-13
  • james
    老师,smart merge 的作用是不是, 先选定 N 个分支组成一个 group, 之后 group 中任何一个分支变更, 都合并到 group 中另外的几个分支中?

    作者回复: 应该说是整个group中的所有分支都会被合并到一个临时的,虚拟的分支里

    2018-08-25
收起评论
24
返回
顶部