成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

walle-瓦力自動(dòng)化部署工具

Allen / 1425人閱讀

摘要:項(xiàng)目地址瓦力,上線開源兩個(gè)月,目前已支持超過十家企業(yè)線上部署使用,每周更新一個(gè)版本,持續(xù)帶來新特性。支持開放接口支持第三方了解更多項(xiàng)目地址瓦力,官方主頁瓦力。

1 Git Flow

一般而言,軟件開發(fā)模型有常見的瀑布模型、迭代開發(fā)模型、以及最近出現(xiàn)的敏捷開發(fā)模型等不同的模型。每種模型有各自應(yīng)用場景,Git Flow是構(gòu)建在Git之上的一個(gè)組織軟件開發(fā)活動(dòng)的模型,Git Flow重點(diǎn)解決的是由于源代碼在開發(fā)過程中的各種沖突導(dǎo)致開發(fā)活動(dòng)混亂的問題。在此介紹Git Flow是由于walle依賴它的思想進(jìn)行持續(xù)部署。

開發(fā)過程中可能出現(xiàn)的git flow

1.1 Git Flow中的分支

Git Flow模型中定義了主分支和輔助分支兩類分支。其中主分支用于組織與軟件開發(fā)、部署相關(guān)的活動(dòng);輔助分支組織為了解決特定的問題而進(jìn)行的各種開發(fā)活動(dòng)。分支的名字是一種共識(shí),更重要的是它承擔(dān)的責(zé)任。

1.2 主分支

主分支是所有開發(fā)活動(dòng)的核心分支。所有的開發(fā)活動(dòng)產(chǎn)生的輸出物最終都會(huì)反映到主分支的代碼中。主分支分為master分支和development分支。

1.2.1 master分支

master分支上存放的應(yīng)該是隨時(shí)可供在生產(chǎn)環(huán)境中部署的代碼,它承擔(dān)的責(zé)任就是:僅在發(fā)布新的可供部署的代碼時(shí)才更新到master分支上的代碼。當(dāng)開發(fā)活動(dòng)告一段落,產(chǎn)生了一份新的可供部署的代碼時(shí),master分支上的代碼會(huì)被更新。同時(shí),每一次更新,最好添加對應(yīng)的版本號(hào)標(biāo)簽(TAG)。

1.2.2 develop分支

develop分支是保存當(dāng)前最新開發(fā)成果的分支,它承擔(dān)的責(zé)任就是功能開發(fā)完畢等待最后QA的驗(yàn)收,通常這個(gè)分支上的代碼也是可進(jìn)行每日夜間發(fā)布的代碼。當(dāng)代碼已經(jīng)足夠穩(wěn)定時(shí),就可以將所有的開發(fā)成果合并回master分支了。

1.3輔助分支

輔助分支是用于組織解決特定問題的各種軟件開發(fā)活動(dòng)的分支,它的生存周期伴隨著它的功能完成而消失。輔助分支包括:

用于并行開發(fā)新功能時(shí)所使用的feature分支;

用于輔助版本發(fā)布的release分支;

用于修正生產(chǎn)代碼中的缺陷的hotfix分支。

當(dāng)這些分支完成它的使命之后在merge到主分支之后,也將被刪除。

Git Flow開發(fā)模型從源代碼管理角度對通常意義上的軟件開發(fā)活動(dòng)進(jìn)行了約束,讓小組各個(gè)成員之間的開發(fā)相互隔離,能夠有效避免處于開發(fā)狀態(tài)中的代碼相互影響而導(dǎo)致的效率低下和混亂,各自開發(fā)團(tuán)隊(duì)根據(jù)自己的特點(diǎn)和節(jié)奏自行剪裁或擴(kuò)展。

2 Walle介紹
2.1是什么?

Walle 一個(gè)web部署系統(tǒng)工具,可能也是個(gè)持續(xù)發(fā)布工具,配置簡單、功能完善、界面流暢、開箱即用!支持git、svn版本管理,支持各種web代碼發(fā)布,靜態(tài)的HTML、動(dòng)態(tài)PHP、需要編譯的JAVA等,用戶權(quán)限管理,各種自定義高級任務(wù)。一鍵上線、回滾。

