獨家:阿里巴巴DevOps落地實踐玩法及思路解析

weixin_34019929發表於2017-08-01

閱讀原文請點選

摘要:7月26日,阿里巴巴持續整合持續交付平臺——雲效,在深圳阿里中心舉辦了一場“業務為王時代,DevOps怎麼玩?”主題沙龍,由阿里巴巴技術專家從雲效新概念的提出,到阿里巴巴DevOps落地實踐、到企業如何利用雲效進行高效研發、再到阿里巴巴CI/CD之分層自動化,幫助參會者從理念、策略、實踐、效果等方面,全面深入的瞭解DevOps玩法,以及具體如何落地的思路。

網際網路時代,隨著業務的迅猛發展,企業越來越希望通過實施DevOps來提升研發、運維等IT部門的效率,支撐業務發展。網際網路企業如何利用工具讓DevOps落地?傳統企業如何提升研發效能,更快速的網際網路化?這些都是企業面臨的問題。

7月26日,阿里巴巴持續整合持續交付平臺——雲效,在深圳阿里中心舉辦了一場“業務為王時代,DevOps怎麼玩?”主題沙龍,由阿里巴巴技術專家從雲效新概念的提出,到阿里巴巴DevOps落地實踐、到企業如何利用雲效進行高效研發、再到阿里巴巴CI/CD之分層自動化,幫助參會者從理念、策略、實踐、效果等方面,全面深入的瞭解DevOps玩法,以及具體如何落地的思路。

雲效:網際網路+時代的企業級研發效能提升服務

雲效是網際網路業務下催生的研發效能平臺,2012年,雲效孵化自阿里巴巴B2B事業群,為阿里內部提供研發效能服務;2013年,雲效真正實現持續整合持續交付並落地實施; 2015年底,雲效與首家網際網路保險公司眾安保險合作,開啟商業化第一步,後來正式為網際網路+企業提供服務。

雲效經過長期落地實踐,沉澱出一套含測試策略、研發策略的工具產品,開始更好的支撐傳統企業的網際網路化。本次沙龍上,雲效負責人章屹正式提出:“網際網路+時代的企業級研發效能提升服務”新概念,為傳統企業賦能!目前已經覆蓋新零售、地產、券商、銀行、保險等行業,為顧家家居、李錦記、世聯行、國泰君安、光大銀行、天弘基金等傳統企業服務。

雲效2.0特色

流式實時交付:整合驗證速度匹配專案研發速度,為業務加速,改變傳統週期性交付模式;

自動化質量保證:構建自動化質量保證體系,提升研發質量,為質量護航,改變傳統手工技術質量保證體系;

柔性化管理:大資料支撐的柔性化研發技術管理,管理策略可私有定製,改變傳統團隊統一技術管理模式。

雲效2.0策略

雲效擁抱傳統企業,根據傳統企業研發團隊規模大小、研發人員技能高低等,進行定製化實施策略,賦能技術團隊,使業務無線可能。

落地效果

在合作中,雲效為眾安保險部署4個月時間,測試環境和持續整合累計為眾安提效232人日;雲效為五礦電商部署測試環境累計超過6萬次,UI自動化用例積累數量超過600個,實現了五礦業務場景的自動化的全面覆蓋。

阿里巴巴DevOps落地實踐

章屹:阿里巴巴高階技術專家。清華大學電子工程系碩士畢業,十多年從事軟體的測試、開發、系統設計工作。現為阿里巴巴高階技術專家,工程效能部技術負責人,負責雲效的技術規劃和建設工作。

在阿里巴巴內部推行開發自測、開發自運維的環境下,阿里巴巴DevOps應運而生。阿里巴巴DevOps面臨這幾個問題:1.開發的測試和運維能力培養問題;2.開發自測自運維帶來的效率和質量問題;3.DevOps的實施進度問題;4.測試團隊和運維團隊的未來發展問題;5.技術的發展(微服務、容器化)帶來的挑戰。

為了解決DevOps落地問題,雲效跟開發、測試、運維團隊一起,為開發服務,讓他們自運維、自測,提升效率。

DevOps實施策略

如何賦能開發自運維、自測?

在賦能開發自運維、自測過程中,工具的價值最為凸顯。

傳統解決方案:大整合環境;固定釋出時間(每週一次、兩週一次、一年四次……);

雲效持續交付解決方案:所有應用24小時隨時提測併發布,無釋出視窗限制;預釋出整合環境,半小時完成自動化並無人值守。

DevOps實施結果

開發自運維之後,研發效率大幅提升:日均節省資源人數增長,整合驗證釋出耗時減少,專業性團隊(效能、壓測等)隊伍在增長;質量得到保證:應用運維故障個數大幅下降;研發模式創新:自動化Case數量增加,50%專案小需求研發自測,測試不接手, 測試全監控。

企業如何利用雲效進行高效研發?

苗欣:阿里資深研發工程師。主要負責雲效平臺解決方案服務輸出。在自動化測試技術、持續整合等方面擁有多年實踐經驗,擁有多項技術專利。

雲效,源於內部,是阿里巴巴技術部實現持續交付的統一協同工作平臺,實現開發測試全流程自動化,支撐專案的持續整合與持續交付。目前客戶覆蓋銀行、保險、券商、電商、新零售等。

一個專案如何在雲效實現持續整合?

視訊演示連結:(進入頁面後選擇左側幫助視訊欄--雲效研發整體流程視訊)

http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

視訊解讀:

專案準備階段:我們評審好專案需求,初步完成專案的資源評估,以及確定專案的交付日期後,即可在雲效配置管理系統建立專案,填寫專案成員,申請應用程式碼分支。雲效提供配置管理功能,同時開放介面,支援對接外部的配管系統。

