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 相关检测知识 | 高 选型对比数据参考 |