項(xiàng)目地址:walle-瓦力,上線開源兩個(gè)月,目前已支持超過十家企業(yè)線上部署使用,每周更新一個(gè)版本,持續(xù)帶來新特性。

2.2 walle的組件關(guān)系、原理

walle部署在一臺(tái)宿主機(jī)提供一個(gè)web UI,方便用戶自主更新代碼部署到目標(biāo)機(jī)群。Walle是一個(gè)跑在LNMP(LAMP)上的PHP服務(wù),宿主機(jī)與目標(biāo)機(jī)群建立信任,通過操作bash命令來實(shí)現(xiàn)代碼同步、自定義高級任務(wù)。


宿主機(jī)、目標(biāo)機(jī)群、操作用戶關(guān)系

2.3配置

用戶的項(xiàng)目可自定義git/svn代碼托管地址、宿主機(jī)、目標(biāo)機(jī)群、高級任務(wù)等。配置完成后可快速復(fù)制當(dāng)前配置、檢測配置是否正常、以及該項(xiàng)目的審核管理員和成員。

3 walle與Git的配合

walle的持續(xù)部署與Git Flow思想一致,在不同的環(huán)境部署不同的分支。劃分三個(gè)環(huán)境:測試環(huán)境、預(yù)發(fā)布環(huán)境、生產(chǎn)環(huán)境。測試環(huán)境和預(yù)發(fā)布環(huán)境推薦分支部署,生產(chǎn)環(huán)境推薦tag部署。當(dāng)然,這更適合milestone開發(fā)方式,如果是每天快速迭代多個(gè)版本,打tag成本就有點(diǎn)高了。

3.1 部署環(huán)境
3.1.1 測試環(huán)境

開發(fā)者的feature分支開發(fā)、自測驗(yàn)收通過后,merge到測試環(huán)境的develop分支,(QA)部署到測試環(huán)境,等待QA驗(yàn)收。

QA提bug issue,開發(fā)者從develop切分支修正再次合并、部署、驗(yàn)收。

3.1.2 預(yù)發(fā)布環(huán)境

測試環(huán)境驗(yàn)收通過之后,合并到預(yù)發(fā)布環(huán)境的master,部署預(yù)發(fā)布環(huán)境

QA全面回歸,發(fā)現(xiàn)問題提bug issue,開發(fā)者從master切分支修正再次合并、部署、驗(yàn)收。

回歸完畢打tag,準(zhǔn)備上線

3.1.3 生產(chǎn)環(huán)境

上線驗(yàn)收通過的tag

回歸測試,發(fā)現(xiàn)問題開發(fā)者從master切分支hotfix修正。

3.2 環(huán)境上線流程

開發(fā)者選擇要上線的項(xiàng)目,選擇要上線的分支和版本提交上線單,項(xiàng)目管理員審核通過后,開發(fā)者發(fā)起上線。

4 Walle的部署流程

部署是在一臺(tái)宿主機(jī)拉取代碼,做編譯、配置后,向目標(biāo)機(jī)群分發(fā),執(zhí)行相關(guān)目標(biāo)機(jī)群任務(wù)。部署流程拆分為以下6個(gè)環(huán)節(jié),其中1-5為在宿主機(jī)進(jìn)行,6在目標(biāo)機(jī)群執(zhí)行。

權(quán)限、目錄檢查,開辟一個(gè)上線的獨(dú)立空間以并行發(fā)布,防止同時(shí)部署出現(xiàn)代碼污染

pre-deploy任務(wù),代碼檢出前的一些操作任務(wù),如環(huán)境檢查

代碼從git/svn版本庫中檢出

post-deploy任務(wù),代碼檢出之后操作任務(wù),如java的mvn編譯,php的composer插件安裝

保留在獨(dú)立空間的代碼均會(huì)被同步至目標(biāo)機(jī)群的一個(gè)版本庫中

全量更新:當(dāng)所有機(jī)器都分發(fā)完畢,開始做pre-release任務(wù)(java暫停服務(wù))、切換版本軟鏈、post-release任務(wù)( java啟動(dòng)服務(wù))


