日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分享实录 | 企业CICD规模化落地浅析

發(fā)布時間:2024/8/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分享实录 | 企业CICD规模化落地浅析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

【以下為分享實錄,有刪節(jié)】

今天分享的題目是《企業(yè)CICD規(guī)模化落地》,因此我們不會側(cè)重講解CICD是什么以及怎樣做CICD,而是你已經(jīng)知道怎樣“玩轉(zhuǎn)”CICD了,要如何在一個比較大的企業(yè)中規(guī)模化地落地。

研發(fā)流程與持續(xù)交付簡析

持續(xù)交付是隨著互聯(lián)網(wǎng)的迅猛發(fā)展逐漸普及的一種研發(fā)模式,它具有“快速反饋”“質(zhì)量內(nèi)建”“自動化”“開發(fā)自運維”等特點。

這種研發(fā)模式主要包含如上圖所示的四個環(huán)節(jié),“分支管理”“測試驗證”“制品管理”和“發(fā)布”。在業(yè)界有很多工具支持這些操作,在云效產(chǎn)品矩陣中也有對應的產(chǎn)品提供相應功能。

在一個中小型的研發(fā)團隊(比如5-10人),無論你是使用商業(yè)軟件還是開源的工具,經(jīng)過一段時間的學習,你都可以把“持續(xù)交付”做起來。但是當需要規(guī)模化落地之后,就有更多的問題需要考慮,如:

  • 如何提高協(xié)作效率;
  • 新團隊如何快速接入;
  • 如何進行全局風險的控制;
  • 研發(fā)流程如何全局更新。

持續(xù)交付在阿里巴巴的規(guī)模化

接下來簡單了解一下“持續(xù)交付”研發(fā)工具在阿里巴巴內(nèi)部的演化歷程。2009年,我們開發(fā)了自動化發(fā)布工具;2013年,建立統(tǒng)一構(gòu)建部署平臺;到了2016年我們已經(jīng)有了持續(xù)交付平臺,內(nèi)部稱為“Aone”,該產(chǎn)品包含了從代碼開發(fā)、構(gòu)建、發(fā)布等功能,以一個一站式的研發(fā)平臺,這個產(chǎn)品到現(xiàn)在也一直在演進;2017年時,我們將“Aone”的核心功能開放出來,供廣大開發(fā)者使用,就是我們的“阿里云·云效”。目前該產(chǎn)品在公測中,大家可以登錄阿里云官網(wǎng)進行訪問、使用。

下面我們介紹幾個幫助阿里巴巴實現(xiàn)持續(xù)交付規(guī)模化落地的研發(fā)實踐。

要使持續(xù)交付規(guī)模化落地,很重要的一點是需要有一套工具對研發(fā)模式進行全自動支持。 “研發(fā)模式”是指你做事情的一種方式,在這里主要是指代碼發(fā)布模式以及對應的分支使用方式,比如“主干模式”,這也是持續(xù)交付比較提倡的一種研發(fā)模式。但是“主干模式”對研發(fā)人員的要求比較高,并且也不能很好的體現(xiàn)出當前要進行發(fā)布的內(nèi)容。作為一位研發(fā)負責人,你可能會選擇更靈活一些的研發(fā)模式,比如 “Aone Flow”或者 “Git Flow”等,這兩種模式都需要一定的自動化工具進行支持。

其中Aone Flow是在阿里巴巴內(nèi)部主流的一種發(fā)布模式及分支管理方式,我們這里簡單介紹一下,感興趣的同學可以在網(wǎng)上搜索相關(guān)文章了解。Aone Flow使用三種分支類型:主干分支、特性分支、發(fā)布分支。主干分支上的代碼跟線上版本的代碼是一致的,當你要開發(fā)一個新的功能時,就會拉取一個特性分支作為開發(fā)分支,然后在這個分支上提交代碼修改。當你需要發(fā)布的時候,需要先將不同的特性分支合并為開發(fā)分支再進行發(fā)布。發(fā)布到線上正式環(huán)境后,合并相應的發(fā)布分支到主干,在主干添加標簽,同時刪除該發(fā)布分支關(guān)聯(lián)的特性分支。這個過程中涉及到大量的“拉分支”“合分支”“打標簽”“回滾版本”等等復雜操作,這就需要有一系列自動化工具進行支持。在阿里巴巴內(nèi)部我們是通過Aone平臺(即云效的內(nèi)部版本)提供自動化支持的。

第二個實踐是以應用為核心的一站式研發(fā)體驗。“應用”是指一個服務或者微服務,可以直接對應一個代碼庫。以應用為中心,我們又可以串聯(lián)流水線、環(huán)境管理、構(gòu)建配置、部署等工具鏈。可以讓開發(fā)人員很好的理解和打通整個研發(fā)流程,同時也可以幫助一個新團隊快速上手。

上圖是我們內(nèi)部一個產(chǎn)品研發(fā)過程的截圖,會有一個研發(fā)向?qū)椭闾峤桓鞣N信息、初始化代碼庫、源碼自動生成、申請測試環(huán)境、進行線上發(fā)布等一系列操作。這種“以應用為核心的一站式體驗”非常爽,可以幫助研發(fā)團隊節(jié)省很多耗費在協(xié)作上的時間,而且有了這套流程之后,只要按照向?qū)У奶崾救プ鼍秃昧?#xff0c;很少出錯。

接下來,我們聊一下如何進行全局風險管控。

