1. 程式人生 > >【Sonar】——架構與整合

【Sonar】——架構與整合

架構(Architecture)

SonarQube平臺由4個元件組成:

  1. 一個SonarQube伺服器 啟動3個主要程序
    • 用於開發人員的Web伺服器,管理員瀏覽質量快照並配置SonarQube例項
    • 基於Elastic Search的搜尋伺服器可以從頁面返回搜尋結果
    • 負責處理程式碼分析報告並將其儲存在SonarQube資料庫中的計算機引擎伺服器
  2. SonarQube資料庫儲存:
    • SonarQube例項配置檔案
    • 專案質量快照,檢視等
  3. 多個SonarQube外掛安裝在伺服器上,可能包括語言,SCM,整合,身份驗證和治理外掛
  4. 一或多個SonarQube掃描器在分析專案,執行在構建或持續整合的伺服器上。

這裡寫圖片描述

整合

下列模式顯示了SonarQube如何與其他ALM工具整合,以及何處使用SonarQube的各種元件。

  1. 開發人員在IDE中編寫程式碼,並使用SonarLint來執行本地分析。
  2. 開發人員將程式碼放在常用的程式碼管理工具(SCM),如:git,SVN,TFVC
  3. 持續整合伺服器觸發自動構建,並執行SonarQube掃描器以執行SonarQube分析
  4. 分析報告發送到SonarQube伺服器並處理
  5. SonarQube伺服器處理並存儲分析報告到SonarQube資料庫,並將結果顯示在頁面上
  6. 開發人員通過SonarQube頁面來審查,評論,更新專案問題來管理和減少技術負債
  7. 管理員從分析器上接收分析報告

    • 運維人員利用API文件自動配置,從SonarQube上提取資料
    • 運維人員用JMX來監控SonarQube伺服器
      這裡寫圖片描述

關於機器和網路地址

  • SonarQube平臺只能有一個伺服器和一個數據庫
  • 為了獲得最佳效能,每個元件(伺服器,資料庫,掃描器)應安裝在獨立的機器上,該伺服器機器應該是專用的
  • 通過新增機器擴充套件SonarQube掃描器規模
  • 所有的機器必須保證時間同步
  • SonarQube伺服器和SonarQube資料庫必須位於同一個網段裡
  • SonarQube掃描器不必跟SonarQube伺服器在同一個網段裡
  • SonarQube掃描器和SonarQube資料庫沒有通訊