首页 > 其他分享 >SonarQube之采购选型参考

SonarQube之采购选型参考

时间:2023-06-11 19:01:48浏览次数:77  
标签:编程语言 参考 SonarQube 代码 支持 选型 特性 分支

SonarQube是DevOps实践中主流的一款质量内建工具,过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。

通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。一般情况下,社区版还是可以满足大部分场景的,即便是C/C++社区也是有其他开源插件的。

工作原理

SonarQube 并不是简单地将各种质量检测工具的结果(例如 FindBugs,PMD 等)直接展现给客户,而是通过不同的插件算法来对这些结果进行再加工,最终以量化的方式来衡量代码质量,从而方便地对不同规模和种类的工程进行相应的代码质量管理。 SonarQube 在进行代码质量管理时,会从图 1 所示的七个纬度来分析项目的质量。

SonarQube之采购选型参考_ci



SonarQube 可以支持 25+ 种编程语言,针对不同的编程语言其所提供的分析方式也有所不同: 对于所有支持的编程语言,SonarQube 都提供源了代码的静态分析功能; 对于某些特定的编程语言,SonarQube 提供了对编译后代码的静态分析功能,比如 java 中的 class file 和 jar 和 C# 中的 dll file 等; 对于某些特定的编程语言,SonarQube 还可以提供对于代码的动态分析功能,比如 java 和 C# 中的单元测试的执行等。

SonarQube之采购选型参考_ci_02


远程客户机可以通过各种不同的分析机制,从而将被分析的项目代码上传到 SonarQube server 并进行代码质量的管理和分析,SonarQube 还会通过 Web API 将分析的结果以可视化、可度量的方式展示给用户


软硬件要求

  1. 硬件上对磁盘读写性能要求高,服务涉及elasticsearch索引,IO读写和分析的代码量直接影响sonarqube性能;实际生产环境建议使用专用高速I/O存储
  2. SonarQube server 不支持32位,但 SonarQube scannner支持32位
  3. SonarQube server 仅支持Java11; SonarQube scanners 同时支持Java8&11
  4. 数据库支持PostgreSQL, MSSQL Server, Oracle, 不再支持Mysql

版本分类

类型

全称

说明

CE

Community Edition

社区版

DE

Developer Edition

开发版(具有CE版所有特性)

EE

Enterprise Edition

企业版(具有DE版所有特性)

DCE

Data Center Edition

数据中心版(具有EE版所有特性)

SonarQube之采购选型参考_ci_03

特性费用对比

https://www.sonarsource.com/plans-and-pricing/community/https://www.sonarsource.com/plans-and-pricing/developer/https://www.sonarsource.com/plans-and-pricing/enterprise/https://www.sonarsource.com/plans-and-pricing/data-center/

类型

价格

LOC

CE

免费

-

DE

120欧元-5万欧元

10万行代码-20M行代码

EE

1.5万欧元-18万欧元

1M行代码-100M行代码

DCE

10万欧元-上不封顶

20M代码-

CE-社区免费版本

SonarQube之采购选型参考_代码质量_04

除了支持15种编程语言,CE版还就有如下特性

  • 支持5种IDE
  • 支持60+的插件
  • 支持SonarLint
  • 支持Quality Gate
  • 快速确认近期修改代码的问题

开源版本不支持一个项目多分支的形式,只能按照特性分支的名称来生成相对应的扫描项目(会产生很多Sonarqube项目)。

解决方案:假如这个项目有F1,F2等特性分支,在每次对其中特性分支构建扫描时会配置sonar扫描参数(projectName)为 “服务名称_特性分支名称”,这样相当于每个特性分支都对应一个扫描项目。但又间接的带来了一些问题。

  • 每个特性分支生成一个项目,假如特性分支被删除呢?或者分支很多呢?
  • 对于SonarQube管理员来说很难管理,增加了任务负担。


DE-开发者版本

SonarQube之采购选型参考_ci_05


相较于CE版,增加了C/C++、Objective-C、T-SQL、ABAP、PL/SQL和Swift等,详细信息如下所示:

SonarQube之采购选型参考_编程语言_06


DE版具有CE版所有特性,在此基础之上,该版本还有如下特性增强:

  • 支持22种编程语言
  • 支持Pull Request的分支代码分析
  • 安全性的增强:Security Hotspots & Security Vulnerabilities的全面支持
  • 支持SonarLint的智能提示,更好地与IDE进行集成


EE-企业版本

SonarQube之采购选型参考_ci_07


相较于DE版,增加了Apex、COBOL、PL/1、RPG和VB6等五种,详细信息如下所示:

SonarQube之采购选型参考_ci_08

EE版具有DE版所有特性,在此基础之上,该版本还有如下特性增强:

  • 支持27种编程语言
  • 支持对于Portfolio的管理
  • 提供OWASP / SANS的安全报告
  • 提供可配置的SAST 分析引擎

DCE-数据中心版本

SonarQube之采购选型参考_ci_09