開發階段:開發在本機編寫程式碼,每次程式碼CI後,雲效單測整合系統會自動檢測程式碼變更,幾分鐘後收到郵件提醒,在郵件中,可以看到單測用例,靜態掃描等資訊,也可點選專案或者數字連結到雲效單測整合系統,在系統上我們可以看到每次程式碼提交執行的詳細情況。

測試準備階段(含開發自測):開發在編寫程式碼的同時,測試也進入測試準備階段。測試在雲效平臺可以編寫UI、介面、以及手工測試用例,用例編寫完成後,還需要準備一些測試資料,在雲效的資料銀行提供了豐富的測試資料生成方式,我們可以根據配置單,快速生成所需要的測試資料。

測試階段(環境部署、介面、UI、手工用例測試):開發自測通過後,專案進入測試階段。開發在專案中打一個測試包,開啟環境管理,點選申請,這時雲效平臺會自動申請一臺雲伺服器,選出剛打出來的測試部署包,點選部署,測試環境的部署就自動開始了。在部署過程中,可以實時監控部署日誌,獲取Hosts繫結資訊。測試在平臺響應“接手測試”,在專案中執行寫好的介面測試用例,執行UI用例,以及在手工用例系統中,執行功能用例,及時提交發現的缺陷。開發在收到缺陷郵件提醒後,可以在平臺修復缺陷。介面、UI、功能測試都完成後,測試可以在平臺響應功能“測試通過”。

整合測試階段:開發在平臺提交整合,專案進入整合佇列,平臺自動從應用的主幹拉取最新的release分支,將專案中的分支和release分支合併,打出整合測試包,部署到整合測試環境,觸發整合自動化指令碼執行。專案成員可以在整合環境進行測試驗證,驗證通過後,平臺上響應“驗證通過”。配管將釋出包部署到正式環境,觸發程式碼合併主幹。這樣,就在雲效平臺上完成了一個專案持續整合過程。

阿里巴巴CI/CD之分層自動化

金桐:阿里巴巴產品專家。從事多年網際網路系統的研發和測試工作,現在主要負責雲效分層自動化測試的產品設計。

手工測試效率低下,釋出頻繁,迴歸量大、成本高,重複勞動很枯燥。自動化測試,就是用機器執行替代測試手工操作的一種測試方法,能夠幫助測試人員從重複、枯燥的手工測試中解放出來,從而節省人力、時間或硬體資源。節約勞力為(N-1)M,M為此項工作單次需要投入的資源,N為此項工作需要重複工作的次數。

如果自動化這麼好,為什麼大家沒有全部做自動化?因為自動化測試也是有煩惱的。主要表現在:成本高(程式碼能力、自動化框架、IDE 準備、排程、多環境),效果差(瀏覽器影響、執行機影響、依賴環境影響、指令碼健壯性不強),覆蓋率低(框架不萬能、上下層難全、介面引數排列多),及時性低(程式碼變更頻繁、遺漏的變更、專案結束才發現)。

為了降低成本,提高準確性,就要考慮降低人員成本、製作成本、運維成本、執行成本,同時擴大覆蓋率、資料獨立、提供好的方法和指令碼。當然,就需要實行分層自動化。

在理解分層自動化之前,我們先看自動化測試金字塔,其中UI代表頁面級系統測試,service代表服務業務測試(介面測試),unit代表單元測試。金字塔越高,表示需要投入的精力和工作量越大。分層自動化測試倡導的就是,將系統分層,根據層次特點用合適的自動化方法進行測試的一種測試策略。

阿里巴巴分層自動化在經過策略的沉澱調整後,又經歷了長期的工具與流程實踐,並從自動化成本和效果這兩個點上突破,進行分層自動化工具和專案流程的雙重革命,最終達到業內領先的研發測試比。在阿里實踐分層自動化需要很多分層工具,包括配置管理Aton、UI測試的AUI、單元測試的Amon、環境管理的Aenv、介面測試SAT、效能測試Perf、整合自動化Pre等。

這裡來介紹幾個革命性工具:

UI自動化—AUI

創新型web-ui自動化測試框架,無需安裝複雜底層環境和 IDE

建立和維護指令碼,都無需接觸程式碼,全部為 Web 頁面視覺化使用

支援本地回放,支援雲端執行,解放機器,釋放雙手

支援專案持續整合,線上監控等各種複雜場景

介面自動化—SAT

視覺化的介面測試,無需編寫程式碼

支援普通介面除錯和複雜後臺互動的介面測試的用例沉澱

支援主幹,專案用例的沉澱與迴歸

支援專案持續整合

效能壓測—Perf

基於 Jmeter 的效能壓測平臺

集指令碼,場景,壓測,監控和報表為一體,可快速施壓的平臺

支援多種協議,適合 http,service 介面等測試

比 LoadRunner 易上手,更輕量

單元測試—Amon

可對程式碼主幹及各專案分支進行單測整合

對有程式碼變更的專案分支自定義頻率整合

對有程式碼變更的應用主幹自定義頻率整合

擁有單測用例結果、覆蓋率結果、靜態掃描結果、sonar 程式碼分析等質量資料

整合自動化—Pre

支援多種自動化框架接入

支援專案整合相關所有自動化的自動統一觸發

支援多種自動化框架不同環境觸發

支援日常持續整合

支援自動化失敗的原因彙總與總結

阿里分層自動化實踐帶來了很有意義的成果,在阿里內部,大幅提高了研發測試比,減少了重複勞動帶來的加班,同時帶動了更多高效工具的誕生;在研發方面,單測成本降低了,覆蓋率視覺化了,自測有保障了,故障降低了;在測試方面,降低了測試要求,增加了工作成就感;對雲效客戶來說,給企業賦能,提高了研發測試效率。

閱讀原文請點選

相關文章