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