摘要:用云效首先可以獲得研發模式的標準化,我們將其命名為,這是目前應用最廣最適合阿里巴巴的分支管理模式,不但具有高度自由,快速迭代的特性,還可以與流水線結合,讓整個公司具有統一的軟件交付規范。最終避免了的發布故障。
在2018第二屆研發效能嘉年華上,阿里巴巴云效技術專家崔力強帶來了如何做到高效軟件交付的精彩演講,首先介紹了阿里巴巴在近幾年在交付平臺上的技術經驗,以及目前云上工具平臺交易的趨勢,其次分享了阿里巴巴內部交付平臺如何幫助我們統一步調、并行工作,最后詳細講述了Dev無感Ops可以解決DevOps遇到的一些問題。
以下為精彩視頻內容整理:
阻礙開發者前進的問題
對于一個普通的工程師而言,第一要務是完成需求交付,我們的最終訴求是保障編碼、測試、部署的高效。但實際發現我們在交付的過程中并不順暢,研發流程的混亂經常出現代碼錯合,漏和,丟代碼的現象;質量化下降最主要是代碼有bug,線上環境交付不穩定,會有嚴重問題出現,測試環境不穩定指的是在做集成測試時需有一套環境,若環境不穩定,開發測試工作會被block;團隊之間溝通不暢,開發和開發之間,開發和測試之間,沒有統一規則或流程約定;一堆開源工具攢出來的開發工具鏈,不但提高了學習成本,還導致過程數據無法統一存儲。幾年前,幾乎都使用開源工具模式做持續交付,后續發現存在許多問題,于是開始做自建平臺過程。
上圖為知名公司的一份統計數據,統計持續交付是否能幫助我們提升研發效率,分別是瀑布模式、敏捷模式和持續交付模式,可以看出在持續交付模式下,開發在設計、測試、部署上的時間比重大大減少,在真正做開發上的時間達到了80%。也即是說我們更專注,更高效的在進行開發,從Waterfall到Agile的模式在研發階段效率高,主要是因為有更少的時間做設計、coding,而coding時產生核心價值的一個環節;從2-3餅圖開發時間更長,是因為我們把交付時間壓縮。
如何做到持續交付有以下五點:
? 1.需求的小批量流轉,通過拆分讓價值可以快速的交付,減少集成成本,一般單個需求我們不會超過1周。
? 2.自動化一切,不單是測試和部署,運維也需要自動化。
? 3.內建質量,盡早的測試可以顯著降低測試成本,保障交付流水線通暢,增強環境穩定性。
? 4.每個人都為交付過程負責,不單單編碼完成交給測試就ok了,要負責代碼上線,并且各項功能數據都正常才算完成。
? 5.研發過程數據,用戶反饋數據,對我們有非常大的價值,可以看到目前還有哪些坑阻礙著我們前進。
團隊不同階段面臨的問題
最初我們團隊只有1-7人時,是在最敏捷的狀態,類似Jeff Bezos所說的two pizza team。按照目前微服務化的規模,應該有2-3個應用。這樣的團隊首先應該具備基本的CI能力和質量保障,確保自己的代碼在一定質量下持續迭代。至于發布、運維并不一定是馬上需要面對的問題,一些紙面上的流程和腳本,足夠應付一陣子。
當團隊成長到7-20人時,我們應該有了一個比較大的產品,有復雜的架構和持續成長的業務。10多個應用之間互相影響,互相阻塞會導致我們線下開發和線上SLA面臨挑戰。此時一個統一的研發流程可以幫助我們規范開發行為,再加上統一的質量標準,不會讓我們集成環境和線上環境面臨較大風險。隨著應用增多,我們也需要一些契約測試來確保服務兼容性。
當團隊成長到20-100人時,已經是一個相當大的規模,我們掌握著一個企業核心的產品,業務壓力和穩定性壓力像兩個小人不斷PK。如何在質量和效率上達到最佳平衡,是我們要考慮的核心問題。應用規模達到了幾十個,已經不是簡單研發自動化能解決的了,此時需要一個統一的研發平臺,幫助解決從CI到CD的全鏈路問題,甚至包含全自動化的運維工具。產品、開發、測試、運維等角色可以在一個平臺上高效協作。在2017年,已經有83%的企業開始使用云計算來解決企業基礎設施問題和軟件交付問題。相比2016年出現爆發式增長,不難理解利用現成的經過驗證的可靠方案,可以大大縮短企業達成高效率目標的路徑。幫助企業在市場競爭中獲得先發優勢。
統一步調、并行工作
阿里巴巴內部端到端的研發平臺包括項目協作、持續交付、應用運維、測試度量以下幾方面。用云效首先可以獲得研發模式的標準化,我們將其命名為AoneFlow,這是目前應用最廣最適合阿里巴巴的分支管理模式,不但具有高度自由,快速迭代的特性,還可以與CD流水線結合,讓整個公司具有統一的軟件交付規范。
上圖為研發模式標準化-AoneFlow,將分支管理模式落地到產品層面,開發只要通過平臺新建特性分支,checkout push代碼,后續合并上線全過程全部由平臺接管,不但可以讓開發者協作變的非常簡單,高效,永不出錯,而且在研發流程中可以加入自由配置的預設規則,比如什么時候合并代碼,需要達到什么樣的標準,codereview 安全是否通過,發布分支怎么處理,等等像樂高積木一般定義自己的研發流程。
將繁瑣的易出錯的事情留給平臺,實現研發模式全自動化。真正的做到了研發過程全上平臺,所有數據可追蹤,并且徹底杜絕了漏發、錯合、管理混亂的情況。讓開發專心價值交付,是云效首先要解決的問題。
持續交付核心是快速交付價值,給與開發最大自由度,負責開發和運維全部過程。在監控、故障防控工具,功能開關的配合下,可以在保障用戶體驗和快速交付價值之間找到平衡點。
Dev無感Ops
Ops自身復雜由繁雜重復性的工作,Dev可以很輕易做Ops,是Dev感覺不到Ops的存在,Ops真正出現問題時,平臺會通知Dev處理問題,最后幫助團隊做度量。首先介紹阿里巴巴內部是以應用為中心DevOps理念使用來應用串聯整個DevOps工具鏈、開發定義應用,同時定義運維、開發為應用全生命周期負責、系統自動完成應用運維配置。
因此我們一直在推動標準化,智能化,無感的Ops體系建設。目前在研發端我們的三個實踐第一個是無人值守發布,眾做周知絕大部分的故障來自于變更,變更的絕大部分又來自于發布,如何保障每次發布都是對用戶無影響的,如何用系統代替人來關注龐雜繁瑣的運維指標。去年我們應用運維產品推出了無人值守發布功能,它使用人工智能的方法,計算發布過程中監控指標、日志數據、用戶數據等等多重維度的變化,預判可能出現的風險,警告用戶或者觸發回滾,保障發布過程無人參與。最終避免了90%的發布故障。第二個是應用健康檢查,同樣我們用大數據,人工智能的辦法,獲取多重運維數據,來幫助開發同學發現目前應用存在的風險,進行一鍵修復,有點類似大家電腦里的360管家。不需要有多少經驗,人人都可以成為運維專家。最后是應用自愈,我們將運維工具和經驗沉淀到了這個產品,對一些場景和問題進行自動修復和調整,達到無人參與的目的。這就是我們無感Ops的目標。
截圖來自阿里云云效研發的某過程
上圖為全云端構建,加速研發過程,云效完全自研的全云化構建調度系統,已經可以支持所有語言構建,擁有經過阿里云安全團隊認可的安全加固機制。并且根據不同技術棧提供了自適應的構建緩存策略,避免依賴的重復下載,大大節約構建時間,提高開發過程效率。開發在使用云效只需要選擇他的技術棧和構建命令,其他都可以交給平臺自動化完成。
云效目前支持阿里云容器服務、edas、ecs三種部署方式,對每個應用的每個環境都可多帶帶定義它的部署方式,并且實現任意切換。比如我們生產環境使用edas保障穩定,測試環境使用ecs混合部署節省資源都是可以實現的,非常方便。
在我們做運維棧轉型升級的時候,可以通過修改部署配置進行平滑升級,如果有問題,我們還可以實現一鍵回滾。云效保存著歷史所有軟件發布升級的基線數據隨時可查,隨時可rollback,這些都是阿里巴巴內部多年經驗的積累實踐。
在運維方面,我們支持了通過ECS模板快速擴容,并且在云市場也上線了云效推薦鏡像,直接可以獲得和阿里巴巴一致的運維標準。最后是基于特性分支的測試環境管理功能,支持環境隔離能力,具有生命周期管理功能,讓每個開發都可以享受到獨立的研發環境,并行工作,高效交付。以上功能都可以在阿里云云效幫助中獲得詳細操作指南。
原文鏈接
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8836.html
摘要:摘要在北京云棲大會上,阿里巴巴高級技術專家陳鑫花名神秀,給大家帶來了億背后的企業級高效持續交付,引起強烈共鳴。 摘要: 在2017北京云棲大會上,阿里巴巴高級技術專家陳鑫(花名神秀),給大家帶來了《1682億背后的企業級高效持續交付》,引起強烈共鳴。神秀從技術負責人關心的研發流程混亂、質量無法保障、環境管理低效、資源浪費等方面,結合阿里巴巴的DevOps實踐,深度解析了企業級持續交付如...
摘要:是如何出現的前因后果更多物聯網高并發編程知識請移步軟件開發的演變多年來,從現有的軟件開發策略方法發展而來,以響應業務需求。數據表明超過的項目最終都是以失敗告終的。團隊應該定期反思如何能變得更有戰斗力,然后相應地轉變并調整其行為。 DevOps是如何出現的?前因后果 更多物聯網高并發編程知識請移步:https://www.yuque.com/shizhiy... 軟件開發的演變 多年來...
摘要:云原生的概念,由來自的于年首次提出,被一直延續使用至今。比如,一個優雅的互聯網應用在設計過程中,需要遵循的一些基本原則和云原生有異曲同工之處。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 云原生(Cloud Native)的概念,由來自Pivotal的MattStine于2013年首次提出,被一直延續使用至今。這個概念是Matt Stine根據其多年的架構和咨詢經驗總結出來的...
摘要:近年來,云計算無疑成為企業開展業務的關鍵組成部分,特別是當企業考慮數字轉型的競爭時。其次,整體可見性和態勢感知水平基于遙測和與所有職能團隊的整個組織相關的。尤其是數字轉換和云計算,是創新和更廣泛業務轉型的組成部分。近年來,云計算無疑成為企業開展業務的關鍵組成部分,特別是當企業考慮數字轉型的競爭時。在全球范圍內,企業正在將他們的應用程序和服務轉移到云端,從而獲得更低的資本性支出和運營支出的好處...
摘要:,是開發和運維的組合,代表一種文化運動或實踐,旨在促進軟件交付和基礎設施變更軟件開發人員和運維技術人員之間的合作和溝通。預計年,將成為一項優勢策略得到全面的普及與實踐。而且隨著新軟件和工具以及技術的使用,這一勢頭有望增長。 DevOps,是開發(Development)和運維(Operations)的組合,代表一種文化、運動或實踐,旨在促進軟件交付和基礎設施變更軟件開發人員(Dev)和...
閱讀 519·2023-04-26 00:33
閱讀 3544·2021-11-24 09:39
閱讀 2930·2021-09-22 15:34
閱讀 2322·2019-08-23 18:07
閱讀 2917·2019-08-23 18:04
閱讀 3703·2019-08-23 16:06
閱讀 2899·2019-08-23 15:27
閱讀 1618·2019-08-23 14:32