本文翻譯自sonarqube官網文檔,原地址為:https://docs.sonarqube.org/latest/architecture/architecture-integration/
一,架構介紹
SonarQube平台由4個組件組成:
-
一台SonarQube Server啟動3個主要過程:
- Web服務器,供開發人員,管理人員瀏覽高質量的快照並配置SonarQube實例
- 基於Elasticsearch的Search Server從UI進行后退搜索
- Compute Engine服務器,負責處理代碼分析報告並將其保存在SonarQube數據庫中
-
一個SonarQube數據庫要存儲:
- SonarQube實例的配置(安全性,插件設置等)
- 項目,視圖等的質量快照。
- 服務器上安裝了多個SonarQube插件,可能包括語言,SCM,集成,身份驗證和管理插件
- 在構建/持續集成服務器上運行一個或多個SonarScanner,以分析項目
二,使用流程
以下架構顯示了SonarQube如何與其他ALM工具集成以及使用SonarQube的各種組件的位置。
- 開發人員在其IDE中進行編碼,並使用SonarLint運行本地分析。
- 開發人員將他們的代碼放入他們最喜歡的SCM中:git,SVN,TFVC等。
- Continuous Integration Server會觸發自動生成,並執行運行SonarQube分析所需的SonarScanner。
- 分析報告將發送到SonarQube服務器進行處理。
- SonarQube Server處理分析報告結果並將其存儲在SonarQube數據庫中,並在UI中顯示結果。
- 開發人員通過SonarQube UI審查,評論,挑戰他們的問題,以管理和減少技術債務。
- 經理從分析中接收報告。Ops使用API自動執行配置並從SonarQube提取數據。運維人員使用JMX監視SonarQube Server。
三,關於機器和位置
- SonarQube平台不能具有多個SonarQube服務器(盡管該服務器可以作為集群安裝)和一個SonarQube數據庫。
- 為了獲得最佳性能,應將每個組件(服務器,數據庫,掃描儀)安裝在單獨的計算機上,並且服務器計算機應專用。
- SonarScanners通過添加機器進行擴展。
- 所有機器必須時間同步。
- SonarQube服務器和SonarQube數據庫必須位於同一網絡中
- SonarScanners不需要與SonarQube Server位於同一網絡上。
- sonarscanner和SonarQube數據庫之間沒有通信。