WOT講師秦五一:持續集成之腐化與涅槃重生
原創【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】