在部署正式環(huán)境之前,會有一個Checklist,進行安全審核、PE審核等等,我們很多對外發(fā)布的應用都會經(jīng)過這樣的安全審核。在前DevOps時代(2016年以前),阿里巴巴內(nèi)部還是有專門的運維團隊的,我們叫PE團隊。在正式發(fā)布前,他們會去審核發(fā)布的時間點、配置參數(shù)等。這就是全局風險管控,這些卡點會強制在一個流程中實施,不能夠取消。(當然現(xiàn)在已經(jīng)阿里巴巴內(nèi)部已經(jīng)取消了PE團隊,這些卡點會通過自動化工具實現(xiàn))

**兼具靈活性與規(guī)范性的持續(xù)交付平臺
**
通過以上幾個措施,就能夠在阿里巴巴內(nèi)部規(guī)模化的落地CICD,當新的研發(fā)團隊加入時,也不用花費太多的時間去理解這個事情,而是很快上手去操作。但是我們這一套流程也遇到一些問題,這套流程面向Web端服務是可以很好去應對的,比如我們只有一個版本的“天貓”“淘寶”,永遠是面向最新版去交付的;但是隨著阿里云業(yè)務的發(fā)展,特別是出現(xiàn)了混合云的業(yè)務,出現(xiàn)了面向多Region和多版本交付的情況,我們這套研發(fā)流程就有點捉襟見肘了;因為我們的研發(fā)理念是“以應用為中心”,當遇到一些跟應用無關(guān)的交付場景時這套研發(fā)流程也會顯得不合時宜。

如何提高阿里巴巴持續(xù)交付平臺的靈活性呢?我們最早的研發(fā)架構(gòu)如上圖左側(cè)所示,底層是研發(fā)平臺,上面我們做了很多“場景化”的研發(fā)組件,同時保留了一定的擴展性,比如“自定義組件”,用戶可以把自己的組件接入到我們的流水線里來;也暴露了一部分API,主要只讀接口,其他團隊可以在這上面做一些他的場景化。

我們認為這種研發(fā)架構(gòu)的靈活性和擴展能力是不足的,(如上圖右側(cè)所示)后來我們就把構(gòu)建、編排、部署、制品這些能力單獨拎出來,并開放對應的API,上層我們再去編纂“場景化”,而且有可能這些“場景”都不是我們開發(fā)的,而是使用這個產(chǎn)品的用戶自己去開發(fā),重點是我們需要將這種擴展能力暴露出來。我們還會有“自定義步驟”和“自定義組件”,這兩個功能已經(jīng)在云效產(chǎn)品中提供。同時,我們還會開發(fā)更多API、支持更多的源,也可以通過配置webhook在流水線的生命周期中(失敗、成功、暫停等)通知第三方。

這樣的研發(fā)架構(gòu)就具備了一定的靈活性和可擴展性,但對于企業(yè)來講這是不夠,還必須具有開箱即用的能力。

云效內(nèi)置代碼掃描、 安全掃描和各種自動化測試能力,并通過流水線模板串聯(lián)起來 。如上圖右側(cè)所示,針對主流的開發(fā)語言Java、PHP、Node.js、Go、Python等提供從構(gòu)建到部署發(fā)布的各種模板,可以幫助你快速開始。

模板化能力其實是推進CICD規(guī)模化落地的關(guān)鍵,云效不僅提供了數(shù)十種通用的模版來幫助你快速創(chuàng)建流水線,同時提供定制化能力,支持定制企業(yè)自有模版來管理企業(yè)持續(xù)集成和持續(xù)交付流程,將復雜的流程通過可視化編排和結(jié)果展現(xiàn),保障交付可見可控可度量。

總結(jié):

當你已經(jīng)對CICD有一定了解,怎么樣更好的在組織內(nèi)規(guī)模化落地呢?第一,你需要選擇一款兼具靈活性和規(guī)范性的工具平臺。第二,制定適合自己企業(yè)的研發(fā)模式,并將其固化下來;第三,研發(fā)模式的變更可以應用到已有的團隊;第四,通過適當?shù)目c來控制全局風險。

以上內(nèi)容整理自懷虎的視頻分享《企業(yè)CICD規(guī)模化落地》,歡迎大家加入云效開發(fā)者交流群(釘釘群號:34532418)觀看視頻回放,下載演講PPT。


【關(guān)于云效】

云效,企業(yè)級一站式DevOps平臺,源于阿里巴巴先進的研發(fā)理念和工程實踐,致力于成為數(shù)字企業(yè)的研發(fā)效能引擎!云效提供從“需求 ->開發(fā)->測試->發(fā)布->運維->運營”端到端的在線協(xié)同服務和研發(fā)工具,通過人工智能、云原生技術(shù)的應用助力開發(fā)者提升研發(fā)效能,持續(xù)交付有效價值。

【云效官網(wǎng)】https://www.aliyun.com/product/yunxiao
【公測指南】https://developer.aliyun.com/article/756207
【申請公測】https://devops.aliyun.com
【學習路徑】https://help.aliyun.com/document_detail/153739.html
【開發(fā)者社區(qū)】https://developer.aliyun.com/group/yunxiao
【精彩活動】云效公測開啟 「產(chǎn)品體驗官」招募中~
https://www.aliyun.com/activity/yunxiao/Beta2020

?


歡迎掃碼加入云效開發(fā)者俱樂部(釘群:34532418)

原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的分享实录 | 企业CICD规模化落地浅析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。