- 发布
- 苏州华克斯信息科技有限公司
- 电话
- 0512-62382981
- 手机
- 13862561363
- 发布时间
- 2022-12-01 12:35:26
SonarSource简介
治理产品为 gear-up SonarQube 提供了从团队级部署到企业广泛部署 SonarSource 解决方案的功能。它是组织和管理大型项目组合的基石, 其质量模型基于4关键指标: 性、可维护性、可靠性和安全性。
组织大量的应用程序
治理产品提供了组织和构建大型应用程序组合的能力。这是通过定义树来完成的, 其中节点是项目组和项目的叶子。例如, 可以按应用程序、按团队的应用程序、按部门分组等对项目进行分类。
治理
树的数量没有限制, 树木的深度也没有限制。
评估总体健康状况
治理产品为应用程序组合提供了几个健康因素, 包括可维护性, 又称技术债务, 它代表了应用程序或应用程序组的未来维护成本, 以及性, 它代表了应用程序或应用程序组准备装运到生产的情况。
治理
突出风险领域
治理产品作为散热器, 在应用程序组合中突出显示风险区域。这包括操作风险, 即不同于运行时的预期行为以及安全漏洞风险的应用程序, 即可用于其他目的的应用程序, 而不是它们的设计用途。
治理PDF 文件导出 PDF 报表
治理产品增加了将执行仪表板作为 pdf 导出的能力, 以便能够在 web 应用程序之外共享一个投资组合。还可以安排将 PDF 报告定期发送到预定义的收件人列表, 从而在任何级别的投资组合中进行。查看示例项目转移转移项目历史记录
在大型组织中, 为不同部门、业务线运行多个 SonarQube 的实例非常常见, 但也有历史原因。如果是这种情况, 则需要能够在保留项目历史记录的同时将项目从实例转移到另一项。治理产品提供了这种功能。通过扩展, 此功能允许合并 SonarQube 的两个实例。
债务模型控制调整分析模型
每个代码分析器都包含每个规则的预定义补救成本。这些费用在发现问题时适用, 允许计算技术债务补救费用。尽管这些补救费用已在几百万行代码上进行了调整, 并且可以按目前的情况使用, 但可能需要对它们进行调整, 以反映环境中的某些具体情况。
SonarSource 的产品和服务被世界各地的客户所使用。所有规模的组织都在使用来自 SonarSource 的产品和服务提高生产率, 降低风险, 终开发更好的软件。ThalesRaytheonSystems 使用 SonarQube 作为 "集成解决方案, 在开发项目的每个级别都易于使用"。ThalesRaytheonSystems 是一个跨大西洋的合资企业, 专门从事监视雷达, 空中操作指挥和控制系统, 和地面武qi定位雷达。公司是雷神与 ThalesGroup 之间的50:50 家合资企业, 通过将传感器、操作中心和电信网络集成到空中作战和战场系统, 为复杂的任务提供关键的 decision-making 解决方案。其活动;它包括系统集成、复杂的程序管理、实时软件和人机界面, ThalesRaytheonSystems 必须依赖于强大、高质量和可维护的软件应用程序的组合。软件质量是跨技术和工作包的必须
在部署 SonarQube 之前, ThalesRaytheonSystems 评估了几个软件质量工具, 但没有一个符合条例草案。有些还没有集成到开发环境中, 有些颁发了许可问题, 还有一些则缺乏涵盖的技术和可用的功能。结果, 只分析了一些组件和项目, 结果没有被利用。由于该过程的 "重重量" 性质, 对 ThalesRaytheonSystems 的应用组合的长期可持续性和可维护性构成了真正的挑战, 因此很少出现质量改进。ThalesRaytheonSystems 正在走向持续集成, 包括软件质量分析的过程。考虑到环境的复杂性, ThalesRaytheonSystems 需要一个能够很好地集成其现有基础结构的解决方案, 并且能够灵活地在整个软件组合中使用, 包括多种技术和广泛的应用程序。SonARQUBE 与工具集合
ThalesRaytheonSystems 选择了 SonarQube, 并要求从 SonarSource 行政培训会议, 以加快通过和上岗过程。乔塞纳丹尼斯记得她的第yi印象: "SonarQube 解决方案是非常容易使用, 它是集成在詹金斯管理的工作。它符合 ThalesRaytheonSystems 的需要, 因为我们有许多组件, 许多工作包, 在不同的语言, 和 "意见" 的概念是的。在的培训和演示之后, ThalesRaytheonSystems 比较了以前使用工具集 (免费软件和商业与每用户许可证) 的方法,代理商sonarqube 规则, 与它使用的自由和商业 SonarSource 产品的组合: c/c 、投资组合管理 (视图) 和技术债务计算 (SQALE)。丹尼斯说: "这显示了在实施解决方案和成本方面所需时间的显著增长, 因为许可证模型更适合我们的需要。由于其功能、技术覆盖面和许可模式, SonarSource 解决方案为 ThalesRaytheonSystems 提供了更佳的投资。丹尼斯还赞扬了 SonarSource 团队在集成 ThalesRaytheonSystems 的 c/c 语言的规则方面的支持和响应能力, 这是适用于更广泛的 c 社区的 c 插件。ThalesRaytheonSystems 的另一个引人注目的特性是将 SQALE 方法集成到 SonarQube 中, 从而使组织能够精que地跟踪其技术债务的补救成本。成功实施端到端软件质量过程
现在, SonarQube 已完全融入 ThalesRaytheonSystems 的环境和文化, 开发团队定期审查软件质量结果, 并采取具体行动, 根据里程碑和成本提高代码质量, 而项目组合管理功能允许软件配置管理人员在项目和整个软件组合中获得结果。展望未来, ThalesRaytheonSystems 有进一步的计划, 以改善其软件质量的过程。它将在分析中添加单元测试和集成测试的控制。它还计划部署 SonarQube Eclipse 插件, 以使开发人员能够在开发环境中直接在本地检测和更正问题。丹尼斯说, 她会推荐 SonarQube 和 SonarSource, 因为 "SonarQube 是一个集成的解决方案, 易于在开发项目的每个级别使用。SonarSource 有一个很好的支持和 ThalesRaytheonSystems 受益于良好的合作与 SonarSource。
Ansible SonarQube 升级的角色
你可能知道, 并希望使用 SonarQube。这是一个伟大的工具, 是积极的发展和改善。这是伟大的, 如果你是一个开发使用 SonarQube。但是,代理商sonarqube 规则, 如果您碰巧管理 SonarQube 实例, 则由于升级指南由11步骤组成, 因此不断升级非常麻烦。
停止旧的 SonarQube 服务器
并解压新的 SonarQube 分布在一个新鲜的目录, 让我们说 NEW_SONAR
使用默认的 H2 数据库启动它, 并使用更新中心安装您需要的插件
手动安装任何自定义插件
停止新服务器
更新声纳的内容. 属性和包装. 配置文件位于 NEW_SONAR/配置目录中, 其内容与 OLD_SONAR/配置目录中的相关文件 (web 服务器 URL、数据库设置等) 有关。不-粘贴旧文件
如果使用了自定义 JDBC 驱动程序, 请将其到 NEW_SONAR/扩展/jdbc 驱动程序/lt;dialectgt;
备份数据库
删除数据/es 目录
启动新的 web 服务器
//localhost:9000/setup (用您自己的 URL 替换 "localhost:9000") 来浏览并按照安装说明进行操作
这是一个太多的步骤, 手动执行。因此, 我决定通过为它编写一个 Ansible 的角色来实现自动化。
初始设置
在我开始编写 Ansible 剧本之前, 我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机, 并提供了一个简单的脚本。这是需要有类似的环境, 以我们的实际 SonarQube 生产实例。我能够增量地构建我的 Ansible 剧本并在这个 VM 上测试它。很快我就明白了, 与流浪汉一起工作会减慢我的速度, 因为我需要重置环境, 而不是的预期。所以我决定考虑泊坞窗。
用于测试的泊坞窗
我找到了正式的 SonarQube 泊坞窗图像, 但无法使用, 因为我们的 SonarQube 实例安装在 CentOS 和官fang图像使用不同的基础图像。另外, 我需要自定义特定的 SonarQube 版本我想开始。因此, 我创建了我们自己的 Dockerfile 与 CentOS 6 基地和 Ansible 安装。
此泊坞窗映像不需要启动 SonarQube, 因为我只是想验证是否进行了正确的文件更改, 而我的 Ansible 手册没有错误。升级的第yi步之一就是关闭服务器。
我将我的剧本装入容器, 并在该容器内运行 Ansible, 对该本地环境进行了更改。
当前脚本的路径
TESTS_DIR = $ (cd "$ (dirname" $ {BASH_SOURCE [0]} ")" amp;amp; amp;amp; 密码 "
# 命令测试剧本
TEST_COMMAND = "cd/行动 amp;amp; amp;amp; ansible-剧本 $ @
-我 " 本地主机 "-c
升级-声纳 database.yml "
# 运行容器安装行动为卷
泊坞 run-v "$ TESTS_DIR/.。/行动/:/行动 "
"声纳-升级-测试"/"垃圾/bash-c" $ {TEST_COMMAND} "
在泊坞窗中运行我的剧本大大减少了反馈回路, 所以我决定泊坞窗是走的路。你可以看看我所有的脚本在 GitHub
Ansible 角色
我一步一步地往前走, 我到达了一个点, 一切似乎都在工作,中国sonarqube 规则, 我有一个非常有用的 Ansible 的角色在我的手中。它尚未发布到 Ansible Galaxy, 但您可以在 GitHub 的 SonarQube 升级 Ansible 角色项目下找到源文件和文档。
当前 Ansible 角色通过在当前位置旁边创建新安装来升级 SonarQube。这提供了回滚的方法 (如果需要)。
此时, 角色执行以下任务:
确保特定的根用户存在于声纳安装
在所有安装所在的目录中创建声纳. sh
确保 SonarQube 服务存在
停止 SonarQube
新版本
备份数据库
和安装插件
将自定义配置应用于新实例
确保删除数据/es
重新 SonarQube 服务启动新版本
开始 SonarQube
手动步骤
这个过程仍然需要几个手动步骤。
在运行升级手册之前, 应手动确保在升级过程中要安装的插件列表是xin的。您可以从 SonarQube 的管理视图中获得xin支持的版本号。
根据 SonarQube 的建议, 此 Ansible 角色不仅以前安装的配置,华北sonarqube 规则, 而且使用带有变量的模板来为新实例创建配置。这意味着在执行升级之前, 开发人员可以将模板和基本配置与新的 SonarQube 进行比较。虽然这是一个手动步骤, 但与以前的操作相比, 它更容易, 因为可以使用 IDE 而不仅仅是从命令行中的 diff 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。