自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

docker4dotnet #5 使用VSTS/TFS搭建基于容器的持續(xù)交付管道

開(kāi)發(fā) 開(kāi)發(fā)工具
今天這篇文章將對(duì)如何使用微軟的全生命周期管理平臺(tái)VSTS/TFS來(lái)構(gòu)建基于容器的CI/CD管道來(lái)支持團(tuán)隊(duì)開(kāi)發(fā)的場(chǎng)景。

在過(guò)去的幾篇d4d系列中,我給大家介紹了如何使用docker來(lái)支持asp.net core的應(yīng)用開(kāi)發(fā),打包的場(chǎng)景。Asp.net core的跨平臺(tái)開(kāi)發(fā)能力為.net開(kāi)發(fā)人員提供了使用容器進(jìn)行應(yīng)用開(kāi)發(fā)的能力,今天這篇文章將對(duì)如何使用微軟的全生命周期管理平臺(tái)VSTS/TFS來(lái)構(gòu)建基于容器的CI/CD管道來(lái)支持團(tuán)隊(duì)開(kāi)發(fā)的場(chǎng)景。

#1 前世今生 & 世界你好

#2 容器化主機(jī)

#3 在macOS上使用Visual Studio Code和Docker開(kāi)發(fā)asp.net core和mysql應(yīng)用

#4 使用Azure云存儲(chǔ)構(gòu)建高速 Docker registry

docker

Visual Studio Team Services/Team Foundation Server

VSTS/TFS是微軟Visual Studio產(chǎn)品組提供給廣大開(kāi)發(fā)者的全生命周期管理平臺(tái),Visual Studio Team Service (VSTS)是構(gòu)建在微軟公有云Azure平臺(tái)上的Saas架構(gòu)的開(kāi)發(fā)平臺(tái),為中小團(tuán)隊(duì)和跨地域的大型團(tuán)隊(duì)提供軟件開(kāi)發(fā)過(guò)程的端到端管理能力,這個(gè)平臺(tái)對(duì)于5名以下開(kāi)發(fā)團(tuán)隊(duì)的小團(tuán)隊(duì)完全免費(fèi)(同時(shí)可以有任意數(shù)量的管理人員參與,VSTS通過(guò)區(qū)分stakeholder和developer兩種角色,為stakeholder這些只需要管理過(guò)程而無(wú)需修改代碼的管理人員提供了完全免費(fèi)的訪問(wèn)許可)。Team Foundation Server是VSTS的企業(yè)版,可以由企業(yè)獨(dú)立部署于私有云或者數(shù)據(jù)中心中,并提供與VSTS一致的功能體驗(yàn)。

基于容器的CI/CD

容器技術(shù)所解決的主要問(wèn)題是環(huán)境的一致性和同一版本的應(yīng)用在不同的環(huán)境中的遷移問(wèn)題,雖然對(duì)單個(gè)開(kāi)發(fā)人員也提供了更高效的開(kāi)發(fā)模式,但容器的作用在團(tuán)隊(duì)開(kāi)發(fā)中和管理開(kāi)發(fā)/測(cè)試/預(yù)生產(chǎn)/生產(chǎn)環(huán)境中會(huì)體現(xiàn)得更有價(jià)值。從事軟件開(kāi)發(fā)的技術(shù)人員都知道,在開(kāi)發(fā)過(guò)程中保持不同開(kāi)發(fā)人員/測(cè)試人員使用統(tǒng)一的環(huán)境是一件非常困難的事情,很多過(guò)程中的問(wèn)題都是環(huán)境不一致造成的。容器正是解決這一問(wèn)題的有效方式。

為了能夠構(gòu)建基于容器的CI/CD,我們需要以下工具鏈:

基于容器的CI/CD

下圖展示了以上工具鏈的關(guān)系和工作流程

基于容器的CI/CD工具鏈的關(guān)系和工作流程

下圖中可以看到,要構(gòu)建完整的發(fā)布工具,我們需要一個(gè)多級(jí)技術(shù)棧,Docker的容器化工具降低了***層環(huán)境和應(yīng)用技術(shù)棧的復(fù)雜度,讓我們的發(fā)布過(guò)程變得更簡(jiǎn)單。

Docker的容器化工具降低了***層環(huán)境和應(yīng)用技術(shù)棧的復(fù)雜度

下面我們就來(lái)看一下如何配置這樣一套基于容器的CI/CD環(huán)境

1. 創(chuàng)建容器化主機(jī)作為開(kāi)發(fā)/測(cè)試/生產(chǎn)環(huán)境

關(guān)于如何在開(kāi)發(fā)環(huán)境中創(chuàng)建容器化主機(jī)支持編碼和調(diào)試,請(qǐng)參考

《#1 前世今生 & 世界你好》

關(guān)于如何在云環(huán)境中創(chuàng)建容器化主機(jī)支持測(cè)試和生產(chǎn)環(huán)境,請(qǐng)參考

《#2 容器化主機(jī)》

2. 在Linux服務(wù)器上配置TFS構(gòu)建代理

