架构(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数据库没有通信