天天看點

使用yoteam自動建立TFS流水線

簡介

持續內建和持續部署流水線一般都被認為是實施DevOps中最重要的工程實踐,但是搭建這樣流水線并不容易。本文介紹了yoteam工具,可以配合微軟TFS和Azure實作一鍵式自動化流水線搭建。

使用yoteam自動建立TFS流水線

作者:厲曉明

LEANSOFT DevOps解決方案架構師,認證 PMI-ACP,深耕開發領域十載有餘,目前專注于靈活和DevOps領域,曾服務過TPV冠捷電子、華為、興業銀行等企業。

我們在使用TFS時,經常會思考:有沒有辦法,可以快速搭建基礎環境,一鍵生成持續傳遞流水線呢?本篇圍繞這個問題介紹了一個開源工具,使用此工具可以自動建立基于TFS的傳遞流水線。通過試用生成的環境,我們可以快速評估平台能力,确認TFS是否符合自己的團隊;還可以學習這其中的最佳實踐,讓我們快速上手;同時在文末還介紹了一些快速學習TFS/VSTS的動手實驗。

背景

如今,DevOps勢頭異常猛烈,從C端的網際網路企業到B端傳統軟體企業都在陸續開展DevOps轉型。有從文化/管理理念層面開始轉型的,也有從技術層面(工具鍊)開始轉型的,工具鍊層面要麼是開源方案(Jenkins),要麼引入大廠的産品(Jira、TFS),首先,想改變是非常棒的一個決定,在數字化經濟時代和知識大暴炸時代,先邁出第一步擁抱靈活開發和精益思想總比那些還固守傳統工業時代的經營理念的企業具有更多機會。好,現在那問題來了,如果我們要從工具鍊層面入手,有沒有一種辦法快速搭建基礎環境,一鍵生成持續傳遞流水線的方法呢?答案是:當然有,Visual Studio Team Service 和 Team Foundation Server 可以做到!!!!試想,不用自己準備虛拟機,也不用自己安裝測試環境、配置環境,傳遞流水線也不需要自己配置,隻需要點幾次滑鼠,是多麼愉快的事情啊,可以節省非常多的時間。通過試用生成的環境,我們可以快速評估平台能力,确認是否符合自己的團隊;還可以學習這其中的最佳實踐,讓我們快速上手。

概述

要達成上面的目标我們有兩種實作方式:采用雲端(VSTS,微軟研發雲);或者是,在Azure雲端建立TFS環境,第一種方式不是我們現在的重點,這一次我們重點介紹第二種方式。

一、在Azure雲端建立一套TFS2018環境

通過使用我們的研發測試雲産品,可在Azure雲端建立一套TFS2018環境,具備一鍵式體驗,免去自己安裝系統、軟體環境、配置等工作,使得我們可以隻關注要實作的目标。環境模闆如下圖示所:

使用yoteam自動建立TFS流水線
NOTE: 當然,如果您是私有雲,有自己的資料中心,則可以在自己的TFS伺服器中使用yoTeam自動建立持續傳遞流水線,方法是通用的。

二、在TFS2018環境中建立持續傳遞流水線

如何建立?我們先看看這個工具如何使用,注意檢視下面的Gif操作圖檔:

互動模式運作操作示例:

使用yoteam自動建立TFS流水線

送出代碼,觸發流水線:

使用yoteam自動建立TFS流水線

先看看建立出來的效果:

  • yoteam自動建立了團隊項目和團隊配置(如下圖所示):
使用yoteam自動建立TFS流水線
  • 礎代碼已經導入到Git存儲庫(如下圖所示):
使用yoteam自動建立TFS流水線
  • 續內建 CI 已經配置完成(如下圖所示):
使用yoteam自動建立TFS流水線
  • 動化部署流水線已經配置完成,并連結到了Azure雲中的Paas服務,直接觸發即可完成部署(如下圖所示):
使用yoteam自動建立TFS流水線

三、關于 yoTeam

yoTeam 是一個基于 Yeoman 的開源的生成器,代碼托管到 Github。通過執行工具中提供的指令,可以幫助我們在TFS或是VSTS中快速建立 一套CI/CD 部署流水線. 作者是微軟的一位Principal DevOps Manager, yo team 使用介紹 可以參考大神的部落格:

使用yoteam自動建立TFS流水線

Yeoman 是一款神器,簡單來說通過Yeoman的生成器可以快速建立建一套項目,項目包含種最佳實踐,并可以內建最流行的工具,使我們在項目開始時可立即上手,提升效率,而不是從0開始搭建自己的架構,引入開發環境所需的工具。Yeoman的生成器的插件市場中有很多實用的生成器,如 JHipster,做Java開發的應該會知道此生成器,号稱讓程式員失業的神器,詳細可參考知乎的讨論:

https://www.zhihu.com/question/51082079/answer/146337049

回到yoTeam,可以看到支援以下開發語言:

  • Java using Tiles and bootstrap
  • Node using Pug and bootstrap
  • ASP.net Core using Razor and bootstrap
  • ASP.net Full Framework using Razor and bootstrap

