他的回复:
华为云账号:h76b2f02525941892279微信昵称:Tiger 华为社区昵称:刘逸云DAY05 《大咖有话说:DevOps论道》四位讲师直播答疑,学习笔记。一、今天四位大佬:王立杰老师 华为云MVP、资深敏捷创新专家、小米敏捷转型战略教练;许舟平 华为云MVP、微服务与云计算技术专家、IBM敏捷专家;徐磊 华为云MVP、英捷创软创世人兼首席架构师。汪珺(神秘大咖) 华为云MVP、前惠普北美高级项目经理、EXIN DevOps Master全球导师认证、国内首批DevOps《凤凰项目》沙盘讲师。二、关于DevOps论道的问题及解答回顾:2.1、王立杰老师:看板流派。每个方法都是由人提出的,由人提出方法论。这个过程不是一朝一夕就可以完成的。任何方法论都是它具体的应用场景的。就像我们讲的看板方法论。它是基于客户现有的流程进行改进;对于团队来讲也不做特定的限制。在Scrum中,我们常讲7+-2小团队。在看板里面,我们5人、10人、30人都可以做看板。这里是一个复合型的,更简便的一个打法。它较于其他方法上手更容易。但是它背后的肌理和使用还是非常有难度的。目前国内的情况,真正可以把看板方法落到实处的团队,真的是少之又少。它是行进式的、渐进式的建设。注意:看板和回顾要有反馈环,这很关键。这样才可以实现持续的改进。王立杰老师总结:所有的方法后面都有一个PDCA环。2.2、姚冬老师:代徐磊老师(XP极限编程流派)。首先四个流派其实是可以相互融合,他们只是代表老师的特征,但并不是相互对立的;极限编程(Extreme Programming,简称XP)的来源是:2000年美国软件工程专家Kent Beck提出的敏捷软件开发方法的代表。XP是一种轻量、高效、低风险、柔性、可预测、科学而充满乐趣的软件开发方法。Kent Beck建议XP应用于规模小、进度紧、需求变化大、质量要去严格的项目。极限编程是价值而非实践驱动的高度迭代的开发过程,其价值体现在以下几个方面:第一,沟通(Communication):即追求有效的沟通。XP强调项目开发人员、设计人员、客户之间等有效地、及时地沟通,确保各种信息的畅通。第二,简单(Simplicity):即实现最简单的可行方案。XP认为应该尽量保持代码的简单,只要能够满足工作需要就行,这样有利于代码的重构和优化。第三,反馈(Feedback):即快速有效的反馈。要求不断对当前系统状态进行反馈,通过反馈,达到迅速沟通、编码、测试、发布的目的。第四,用气(Courage):即勇于放弃和重构。对于用户的反馈,XP程序员要勇于对自己的代码进行修改,即使有些修改可能会使得原来已经通过的测试又出现错误,但是经过团队的共同攻关,最终必然会取得满意的效果。第五、尊重(Respect):让每个成员在团队中获得应有的尊重。姚老师总结:如果测试是好的,那么所有人都应该始终坚持测试。因为测试栈是需要左移的,如果集成测试很重要,那我们就应该更多的进行集成测试;如果迭代短些好,那我们就应该把迭代的时间变的非常的短。真的做到分钟级或者消失级的迭代。如果迭代版本做的好,持续提交的版本甚至可以用于线上发布;又例如代码评审是好的,我们就要始终坚持代码评审。关于XP里的结对编程:其实就是一个人在写,另外一个人在看。这也就是我们今天讲的四眼原则。就是四双眼睛一起去看。如果设计是好的,那我们应该把它当做一种必须的部分。设计肯定是要做不断的修正的,所以这里就引出的重构的概念。如果架构是好的,那么我们所有人都应该去一起去管理和完成架构。注意:架构不可以过度的设计,架构应该是根据技术的演进,以及团队的进步,根据细节的提炼逐渐的长出来的架构。它背后是有XP的概念的。2.3、姚冬老师:Scrum和技术工程维度,就会涉及到持续集成的问题。CI/CD,包括相关的测试管理。从开发环境、到测试环境、到类生产环境到生产环境。这里就会涉及持续的集成、持续的测试、持续的部署和持续的发布。这是一套完整的方法,底层会有DevOps Cloud相关的流水线的构建类、测试类的工具来进行一个整体的支撑。2.4、汪珺老师:DevOps的价值,这里介绍个行之有效(WAI MEN XI DAO)的办法,甲方提了问题,乙方的同事就不敢还嘴和顶嘴。然后我们就使用了大看板(冰山模型),对于传统企业来时候,它又监管、质量、全链路、技术的需求;我们具体例子:滴滴打车再早期的时候,它是业务需求;到了后面它有了监管需求。必须重视质量的,还有系统的耦合度、还有技术需求,那么我们在拆分的时候,往往看得到上面,而看不到下面,这个模型就是所谓的冰山模型。 对于冰山的一角,汪老师是这么干的。把一块大看板拖到厕所门口。这是为什么呢?因为有的仙女可以不吃饭,但是她不可以不上厕所。所以这块看板所有人都会看到,那么之后我们就让PO或者是业务人员,分析师。把业务的流程迭代Story,按照他的理解写在上面。这是大家都不想去估的时候,假设登录我们需要4个小时,然后声明这个是客户需求,小额账户业务规则、业务流和相对的价值流;然后PO写完之后,他就走掉;那么下面是业务分析师过来:年末18岁和老外我额外需要两点规则,我进了输入框大于5万的,做一个交易,我们大于1万美金的我们做个交易。这样一来就完了了一个监管需求;那么这个时候测试同学的肚子可能不太舒服,过来看到登录模块,我要做个登录异常和密码异常,然后金额输入框我要做数字的校验和异常处理;到了研发和运维过来就会说:我们看到登录系统与系统的其他模块有交互。登录的程序,我们要灾备、加密,还有其他的一些协同的问题。总计一下:那么这样一个来的四个好处是。1、PO想不到的,团队所有人帮他想;2、如果做的事团队没有想到,那么第一责任不是开发,而是我们没有提出需求的问题。3、各项目为自己争取到了开会的视角,多元化,争取到了时间。比如:我18岁的需求需要2个小时额外去开发。但是看到整体迭代只有4个小时,那么肯定是不行了。4、每个点的需求,都是测试的一个检验点。我们输入的时候,就在客户上厕所过来过往的时候,而输出的时候,明确需求之后再跑。等到开会需要迭代沟通的时候,我们就来评估这个点有没有重复的、有没有浪费的、需不需要做?如果我们要在这里做,我们就要锁定这个需求,这样就等于是得到了一整块需求模板,这个是一个很好的方法。这是汪珺老师对于看板的灵活运作,我觉得非常受用。2.5、许舟平老师:故事点的评估。首先我们对于需求的优先级还有相应的需求理解是非常关键的。所以:过度的故事点的评估其实真的是一种浪费、同时也没有必要。用户故事地图和用户影响地图:首先,我们要知道我们为什么要这样去做?这里,从排优先级的角度来说,评估后的用户故事,我们应该知道应该是要体现在我们的用户故事地图里面的。也要通过优先级在做相关的排序的。所以它并不是一个简单的review的工具。总结:做用户故事地图点影响的评估,这是要取决于我们迭代的目标和大家在故事点的评估上能够达成一致。姚冬老师补充:从工程的角度来看,从持续集成的角度来看。每天至少要往主干上去提交一次代码。如果说我们的程序员做不到每天提交一次的,真的做不到?那么理论是实际上是一个倒逼。如果我么就是确定每天向主干上去合并,那么我们一定要把我们的需求也好,任务也好要拆分到具体的事项,实际上这个事项是一个以终为始的事情。另外,从解耦的角度上来讲。在粒度的解耦层面上来说,它是和需求的颗粒度大小、模块的大小;在解耦时要从入口就开始考虑。如果说需求非常大,那么后面的功能做的再好也没有办法进行解耦;这里一方面是为了评估工作量,为了增加团队间的沟通;从另一个层面来说,是为了更好的去控制后面的程序设计和相关的逻辑。三、王立杰老师讲敢死队:加里森敢死队(二战搅乱德国后方的特殊的队伍),这队伍的成员,很多人都是在监狱中去选择的,想小偷、爆破专家、酒吧女郎、酗酒的拳击手、善于开车的机械师,成员是多种多样的,是一个真正的跨职能的特殊的小队。每个小队成员的能力都是一个T形或者是派形、F形的技能;所以特别适合对于我们敏捷团队进行比喻。他们是端到端的把事情做好。