Blog icon indicating copy to clipboard operation
Blog copied to clipboard

VSTS/TFS 持續整合, 持續部署

Open ChaoLiou opened this issue 6 years ago • 0 comments

這是一篇 Microsoft 的官方介紹, 介紹自家 VSTS/TFS (程式協作平台)上的 CICD 功能. 我並不是要協助推銷產品, 只是認為 CICD 算是一門顯學, 各家皆是大同小異, 那不仿透過這篇介紹學習這項課題.

[name=Chaol Liu] [time=20180807] derived from...

VSTS/TFS CICD

docs.microsoft.com

[name=andyjlewis] [time=unknown]


Build and Release in VSTS and TFS

  • VSTS 是一個提供給開發者, 結合眾多 DevOps 託管服務的平台. TFS 則是 on-premises(公司內部) 版本的 VSTS, 能在你自家的伺服器上安裝與管理. Build 和 Release 是兩個 DevOps 服務, 協助你管理程式 Continuous Integration(持續整合)Continuous Delivery(持續交付).

  • Continuous Integration (CI) 是開發團隊用來自動化程式整合和測試的一種演練. 實作 CI 能在早期開發階段就抓出 bug, 降低 debug 成本. CI 過程中包含自動測試, 能確保品質. 最後 CI 系統會產出 Artifacts, 接著再餵到 Release 產線, 並驅動部署. * Build 的服務能協助你設置和管理 CI.
  • Continuous Delivery (CD) 是經過 Build 和 Test 後, 要部署到一到多個 testing 和 production 環境的一道流程. 它能在多種不同的環境中, 完成交付與測試, 藉此提升產品品質. CI 系統會產出一個可供部署的 Artifacts, 包含協助發布的工具與程式本身. 自動化的 Release 產線則會消化這些 Artifacts 發布新版本, 並更新現有系統. 它會不斷地進行監視並向你警告系統狀況, 藉此提升整個 CD 過程可見度. * Release 的服務能協助你設置和管理 CD.
  • Continuous Testing (CT) 不管是在公司內部或雲端上, 你都能從中選擇不同的技術框架來實作 build-deploy-test 的自動化工作流程, 就能以一個快速, 可擴充又高效率的方式, 不斷測試每次的更動.

版控系統

  • 首先, 欲設置 CICD 的 codebase 必須是在版本控管系統上. VSTS 和 TFS 都支援以下兩種形式的版控 - Git 和 Team Foundation Version Control. Build 能整合這兩種版本控制系統. 一旦設置了 CI, 任何透過 push 更動 codebase 都會自動建置與驗證. Build 也能整合 Subversion, Bitbucket, GitHub 或 其他線上 Git 程式庫的 codebase.

依照應用程式的類型排定工作

  • 要設置 CI, 先要建立一個 Build 產線. Build 產線會呈現整個自動化流程所有的 Task, 也就是你想要執行的建置與測試. VSTS 和 TFS 有很多建置和測試的 Task Item. 例如: 建置 .Net, Java, Node, Android, XCode 和 C++ 程式的 Task Item. 相同地, 也有很多測試框架和服務的 Task Item 供你排定測試. 也可以在自動化過程中執行 command line, PowerShell 或 Shell 腳本

Deployment(部署) 的目的地

  • 一旦完成持續整合, 下一步即是建立 Release 產線, 讓你自動化部署一到多個環境. 這個自動流程會再次定義與 Build 產線相同的 Task Item. VSTS 和 TFS 有支援部署到虛擬機器, 容器, 本機, 雲端平台 或 Paas 服務. 也能設計成直接將手持裝置程式發布到商店.

Package(套件) 的格式

  • 如果目標是要產出一份 package 提供給其他專案引用, VSTS 也有內建的 package 管理 repository. 你能打包成 NuGet, NPM 或 Maven 的 package, 再發布到內部 repository 或其他 package management repository.

Continuous testing(持續測試)

  • 在開發時就發現問題, 藉此維護產品品質. 用 VSTS 或 TFS 持續測試, 確保你的程式能在每次 check-in 與建置之後仍然保持正常, 透過每次建置自動化測試, 讓你提早發現問題. 有任何測試類型和框架. 選擇使用你喜歡的測試技術框架. 還有豐富的分析報告. 當你建置完成, 能夠回顧測試結果, 開始解析發現到的問題.

ChaoLiou avatar Nov 05 '18 02:11 ChaoLiou