首页 > 娱乐前沿 > 产经
乐天、日本雅虎都爱用的敏捷教练DevOps练成术
小唯 2016-08-21 12:36:31

日本雅虎敏捷教练伊藤宏幸表示,DevOps必须以IT自动化以及持续整合(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统维运等所有程序。(图片来源/iThome) CJM我酷网

不同于美国雅虎在网路市场的撤退,以日系股东为首的日本雅虎向来是日本入口网站龙头,单月浏览人次超过650亿次,近几年为了扩大行动布局,日本雅虎更是积极拥抱多项IT自动化新策略,来加速服务推出的脚步,也找来不少业界DevOps或敏捷专家加入。曾在日本乐天一手重建了大规模自动化CI团队的关键人物伊藤宏幸,也在去年底加入了日本雅虎,担任敏捷教练(Agile Coach)以及自动化教练(Automation Coach)的职务。CJM我酷网

不同于一般导入DevOps常按CALMS五大策略(文化、自动化、精实、测量及分享)来进行的作法。CJM我酷网

伊藤宏幸认为,DevOps要成功,必须改变企业文化,而要实现这个目标的关键,「得依靠IT自动化以及持续整合。」他进一步解释,DevOps必须以IT自动化以及持续整合(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统维运等所有程序。CJM我酷网

进入日本雅虎后,伊藤宏幸的任务是帮助产品团队引进自动化、持续整合等作法,来培养雅虎团队具备DevOps的体质。他负责先帮4个团队导入DevOps。CJM我酷网

不过,伊藤宏幸只有3个月的时间,他计画以1个月为单位分阶段来改革。CJM我酷网

他表示,第1个月是準备阶段,首先要了解这些雅虎团队开发的产品,并且开始撰写简单的脚本程式。第2个月时,他则开始进行授课、开设工作坊让团队了解CI相关知识和观念,并且以2名开发者为单位,两人共用一部电脑共同开发(Pair Programming)。最后,则是开始尝试移除系统架构设计瓶颈,从源头来排除IT自动化的障碍。CJM我酷网

他观察到,这几个团队除了有不少开发经验不够老练的成员外,程式码整合也发生过不少问题,另外他们也鲜少利用自动化测试。CJM我酷网

伊藤宏幸解释,经验不足的工程师常常无法釐清工作的重点,例如,不了解工作自动化的重要性,或是不懂得如何撰写测试脚本。CJM我酷网

另外一个问题是,这些团队中的前端工程师、API工程师,或是资料库工程师,也都抱持被动态度,等待主管指示。CJM我酷网

不仅如此,负责各系统元件的团队各自为政,也引发了企业界中常见的穀仓效应(Silo Effect):团队间缺乏沟通,导致多头马车的状况,「这些都是文化上的问题。」他说。CJM我酷网

除此之外,日本雅虎仍有许多缺乏测试脚本程式的老旧程式码,伊藤宏幸比喻,这些老旧程式就像是那些被称为棕地(Brownfield)的市郊老旧工业区一样,必须更有效的利用。CJM我酷网

雅虎开发团队并没有撰写测试脚本的习惯,「是我们碰到最大的挑战。」CJM我酷网

因此,伊藤宏幸认为,导入自动化测试是首要之务。当开发团队将自动化测试视为技术的基础,才能逃离一再反覆修改程式码的轮迴,也能改善设计流程和程式码,甚至可以进行重构。CJM我酷网

单元测试是自动化的关键CJM我酷网

不过程式码测试的作法很多,例如涵盖了效能测试、接受度测试(Acceptance Testing)、安全性测试等,伊藤宏幸则是直接锁定单元测试,作为帮助雅虎团队导入自动化测试的关键。他解释,单元测试除了执行简单之外,也可以很有效率地改善软体开发的品质。CJM我酷网

为了让团队习惯自动化单元测试,伊藤宏幸提出了5个作法。第一,让团队成员从简单的测试脚本开始着手,等待习惯自动化流程后,伊藤宏幸再正式导入测试驱动开发(Test Driven Development,TDD)。CJM我酷网

不过,想要说服开发者习惯测试驱动开发不大容易,所以,伊藤宏幸反其道而行,他直接使用随机破坏程式功能的猴子测试,来考验团队的开发成果,要求团队快速找出问题点,藉此向团队证明测试脚本的重要性。「若没有事先撰写测试脚本,就很难快速找出问题。」他认为,为了团队习惯TDD理念,给予他们震撼教育也是个好方法。此外,伊藤宏幸也推荐了一个线上学习网站Cyber Dojo,帮助成员有效学习单元测试和TDD。CJM我酷网

接着,使用测试替身(Test Double)来进行Mock单元测试,第四步是在必要时撰写特徵测试(Characterization Test)。最后一步则是进行软体程式码和架构的重构。CJM我酷网

CJM我酷网

伊藤宏幸将CI流程化简,从过去複杂、不清楚的作业流程,利用版本控制系统作为开发流程的核心枢纽,让组态设定档透过版本控制系统,部署至网页伺服器、资料库伺服器或是应用程式伺服器。(图片来源/伊藤宏幸)CJM我酷网

三大步骤导入CICJM我酷网

在团队养成在开发中进行测试的习惯后,接着伊藤宏幸要开始导入持续整合(CI)。导入CI的过程中,伊藤宏幸也碰上了不少问题,例如程式码虽然可成功部署至Staging阶段,但是正式环境阶段中却失败。CJM我酷网

而伊藤宏幸依序採取3个行动,让团队开始导入CI。第一,让敏捷教练与开发者一同用样本程式码进行练习。CJM我酷网

同时,他也借镜共同开发(Pair Programming)的想法,两人一起对CI伺服器进行组态设定。再者,伊藤宏幸也再三教育开发者,CI程序中加入自动化测试的重要性。CJM我酷网

伊藤宏幸导入CI的最后一步是简化部署流程。伊藤宏幸则是大刀阔斧地把原有複杂、部署动线多轨且不清楚的交付流程,改为以版本控制系统作为开发流程的核心,所有组态设定档,只能透过版本控制系统来派送到网页伺服器、资料库伺服器或是应用程式伺服器,来简化架构造成的发布瓶颈。CJM我酷网

团队开始发展自己习惯的CI、CD程序CJM我酷网

伊藤宏幸表示,截至今年3月底,也就是导入CI后的2个月,这四个日本雅虎团队,总共新增了27个单元测试项目,并因此在测试阶段发现了10个软体臭虫和24个基础架构的配置错误,甚至找出了3个未来可能发生的问题。CJM我酷网

但伊藤宏幸表示,看似成效不是很好,但这些都是「扎扎实实的成果。」他认为,如果企业要改善开发流程,或是导入敏捷开发,必须循序渐进地进步。CJM我酷网

几个月过去,这几个原先不谙CI、自动化测试的团队,也开始出现转变。CJM我酷网

伊藤宏幸表示,团队不只建立了自己习惯的一套测试规则,以及自己的CI和CD策略,甚至,团队开始自动自发地撰写单元测试。而产品负责人(Product Owner,PO)也了解测试的重要性,将完成单元测试视为产品完成度的重要指标,「自动化测试和CI真的改变了这四个雅虎团队的开发文化。」他说。CJM我酷网

CJM我酷网

上一篇  下一篇

I 相关 / Other

段教练资料照片家境 强吻女学员搂抱猥亵 [非常娱乐]

段教练资料照片家境 强吻女学员搂抱猥亵 [非常娱乐]在驾校学车的妹纸们注意了,防范意识不可少,警惕遇色狼。最近,长沙22岁的张妹陀就遇上了一件闹心事,而她事后维权时的所见所闻更让自己瞠目。22岁的小张是长沙树

张妹陀个人资料家境 学车被教练强抱亲吻 [非常娱乐]

张妹陀个人资料家境 学车被教练强抱亲吻 [非常娱乐]在驾校学车的妹纸们注意了,防范意识不可少,警惕遇色狼。最近,长沙22岁的张妹陀就遇上了一件闹心事,而她事后维权时的所见所闻更让自己瞠目。22岁的小张是长沙树

CNBLUE宗泫日本捕宝可梦 23级不玩了

韩国乐团CNBLUE成员宗泫日前到日本举办个人演唱会,他把握时间到街头捕捉宝可梦,被眼尖粉丝直击,不过,他却在演唱会上说“不玩了”,因为他已经达到23级,觉得满足了。CNBLUE首席吉他手兼主唱的李宗泫日前正式在日

庄则栋污点是怎么回事 只因娶日本人惊动中央 [非常娱乐]

庄则栋污点是怎么回事 只因娶日本人惊动中央 [非常娱乐]有的人死了,他还活着。”庄则栋虽死犹生。不仅他的球技,他的贡献,更在于他的精神和意志,他的人品和人性,永远不朽。他从全民学习榜样、副部级领导,

庄则栋污点揭秘 娶日本人为妻被指站错队 [非常娱乐]

庄则栋污点揭秘 娶日本人为妻被指站错队 [非常娱乐]有的人死了,他还活着。”庄则栋虽死犹生。不仅他的球技,他的贡献,更在于他的精神和意志,他的人品和人性,永远不朽。他从全民学习榜样、副部级领导,沦落

I 热点 / Hot