【51CTO.com原创稿件】七年一剑,华丽蜕变。自2012年起连续6年15场峰会,凝聚大量技术专家,博观而约取,厚积而薄发。2018WOT全球软件与运维技术峰会扬帆起航,围绕12大核心热点,汇聚海内外60位一线专家,打造高端技术盛宴!
在“DevOps转型之路”分论坛现场中,ThoughtWorks公司高级质量咨询师秦五一将给听众带来一场名为《持续集成之腐化与涅槃重生》的主题演讲。在会前,51CTO记者采访到了他,请他提前“剧透” ,精彩演讲内容就让我们“先睹为快”吧!
秦五一,ThoughtWorks高级质量咨询师,ThoughtWorks西安QALead,对传统测试理论和业界新兴测试技术有较为深入的研究。近年来,他开始关注移动端的DevOps实践,重点研究自动化测试,日志监控分析在DevOps流程中的实践,并参与了ThoughtWorks移动测试平台产品的设计与研发。在加入ThoughtWorks之前,秦五一先生曾就职于IBM软件研发中心,服务客户包IBM Cognos,华为2012实验室, 澳洲电信,Suncorp以及REA。
持续集成的核心理念是每天至少集成
持续集成是1991年由IBM 院士 Grady Booch在他的Booch 方法中提出了Continuous Integration这个词之后,被极限编程XP采纳并广泛推广得来的。通常大家听到或提到的持续集成,也就是CI这个词,通常指的是持续集成工具(CI Tools] ),例如Jenkins、 TeamCity、GoCD等,是相对狭义的概念。
在秦五一看来,持续集成的本质是一套软件开发的实践。虽然在多年的发展中持续集成的含义在不断演变,从早期仅是集成开发的代码,到目前将单元测试、集成测试甚至端到端测试都包含进来,但其最终目的是为了能够发现系统间的集成问题,加快软件的上线时间,减少开发的周期。因此,持续集成的核心理念是每天至少集成一次,尽早发现问题,尽快解决问题。
ThoughtWorks***科学家Martin fowler指出,持续集成是让团队成员尽早、尽可能频繁的集成大家手头的工作,至少每天要集成一次甚至更多,及早发现集成问题,让团队更快更好的开发出高质量的软件。ThoughtWorks***咨询顾问Jez humble表示,升华持续集成,并将部署到产品环境的实践加入进来,最终形成了现在的持续交付概念。
在DevOps工具链上,持续集成工具是标配
与持续集成相比,DevOps要晚很多。在2008年Agile大会上,由Patrick Debois等人提出了DevOps,它打破了开发团队与运维团队的沟通壁垒,将二者有机结合在一起。
秦五一告诉记者,DevOps近年来之所以非常火,是因为它从根本上指出了软件从需求到上线让团队痛苦的根源,形成了Dev、QA、Ops紧密结合在一起的团队文化。DevOps中包含的各项实践已经被国内外著名互联网科技巨头证实,能够有效提高企业对于高速变化市场的响应速度。例如,10年之前我们的软件需要几个月才能上线并为客户带来价值,如今不少企业已经可以轻松做到2周上线一次。在互联网企业当中,Web应用甚至可以做到每天随时上线。
秦五一同时也指出,目前仍然有不少人心中的DevOps是狭义的DevOps工具链,比如持续集成工具(例如Jenkins)、测试工具、监控工具等,因为其与持续集成/持续交付相似,都是能够让软件可以更加快捷和可靠的发布。实际上,DevOps更加重视从人的角度来看软件交付,而CI/CD更加重视从技术的角度来看软件交付,因此两者还是有很大的不同之处。
秦五一认为,在DevOps的流程中,持续集成是非常重要的实践,它为DevOps提供了技术上的支持。因此,在DevOps工具链上,持续集成工具几乎是标配。
Mobile DevOps对质量要求极高,故障零容忍
“作为用户,我们对APP应用的要求非常高,对使用体验和故障容忍度很低,一旦出现问题就不会再去使用。因此,不说那些1颗星的应用,就是那些4颗星的应用,我们都不会轻易下载。”秦五一表示,由于用户对于Mobile端的体验要求极高,故障容忍度很低,加上iOS和Android都对热更新有一定的限制,导致mobile App在故障恢复方面相对来说没有Web端那样容易,因此在上线之前,对Mobile端App的质量要求非常高,一旦出现故障所承担的损失要比Web端大很多。
秦五一告诉记者,DevOps和Mobile DevOps本质上并没有区别,只是在工具链和流程方面略有不同。Mobile因为受到平台限制,例如iOS和Google有相应的商店,对发布的应用都有一定的限制,需要通过商店的Review才可以上线,并不像Web端,是否上线基本上是受自己控制的。
据介绍,在航空Mobile App项目上,ThoughtWorks公司通过采用Mobile DevOps缩短了产品从开发到上线的周期,并可以做到每两周一次同时上线iOS、Android和Mobile Web三个平台,并且Crash率从8%降到0.1%,取得了不错的成效。
利用好持续集成工具,就要经常学习工具背后的思想理念
如今,随便在网上搜一下DevOps工具,就会发现跟软件开发,部署相关的工具,几乎都在自己的名字后面标上了大大DevOps标签。甚至于,很多企业还专门组建了DevOps Team,并利用Jenkins、ansible、Dynatrace等等DevOps工具,维护CI、云、监控系统等。
秦五一表示,任何工具背后都有一套思想在支撑这个工具的价值,DevOps也不例外。如果不能经常学习工具背后的思想理念,仍然无法用好持续集成工具。
ThoughtWorks的持续集成工具叫做GoCD,在github上已经开源,官网叫做持续交付工具。因为GoCD在开发之初就很好的考虑到了方便部署到线上环境的问题,完全从pipeline as code的角度设计,因此其具备两大特色:
一是复杂工作流的编排。例如在某著名通信设备商的项目上,客户有着非常复杂的工作流,大量并行任务成功后,再触发一个新的stage。在这个过程中,GoCD是完全可视的,给用户带来了非常友好的体验。
二是所有的Job都原生支持pipeline as code方式编写,为更好的实现高度自动化交付提供了很好的保障。
采访***,秦五一告诉记者,用了工具只是解决了当前一时的问题,而我们在软件交付中遇到的问题总是源源不断。因此,为了更好的利用好工具,就应该经常学习工具背后的思想理念,只有将工具背后的思想理念吃透、学精,才能真正的用好持续集成工具。
5 月 18 - 19日,北京•粤财JW万豪酒店,全球最值得关注的IT技术盛宴与您不见不散。2018WOT全球软件与运维技术峰会一定是您发现全新思路、挖掘***思想、拓展人脉的重要平台。
目前我们的各项票种已全面发售。需要提醒您的是,购票越早,折扣越大!与KOL零距离交流,呈现不一样的“英雄盛宴”!
点击官网了解详情:wot.51cto.com
7折预售中,抢票从速。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】