為保證服務(wù)的完整性,先同步代碼,后切換服務(wù)。部署發(fā)布每次都會(huì)有版本記錄保留,版本上線事故一旦發(fā)生,回滾可瞬間完成。可配置線上版本最大保留數(shù),過期的版本被會(huì)刪除,同時(shí)也就不能回滾被刪除的版本。對于需要編譯、自定義多任務(wù)輔助,可配置前置、后置操作自定義任務(wù);同時(shí)提供一些預(yù)置變量({WORKSPACE}宿主機(jī)的當(dāng)前獨(dú)立空間、目標(biāo)機(jī)webroot,{VERSION}版本庫目錄)方便用戶操作自定義任務(wù)。

上線過程直到目標(biāo)機(jī)群全部完成之前,如有任一環(huán)節(jié)失敗將會(huì)回滾,需要重新上線,同時(shí)會(huì)把錯(cuò)誤信息提示用戶。

5 Todo list

支持Docker

開放接口

支持第三方hook

6 了解更多

項(xiàng)目地址:walle-瓦力,官方主頁-walle 瓦力。歡迎了解、star、fork。

7 walle 2.0 驚艷亮相

8 walle 2.0 特性

功能強(qiáng)大,且免費(fèi)開源的walle-web 瓦力終于更新2.0了!占用了我?guī)缀跛袠I(yè)余時(shí)間,精力與金錢付出換各位使用收益,望各位喜歡順手 star 以示支持,項(xiàng)目更好亦反饋予你。目前 2.0 預(yù)覽版尚未達(dá)到完全企業(yè)可用狀態(tài),請保持關(guān)注,我會(huì)在公眾號(hào)更新(在最下面)。

gitlabRESTful API,類gitlab的權(quán)限模型,將來打通gitlab,良心的驚喜

空間管理。意味著有獨(dú)立的空間資源:環(huán)境管理、用戶組、項(xiàng)目、服務(wù)器等

灰度發(fā)布。呼聲不斷,終于來了

websocket 實(shí)時(shí)展示部署中的 shell console

完善的通知機(jī)制。郵件、釘釘

全新的UI,我自己都被震憾到了,如絲般流暢

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21228.html

相關(guān)文章

  • 瓦力Walle)上線部署系統(tǒng)

    摘要:瓦力是一個(gè)支持多用戶多項(xiàng)目多環(huán)境同時(shí)部署的上線部署系統(tǒng)。詳見項(xiàng)目,或花滿樹官方說明,如果喜歡歡迎標(biāo),支持我們把瓦力做強(qiáng)大。詳情項(xiàng)目官網(wǎng)主頁文檔手冊更新介紹瓦力自動(dòng)化部署工具 showImg(https://segmentfault.com/img/bVrjiG); Walle - 瓦力 是一個(gè)支持svn、git、多用戶、多項(xiàng)目、多環(huán)境同時(shí)部署的上線部署系統(tǒng)。 github項(xiàng)目 wall...

    nevermind 評論0 收藏0
  • walle 瓦力--部署系統(tǒng)(從原理到安裝)

    摘要:瓦力介紹一個(gè)部署系統(tǒng)工具,配置簡單功能完善界面流暢開箱即用支持版本管理,支持各種代碼發(fā)布,,,等代碼的發(fā)布回滾,可以通過來一鍵完成。 瓦力介紹 Walle 一個(gè)web部署系統(tǒng)工具,配置簡單、功能完善、界面流暢、開箱即用!支持git、svn版本管理,支持各種web代碼發(fā)布,PHP,Python,JAVA等代碼的發(fā)布、回滾,可以通過web來一鍵完成。 功能列表 用戶分身份注冊、登錄 開發(fā)者...

    VPointer 評論0 收藏0
  • walle 瓦力--部署系統(tǒng)(從原理到安裝)

    摘要:瓦力介紹一個(gè)部署系統(tǒng)工具,配置簡單功能完善界面流暢開箱即用支持版本管理,支持各種代碼發(fā)布,,,等代碼的發(fā)布回滾,可以通過來一鍵完成。 瓦力介紹 Walle 一個(gè)web部署系統(tǒng)工具,配置簡單、功能完善、界面流暢、開箱即用!支持git、svn版本管理,支持各種web代碼發(fā)布,PHP,Python,JAVA等代碼的發(fā)布、回滾,可以通過web來一鍵完成。 功能列表 用戶分身份注冊、登錄 開發(fā)者...

    zhangke3016 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<