關(guān)于如何配置Linux服務(wù)器上的構(gòu)建代理,請(qǐng)參考

《用VSTS/TFS搭建iOS持續(xù)集成環(huán)境》

3. 將容器化主機(jī)連接到TFS

進(jìn)入TFS后臺(tái),點(diǎn)擊 服務(wù) | 新建服務(wù)終結(jié)點(diǎn) |Dcoker Host

將容器化主機(jī)連接到TFS

將容器化主機(jī)的 url,和~/.docker/machine/machines/{machine-name} 目錄下的pem的文件內(nèi)容按照以下關(guān)系拷貝到配置頁(yè)面中。

重復(fù)以上過(guò)程,分別綁定用戶(hù)測(cè)試和生產(chǎn)環(huán)境的容器化主機(jī)配置,創(chuàng)建以下docker host終結(jié)點(diǎn)

○ Dockerhost-test

○ Dockerhost-pro

4. 將docker hub賬號(hào)連接到TFS

進(jìn)入TFS后臺(tái),點(diǎn)擊 服務(wù) | 新建服務(wù)終結(jié)點(diǎn) | Docker Registry

將docker hub賬號(hào)連接到TFS

填寫(xiě)你的docker hub用戶(hù)名,密碼和郵件地址;如果使用私有的registry,請(qǐng)更新Docker Regsitry地址。

5. 配置CI定義

創(chuàng)建生成定義,并將默認(rèn)代理隊(duì)列指向?qū)?yīng)在Linux服務(wù)器上構(gòu)建代理隊(duì)列

 配置CI定義

在 生成 步驟中分別添加以下構(gòu)建任務(wù)

 配置CI定義

具體為

a. dotnet restore

b. dotnet build

c. dotnet publish

d. docker build

e. docker push

以下為docker build步驟的詳細(xì)配置,注意這里我們使用$(Build.BuildNumber)這個(gè)環(huán)境變量作為容器鏡像的tag,這樣我們就可以使用統(tǒng)一的構(gòu)建號(hào)來(lái)管理容器鏡像的不同版本。

docker build步驟的詳細(xì)配置

以下是docker push的詳細(xì)配置,此步驟將把構(gòu)建好的容器上傳到docker hub并使用$(Build.BuildNumber)作為版本號(hào)tag。

docker push的詳細(xì)配置

6. 創(chuàng)建CD發(fā)布管道

創(chuàng)建以下發(fā)布管道配置,分別指定測(cè)試環(huán)境和生產(chǎn)創(chuàng)建的部署步驟

創(chuàng)建CD發(fā)布管道

在每一個(gè)環(huán)境中,我們都執(zhí)行以下步驟

○ Stop running container

○ Remove container

○ Run container

測(cè)試環(huán)境和生產(chǎn)環(huán)境分別使用不同的容器化主機(jī)連接(在第1-2步中創(chuàng)建的連接)。

7. 配置測(cè)試環(huán)境到生產(chǎn)環(huán)境的升級(jí)策略

以下配置要求生產(chǎn)環(huán)境的部署只有在測(cè)試環(huán)境部署成功的情況下才能執(zhí)行

配置測(cè)試環(huán)境到生產(chǎn)環(huán)境的升級(jí)策略

以下配置要求生產(chǎn)環(huán)境的部署必須由特定的用戶(hù)進(jìn)行審批通過(guò)后才能執(zhí)行

配置測(cè)試環(huán)境到生產(chǎn)環(huán)境的升級(jí)策略

至此,我們就完成了基于容器的CI/CD發(fā)布管道配置。

【本文為51CTO專(zhuān)欄作者“徐磊”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)作者微信公眾號(hào)devopshub獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2017-02-14 16:39:56

docker容器化主機(jī)

2017-03-01 08:56:28

VSTSTFSiOS

2017-02-14 19:57:27

docker云存儲(chǔ)Azure

2017-02-14 15:51:16

docker開(kāi)發(fā)調(diào)試

2017-03-01 10:34:12

2017-08-18 08:27:27

Azure應(yīng)用服務(wù)

2017-12-10 20:53:56

Docker持續(xù)交付容器

2017-03-01 09:20:30

2021-03-31 09:00:00

管道集成工具

2017-02-27 18:04:22

容器軟件交付

2017-10-19 09:47:55

容器化微服務(wù)集成

2022-06-13 07:02:02

Zadig平臺(tái)自動(dòng)化

2021-07-23 10:17:17

網(wǎng)絡(luò)攻擊存儲(chǔ)供應(yīng)鏈

2023-01-16 08:00:00

2016-01-07 10:29:36

MesosDocker持續(xù)交付

2017-02-27 18:28:45

持續(xù)交付部署

2016-02-15 09:37:14

Docker持續(xù)交付應(yīng)用程序

2021-06-18 09:00:00

云計(jì)算開(kāi)發(fā)存儲(chǔ)庫(kù)

2017-12-24 21:29:18

OpenShift持續(xù)交付集群

2021-04-23 08:00:00

Kubernetes容器工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)