獨家:阿里巴巴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
支持多種自動化框架接入
支持項目集成相關所有自動化的自動統一觸發
支持多種自動化框架不同環境觸發
支持日常持續集成
支持自動化失敗的原因匯總與總結
阿里分層自動化實踐帶來了很有意義的成果,在阿里內部,大幅提高了研發測試比,減少了重複勞動帶來的加班,同時帶動了更多高效工具的誕生;在研發方面,單測成本降低了,覆蓋率可視化了,自測有保障了,故障降低了;在測試方面,降低了測試要求,增加了工作成就感;對雲效客戶來說,給企業賦能,提高了研發測試效率。
相關閱讀:https://yq.aliyun.com/articles/134663


※阿里雲高性能時序資料庫 HiTSDB 啟動公測,為物聯網而生的資料庫!
※雲戰略下的安全思維轉型與新認知
※做實景導航的有福了!ARKit增強現實版實景導航開源
※手把手教你使用TensorFlow生成對抗樣本|附源碼
※95後大學生用機器學習PAI大戰老年痴呆
TAG:雲棲社區 |
※真正意義上的無人超市!Amazon Go落地西雅圖 阿里巴巴最大對手
※演繹音樂家的神韻:Divine Acoustics帝梵尼 ELECTRA 3伊萊克落地箱
※阿里巴巴在香港落地了全球首家人工智慧服飾店——「FashionAI 概念店」
※DOTA2:外媒透露Major將在法國舉辦,落地巴黎迪士尼!
※Amazon Go海外首家將落地倫敦
※競賽老兄的「奧迪RS3落地Detailing」
※Salesforce落地中國,宣布與阿里巴巴達成戰略合作,向全國開放CRM平台
※DevOps升級&AIOps落地,互聯網企業和傳統企業的做法有何異同?
※獨特的Freedom接地技術:Audiovector R8 Areteé落地音箱
※新品|獨特的Freedom接地技術:Audiovector R8 Areteé落地音箱
※索尼新旗艦Xperia XZ2落地中國 你會為信仰充值嗎?
※對話Velodyne LiDAR總裁:高解析度、長探測距離和隱藏式激光雷達是產品落地的關鍵
※對話 Mobileye 中國區總監 Boaz Sacks:講技術是紙上談兵,自動駕駛落地要先看實際裝車量
※丹麥Audiovector傲力QR3落地音箱
※落地緩衝離地回彈,Saucony Freedom ISO2跑鞋體驗
※與Uber和解的Waymo,想落地自動駕駛技術還缺啥?
※愛詩特濃Estelon Ocean Mystery Forza次旗艦落地音箱
※10nm IceLake落地,英特爾十代酷睿CPU帶來哪些革新?
※Salesforce 落地中國
※使用Caicloud TaaS 平台落地深度學習演算法實戰