EE版具有EE版所有特性,此版本主要对于高可用性和横向扩展性有更好的支持。

如何计算费用?

Sonarqube是按照扫描的行数进行计费的,以年为单位进行订阅。关于行数如何解读?假如你买100W行扫描量,那么这个量是被所有项目共享的,但扫描的行数超过100W行,分析服务将会终止。当然如果你删除项目重置,扫描量就会恢复。

SonarQube之采购选型参考_编程语言_10

标签:编程语言,参考,SonarQube,代码,支持,选型,特性,分支
From: https://blog.51cto.com/devopsingroad/6458600

相关文章

  • IOT数据库选型——NOSQL,MemSQL,cassandra,Riak或者OpenTSDB,InfluxDB
    补充:Basho公司开源了它的时序数据库产品RiakTS1.3代码在githubriak的riak-ts分支上!RiakKV产品构建于Riak内核之上,提供了一种高弹性、高可用的键值数据库。RiakKV产品当前正在持续改进中,专注于数据正确性、预防数据损失和破坏等特性。RiakTS产品源于RiakKV数据库,是一种为时序......
  • SonarQube扫描C#代码
    目录用SonarQube实现什么功能?SonarLintforVisualStudio是什么?使用SonarQube扫描检测C#/.NET代码并上传到服务器一、配置MSBuild二、下载安装SonarScannerforMSBuild三、使用SonarQube分析C#代码并上传服务器Sonar系列相关参考SonarQube官网SonarQube是一款静态代码质量......
  • Google Earth Engine(GEE)——全球干旱指数(Global-Aridity_ET0)和全球参考蒸发量(Global-E
    全球干旱度指数全球干旱指数(Global-Aridity_ET0)和全球参考蒸发量(Global-ET0)第三版数据集提供了1970-2000年期间高分辨率(30角秒)的全球栅格气候数据,与潜在植物生长的蒸发过程和降雨量不足有关,基于参考作物的PenmanMonteith蒸发量方程式的实施。该数据集是根据WorldClim2.1在30角秒......
  • 序) 设计模式参考资料
    https://sourcemaking.com/design_patternshttp://javapapers.com/design-patterns/  DesignPatternsInsoftwareengineering,a designpattern isageneralrepeatablesolutiontoacommonlyoccurringprobleminsoftwaredesign.Adesignpatternisn't......
  • 【转】分布式定时任务调度系统技术选型
    我们先思考下面几个业务场景的解决方案:支付系统每天凌晨1点跑批,进行一天清算,每月1号进行上个月清算电商整点抢购,商品价格8点整开始优惠12306购票系统,超过30分钟没有成功支付订单的,进行回收处理商品成功发货后,需要向客户发送短信提醒类似的业务场景非常多,我们怎么解决?......
  • EndNote参考文献格式Output Styles界面介绍
      本文对EndNote软件修改论文参考文献引用格式的界面与各选项参数加以详细介绍。  利用EndNote软件进行论文参考文献的插入可以说是非常方便;但其亦具有一个问题,就是对中文文献的支持不太友好;之前也用过NoteExpress,这一国产软件对于中文参考文献的支持性很好,但是由于论文较多,......
  • YS9082HC+B27B固件量产工具,YS9082HT可参考,YS9082HC+镁光MT29F512G08EBLCE开卡!YS9082HP
    YS9082HC+B27B,镁光MT29F512G08EBLCE开卡!闪存ID:2C,C3,08,32,E6,00。如下图,不知道为什么检测出来的是9081?开卡设置,从量产部落下载的YS9082HCMPTool,如下图:结果报错:重新设置,更改了大小,240G改到了160G!分析是坏块过多了!我有不少B27颗粒的坏块都多,还是主控问题?我的其他两片B27,开120G都......
  • Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案
     使用ExcelStreamingReader,这个第三方工具会把一部分的行(可以设置)缓存到内存中,在迭代时不断加载行到内存中,而不是一次性的加载所有记录到内存,这样就可以不断的读取excel内容并且不影响内存的使用。  但是这个工具也有一定的限制:只能用于读取excel的内容,写入操作不可用;可以使......
  • FFMPE的两个参考文章
    FFMpeg的常用说明1. 让视频以H.264编码 ffmpeg-ifield.mp4-c:vlibx264-crf18field_crf18.mp4此处我们将恒定速率因子设置为18。比例的范围是,其中无损,是默认值,并且质量可能最差。较低的值导致较高的质量,主观上合理的范围是。考虑17或18在视觉上无损或几乎无损......
  • 分布式OLTP数据库选型---汇报
    汇报思路 开场:各位好,分布式数据库经近个月的集中调研,目前有了阶段性的进展,现就调研的结果对各位领导做一个详细的汇报。 本次汇报共16页PPT。汇报思路为:漏斗形,有宽到窄的一个思路体系。 汇报时间我会控制在30分钟内,先总体做串讲,完了针对有疑问的地方我们进行详细的分析讨论。......