成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

#1 前世今生 & 世界你好

#2 容器化主機

#3 在macOS上使用Visual Studio Code和Docker開發asp.net core和mysql應用

#4 使用Azure云存儲構建高速 Docker registry

docker

Visual Studio Team Services/Team Foundation Server

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

基于容器的CI/CD

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

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

基于容器的CI/CD

下圖展示了以上工具鏈的關系和工作流程

基于容器的CI/CD工具鏈的關系和工作流程

下圖中可以看到,要構建完整的發布工具,我們需要一個多級技術棧,Docker的容器化工具降低了***層環境和應用技術棧的復雜度,讓我們的發布過程變得更簡單。

Docker的容器化工具降低了***層環境和應用技術棧的復雜度

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

1. 創建容器化主機作為開發/測試/生產環境

關于如何在開發環境中創建容器化主機支持編碼和調試,請參考

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

關于如何在云環境中創建容器化主機支持測試和生產環境,請參考

《#2 容器化主機》

2. 在Linux服務器上配置TFS構建代理

關于如何配置Linux服務器上的構建代理,請參考

《用VSTS/TFS搭建iOS持續集成環境》

3. 將容器化主機連接到TFS

進入TFS后臺,點擊 服務 | 新建服務終結點 |Dcoker Host

將容器化主機連接到TFS

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

重復以上過程,分別綁定用戶測試和生產環境的容器化主機配置,創建以下docker host終結點

○ Dockerhost-test

○ Dockerhost-pro

4. 將docker hub賬號連接到TFS

進入TFS后臺,點擊 服務 | 新建服務終結點 | Docker Registry

將docker hub賬號連接到TFS

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

5. 配置CI定義

創建生成定義,并將默認代理隊列指向對應在Linux服務器上構建代理隊列

 配置CI定義

在 生成 步驟中分別添加以下構建任務

 配置CI定義

具體為

a. dotnet restore

b. dotnet build

c. dotnet publish

d. docker build

e. docker push

以下為docker build步驟的詳細配置,注意這里我們使用$(Build.BuildNumber)這個環境變量作為容器鏡像的tag,這樣我們就可以使用統一的構建號來管理容器鏡像的不同版本。

docker build步驟的詳細配置

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

docker push的詳細配置

6. 創建CD發布管道

創建以下發布管道配置,分別指定測試環境和生產創建的部署步驟

創建CD發布管道

在每一個環境中,我們都執行以下步驟

○ Stop running container

○ Remove container

○ Run container

測試環境和生產環境分別使用不同的容器化主機連接(在第1-2步中創建的連接)。

7. 配置測試環境到生產環境的升級策略

以下配置要求生產環境的部署只有在測試環境部署成功的情況下才能執行

配置測試環境到生產環境的升級策略

以下配置要求生產環境的部署必須由特定的用戶進行審批通過后才能執行

配置測試環境到生產環境的升級策略

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

【本文為51CTO專欄作者“徐磊”的原創稿件,轉載請通過作者微信公眾號devopshub獲取授權】

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

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-02-14 16:39:56

docker容器化主機

2017-03-01 08:56:28

VSTSTFSiOS

2017-02-14 19:57:27

docker云存儲Azure

2017-02-14 15:51:16

docker開發調試

2017-03-01 10:34:12

2017-12-10 20:53:56

Docker持續交付容器

2017-08-18 08:27:27

Azure應用服務

2021-03-31 09:00:00

管道集成工具

2017-03-01 09:20:30

2017-10-19 09:47:55

容器化微服務集成

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

網絡攻擊存儲供應鏈

2016-01-07 10:29:36

MesosDocker持續交付

2017-02-27 18:28:45

持續交付部署

2017-12-24 21:29:18

OpenShift持續交付集群

2016-02-15 09:37:14

Docker持續交付應用程序

2021-06-18 09:00:00

云計算開發存儲庫

2021-04-23 08:00:00

Kubernetes容器工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩国产欧美 | 精品国产精品 | 欧美日韩一二区 | 亚洲激情综合网 | 久久久黄色 | 天天操 天天操 | 国产精品久久久久一区二区三区 | 欧美成人免费 | 亚洲精品国产电影 | 超碰人人91 | 精品在线一区二区三区 | 一区二区三区视频免费观看 | 亚洲欧美激情国产综合久久久 | 国产精品久久久久久久粉嫩 | 国产成人区 | 亚洲一区二区三区观看 | 亚洲国产成人精品久久 | 国产精品久久久久久婷婷天堂 | 黄a免费网络 | 亚洲性网| 日韩视频在线一区二区 | 91久久夜色精品国产网站 | 亚洲图片一区二区三区 | 欧美综合自拍 | 一区二区在线 | 久久一 | 密室大逃脱第六季大神版在线观看 | 成人一区二区三区在线 | 视频在线亚洲 | 国产精品久久久久久久久久久久冷 | 91久久久久久久久久久久久 | 欧美区精品 | 亚洲成网| 在线播放国产一区二区三区 | 免费一区二区三区 | 久久99精品久久 | 中文一区二区 | 国产精品久久 | 久久久久久国模大尺度人体 | 国产亚洲一区二区三区在线观看 | 精品欧美乱码久久久久久1区2区 |