Azure DevOps 的架構窺探

工作的緣故,接觸 TFS (Team Foundation Server)挺多的,現在改名爲 Azure DevOps,分爲 可私有化部署版本 Azure DevOps Server,簡稱ADS,以及 SAAS 版本 Azure DevOps Services。未來因爲微軟收購了 github,據說 TFS 的開發團隊已經合併到github,所以未來可能只存在github 企業版 和 github網站。

本文根據自己的理解,基於 Azure DevOps Services 版本,總結了一下 ADS 目前的架構。

概述

微軟的一個產品,提供版本控制、需求管理、報告、軟件庫管理、項目管理、測試、自動生成和發佈管理功能。它涵蓋了應用的整個生命週期,並啓用了 DevOps 功能。

ADS 這個產品功能很複雜,企業在選擇後通常都需要有專門的售後支持,比如如何與現有業務流程配合起來使用,如何和現有的系統做集成。

優點:

  • 功能完善且穩定,相當於一站式 ALM
  • 文檔齊全,遇到問題不怕找不到解決方案
  • 擴展性不錯,有插件市場,也可以自己開發插件
  • 運行很穩定,微軟產品的一向優勢,就算是卡頓也不會那麼容易奔潰

不足:

  • 收費較高,中小企業不會買單,關鍵大點的企業又在推國產化 或 自研
  • 功能上僵化,操作很繁瑣,就算用插件方式做擴展,也跳不出現有的UI框架
  • 什麼都存儲在數據庫裏面,時間長了運行非常的卡頓
  • 技術支持響應很慢,通常以周爲單位,問題解決更慢,一等就是幾個月

概念

img

  • ADS 最大的概念是集合,類似一個大組織的名稱,比如xx公司,或者研發1部;
  • 項目,一般按照字面意思使用就好,對應到具體的項目。創建項目的時候可以選擇不同的類型,比如 cmmi、scrum、basic、agile,略有不同,一般建議選擇 scrum
  • 項目下面有很多的工作項,看板功能(board)比較常用,上面可以自己劃分泳道 和 一些工作項的顯示字段
    img
  • 項目可以對應多個git倉庫,但是有且僅有一個TFVC庫,如果要用的話可以存一下文檔
  • 一個集合下可以創建多個 agent,agent 可以安裝在 windows、linux、mac上,使用命令行交互的方式進行安裝
  • 流水線,可以在項目中創建多條,也可以去調用集合中的agent,使用他們進行構建、發佈;流水線中可以包含多個task,ads 本身有大量常用的task,不夠的可以去插件市場找,或者自己寫一個,再不行使用 command 類型的插件自己寫點shell也是可以的。
    img

架構

img

微軟的產品當然大部分是基於微軟的技術,部署的話都是在windows server上,目前沒有看到linux 或者 容器化部署的方法。

  • 用戶身份驗證是基於windows的域賬號體系,所以需要一個域控服務,到也不是說你的電腦要加入域,登錄的時候彈一個原始的alret框而已。
  • 數據庫是基於sqlserver的,oracle、mysql 你就不要想了,如果數據多了可以考慮集羣的處理方法,或者可以考慮每個集合單獨建庫,或者一些業務數據直接緩存到公司的數據中心
  • web,都是部署在iis上的,這裏解決高併發的手段主要是服務器做負載,iis開多進程模式
  • Elasticsearch 用於加快搜索,比如搜代碼之類的都是基於這個,如果直接查數據庫或者放內存,不是數據庫爆掉就是web應用爆掉,Elasticsearch 果然是大殺器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章