偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

#1 前世今生 & 世界你好

#2 容器化主機(jī)

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

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

docker

Visual Studio Team Services/Team Foundation Server

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

基于容器的CI/CD

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

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

基于容器的CI/CD

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

○ Dockerhost-test

○ Dockerhost-pro

4. 將docker hub賬號連接到TFS

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

將docker hub賬號連接到TFS

填寫你的docker hub用戶名,密碼和郵件地址;如果使用私有的registry,請更新Docker Regsitry地址。

5. 配置CI定義

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

 配置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)這個環(huán)境變量作為容器鏡像的tag,這樣我們就可以使用統(tǒng)一的構(gòu)建號來管理容器鏡像的不同版本。

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

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

docker push的詳細(xì)配置

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

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

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

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

○ Stop running container

○ Remove container

○ Run container

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

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

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

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

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

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

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

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

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

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

2017-02-14 16:39:56

docker容器化主機(jī)

2017-03-01 08:56:28

VSTSTFSiOS

2017-02-14 19:57:27

docker云存儲Azure

2017-02-14 15:51:16

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

2017-03-01 10:34:12

2017-12-10 20:53:56

Docker持續(xù)交付容器

2017-08-18 08:27:27

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

2021-03-31 09:00:00

管道集成工具

2017-03-01 09:20:30

2017-10-19 09:47:55

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

2017-02-27 18:04:22

容器軟件交付

2022-06-13 07:02:02

Zadig平臺自動化

2023-01-16 08:00:00

2021-07-23 10:17:17

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

2016-01-07 10:29:36

MesosDocker持續(xù)交付

2017-02-27 18:28:45

持續(xù)交付部署

2017-12-24 21:29:18

OpenShift持續(xù)交付集群

2016-02-15 09:37:14

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

2021-06-18 09:00:00

云計算開發(fā)存儲庫

2021-04-23 08:00:00

Kubernetes容器工具
點贊
收藏

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