【Sonar】——架構與整合
阿新 • • 發佈:2019-01-01
架構(Architecture)
SonarQube平臺由4個元件組成:
- 一個SonarQube伺服器 啟動3個主要程序
- 用於開發人員的Web伺服器,管理員瀏覽質量快照並配置SonarQube例項
- 基於Elastic Search的搜尋伺服器可以從頁面返回搜尋結果
- 負責處理程式碼分析報告並將其儲存在SonarQube資料庫中的計算機引擎伺服器
- SonarQube資料庫儲存:
- SonarQube例項配置檔案
- 專案質量快照,檢視等
- 多個SonarQube外掛安裝在伺服器上,可能包括語言,SCM,整合,身份驗證和治理外掛
- 一或多個SonarQube掃描器在分析專案,執行在構建或持續整合的伺服器上。
整合
下列模式顯示了SonarQube如何與其他ALM工具整合,以及何處使用SonarQube的各種元件。
- 開發人員在IDE中編寫程式碼,並使用SonarLint來執行本地分析。
- 開發人員將程式碼放在常用的程式碼管理工具(SCM),如:git,SVN,TFVC
- 持續整合伺服器觸發自動構建,並執行SonarQube掃描器以執行SonarQube分析
- 分析報告發送到SonarQube伺服器並處理
- SonarQube伺服器處理並存儲分析報告到SonarQube資料庫,並將結果顯示在頁面上
- 開發人員通過SonarQube頁面來審查,評論,更新專案問題來管理和減少技術負債
- 管理員從分析器上接收分析報告
- 運維人員利用API文件自動配置,從SonarQube上提取資料
- 運維人員用JMX來監控SonarQube伺服器
關於機器和網路地址
- SonarQube平臺只能有一個伺服器和一個數據庫
- 為了獲得最佳效能,每個元件(伺服器,資料庫,掃描器)應安裝在獨立的機器上,該伺服器機器應該是專用的
- 通過新增機器擴充套件SonarQube掃描器規模
- 所有的機器必須保證時間同步
- SonarQube伺服器和SonarQube資料庫必須位於同一個網段裡
- SonarQube掃描器不必跟SonarQube伺服器在同一個網段裡
- SonarQube掃描器和SonarQube資料庫沒有通訊