支援釋出到以下平台:

  • Azure App Service
  • Docker to private host
  • Docker images in Azure App Service on Linux
  • Azure Container Instances

yo team 環境要求:

  • 安裝 git, 需要用到git 推送示例代碼
  • nodejs環境,Yeoman是用nodejs編寫的,必須要有nodejs環境
  • npm,用來安裝yo(Yeoman)
  • Azure Powershell
  • 如果采用的是私有雲或是自己内部的資料中心,需保證TFS所在的伺服器可以連接配接到外網

Net / Net Core 項目所需的環境:

  • DotNet Core SDK
  • Net Framework 3.5 或以上
  • Azure及Docker

部署方式:

  • 建立出來的示例程式部署在Azure中,需要Azure訂閱
  • 使用Docker的方式部署,還需要準備Docker相關環境

四、yo Team 使用方式

yo Team 本質上是由一些指令組成,包括父指令和子指令。通過組合這 些指令來實作按需生成流水線。比如 yo team:app 是一個父命,通過此指令即可完成TFS流水線的建立。要使用yo Team, 我們有兩種使用方式:互動模式和指令模式。

互動模式:即文中開篇處的Gif圖檔中使用的方式。這種方式簡單易用,推薦采用此方式。

指令模式:采用yo team:app指令或是組合子指令的方式。除非有特别的定制化或是內建的需求可采用這種方式。

五、指令模式的使用示例

yo team:app 指令參數說明,直接在指令行處輸入:yo team:asp -help 即可檢視參數說明。

指令示例:

yo team:app --skip-cache false asp YoTeamDemoApplxm1 "http://{TFS登陸帳号}:{密碼}@{tfs集合URL位址}" "Visual Studio Enterprise - MPN" "{訂閱ID}" {Tenant ID} {Service Principal Client ID} Default paasslots true 1 1 1 1 1 1 1 {servicePrincipalKey} {tfsPAT} YoTeamDemoApplxm1

以下内容是指令行輸出:

使用yoteam自動建立TFS流水線

此時可以去檢視TFS中已經生成的團隊項目。可以看到,代碼還未推送到TFS伺服器,我們還需要執行下面的指令推送代碼,并觸發CI/CD:

cd YoTeamDemoApplxm1 git push

六、以組合指令的方式來執行

以組合指令的方式來運作的好處是我們可以決定何時候建立Demo項目裡面的内容,并與自己的工具進行內建,以下是 yo team:app 指令中包含的子指令:

yo team:project {參數} yo team:azure {參數} yo team:build {參數} yo team:pipeline {參數} yo team:git {參數} clone {參數} yo team:asp {參數} yo team:git {參數} commit {參數}

七、總結

yo Team介紹完畢,除了TFS,yo Team 還支援微軟研發雲(VSTS), 使用方式與TFS類似。 如果想償試其他類型的項目,修改上面指令中的參數 type 即可,支援的參數值有:asp, node, java、aspFull。這裡記錄了對yo team的探索的過程,如果您隻是想使用yo team 建立Deom項目,那不必折騰:

  • 直接安裝yo team官方版本
  • 建立TFS Build定義,使用上面提供的指令做為任務的指令
  • 修改參數值,建議參數化變量
  • 觸發Build 定義即可

更詳細的使用幫助,請點選底部的 原文連結。

最終,我們已将yo team 內建到了自己的研發測試雲産品中:

使用yoteam自動建立TFS流水線

如果您想擁有一鍵式體驗,敬請期待,新版即将上線,特性介紹視訊如下:

https://v.qq.com/x/page/f07475oaoyq.html

除此之外:

  • Azure針對VSTS有項功能,可實作類似的效果,功能更完善,叫 Azure DevOps Project,詳情請參考 原文連結
  • 針對VSTS,有一套更豐富的動手實驗,可以使用一個叫 VSTS DemoGenerator 的工具來生成示例項目,詳情參考 原文連結
  • 針對TFS,也有一套更豐富的動手實驗,但需自行下載下傳虛拟鏡像到本地,并将虛拟機運作起來才可以體驗這套動手實驗。如果想省事,我們的研發測試雲産品提供了一套環境模闆,具有一鍵式體驗, 如下圖所示:
    使用yoteam自動建立TFS流水線

對應的練習文檔請參考以下兩個位址:

  • 中文版,由我們翻譯并托管在github上 ,結合上圖的 TFS2018教育訓練環境 使用,位址參考 原文連結
  • 英文原版, 需自行下載下傳虛拟機來使用,位址參考 原文連結

月旦評 之 DevOps招賢令 2018

使用yoteam自動建立TFS流水線

公元164-182年間,汝南平輿的許氏兄弟于每月初一品評人物,褒貶時政,被稱為“月旦評”。所謂 “子治世之能臣,亂世之奸雄也”這句許邵評價曹操的話也是來自于“月旦評”;時間一下子來到了2018年,LEANSOFT DevOps招賢令再次發出,望納天下賢士,共襄DevOps大業。

招賢令全文:月旦評 之 DevOps招賢令2018

希望申請的小夥伴,請在公衆号中回複:jobs 

期待與你一起工作。

請關注我們

使用yoteam自動建立TFS流水線