765DevOps

Thinking is the problem, Doing is the answer !

0%

代码扫描(一)-工具选型

DevOps必不可少的一环就是代码扫描了,这里面包含了编码规范、代码缺陷、性能、漏洞的检测。目前也会有很多的开源静态代码扫描工具,如:SonarQube、Infer、PMD、FindBugs、CheckStyle。针对此做了简单的收集对比,各位可以根据自身的需求进行参考。

工具选型调研

工具对比说明

目前比较流行的开源的静态代码扫描工具:SonarQube、Infer、PMD、FindBugs、CheckStyle。因为后续会有流程定制化等需求,暂不考虑商业化的软件。

产品 定位 OpenApi Web项目友好 支持代码质量检查 支持语言 可扩展性/插件支持 是否侵入项目
SonarQube 代码质量平台
通过插件的
方式提供对各个
语言进行支持,
可以和 Checkstyle、PMD、Simian
等工具进行集成
支持 支持 常见语言都支持
Infer 代码分析 不支持 否(移动端友好) 支持 Android/java
PMD 代码分析 不支持 支持 java
FindBugs 字节码分析,侧重Bug检测 不支持 支持 java
CheckStyle 语法层面分析 不支持 支持 java

选型

基于上述,选型SonarQube作为代码扫描工具,SonarQube 也是是一款目前比较流行的工具,国内很多互联网公司都选择用它来搭建静态检查的平台。

SonarQube介绍: 官网

实施计划

  • SonarQube的部署使用调研
  • 代码检测集成方案,(Jenkins、gitlab CI、代码检测时机等)
  • 考虑代码质量平台管理(原生平台界面不友好、同时展示维度无法做到应用维度)

参考资料

资料 概述 参考价值
1 酷家乐质量效能 代码度量平台 引入使用 SQALE 代码质量评估模型的 SonarQube 进行代码静态扫描,辅以 Cobra 的进行代码审计,Synk 进行三方包漏洞扫描,形成一套完整的代码度量工具链
整合平台页面参考
2 系列 | 58集团白盒代码审计系统建设实践1:技术选型 对比了常见的的开源方案和商业方案,同时涉及介绍 SDL 相关检测知识
选型对比数据参考