獨家:阿里巴巴DevOps落地實踐玩法及思路解析
閱讀原文請點選
摘要: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
支援多種自動化框架接入
支援專案整合相關所有自動化的自動統一觸發
支援多種自動化框架不同環境觸發
支援日常持續整合
支援自動化失敗的原因彙總與總結
阿里分層自動化實踐帶來了很有意義的成果,在阿里內部,大幅提高了研發測試比,減少了重複勞動帶來的加班,同時帶動了更多高效工具的誕生;在研發方面,單測成本降低了,覆蓋率視覺化了,自測有保障了,故障降低了;在測試方面,降低了測試要求,增加了工作成就感;對雲效客戶來說,給企業賦能,提高了研發測試效率。
閱讀原文請點選
相關文章
- 運維DevOps體系解析與落地實踐運維dev
- Serverless 架構落地實踐及案例解析Server架構
- DevOps在傳統企業的落地實踐及案例分享dev
- DevOps落地實踐,BAT系列,敏捷看板devBAT敏捷
- DevOps與傳統的融合落地實踐dev
- 阿里智慧運維實踐|阿里巴巴DevOps實踐指南阿里運維dev
- DevOps 在企業專案中的實踐落地dev
- ChatOps=AIOps落地+DevOps升級+SRE實踐AIdev
- DevOps落地實踐點滴和踩坑記錄-(1)dev
- RESTful API 設計思路及實踐RESTAPI
- DevOps實踐dev
- 嘉為&傑蛙攜手助力企業DevOps最佳實踐落地dev
- 解析:APP拉新充場專案的玩法思路APP
- DevOps落地實施要有哪些支柱?dev
- 阿里巴巴DevOps實踐指南(一)| 為什麼DevOps的必然趨勢是BizDevOps阿里dev
- DevOps 實踐指南dev
- 阿里巴巴基於應用和變更的交付模式|阿里巴巴DevOps實踐指南阿里模式dev
- 深入解析Immutable及 React 中實踐React
- Redis 非同步客戶端選型及落地實踐Redis非同步客戶端
- 自研DevOps實踐dev
- Java高效能解析器實現思路及方法Java
- 解析 Nebula Graph 子圖設計及實踐
- 淺談:前端路由原理解析及實踐前端路由
- Serverless Kubernetes 落地實踐Server
- 機器學習落地遊戲實踐簡析機器學習遊戲
- 公有云在中國實踐落地
- 向量資料庫落地實踐資料庫
- 論 DevOps 實踐有幾何?dev
- DevOps 中的測試實踐dev
- DevOps中的測試實踐dev
- DevOps實踐-白名單二三事dev
- 京東數科DevOps落地攻略dev
- HDFS系列之DataNode磁碟管理解析及實踐!
- 增長黑客國內落地實踐黑客
- 優酷弱網平臺落地實踐
- EFK 配置geo-ip落地實踐
- 得物染色環境落地實踐
- 可落地的DDD程式碼實踐