SonarSource简介
我们为整个开发组织增添了价值。无论您在开发组织中的角色是什么, SonarSource 解决方案都增加了价值, 因为我们有 cutting-edge 的功能, 您需要在您的软件组合中***da限度地提高质量和管理风险。为开发
软件开发人员***终负责代码质量。代码质量是所谓的非功能性需求的一部分, 因此是开发人员的直接责任。因为代码质量不是应该推迟到以后进行的, 所以我们的解决方案在开发过程的每一步都提供了反馈, 从 IDE 到发布, 包括任何中间升级。这使开发人员能够对代码质量做出早期和经过教育的决策, 使他们能够更好地完成工作并提供更好的软件。通过启用连续代码质量管理,提高了软件质量,降低了软件管理的成本和风险。开发devops为devops
DevOps 团队需要确保软件建立在正确的道路上。DevOps 队有很多责任。其中包括支持开发过程、自动化测试、确保质量、提高生产率以及***终启用连续部署。良好的代码质量是实现所有这些目标的必要条件, 虽然不是充分的条件。我们的解决方案提供了一个代码质量的收费门, 可以添加在任何建设/测试/部署步骤。调查结果依赖于审计师的判断,而非客观措施√小姐的背景和历史信息,因此被视为无关√因正在进行的更改而失效,并很快变得过时√不要让***和其他利益相关者参与审核和审核过程√介入的过程太晚。这使 devOps 团队能够自动执行一组质量标准, 从而确保组织提供更好的软件。为高管
SonarSource 解决方案降低了风险并提高了团队生产率。管理人员需要能够安全地操作软件, 并以成本为投资回报辩解。我们的解决方案向执行官们一目了然地展示了他们面临的操作风险以及缓解的成本。它还有现成的功能, 可以系统地改进可维护性, 从而提高开发团队的长期生产率。这使管理人员能够确保其组织提供更好的软件, 并以***jia成本使用风险控制方法。群集是路线图的一个令人惊讶的补充,因为这看起来不像是一种需要支持大量负载的产品。
SonarSource
优化质量分析以实现业务价值
复杂性: 代码可见性降低了软件风险
适用于***自动化软件质量2014–2018的预测和2013供应商份额: 一些
ASQ 的增长与持续的采用预计移动, 云和嵌入式, IDC 251643 和
建立软件质量分析策略, 帮助解决第三平台复杂性, IDC 253257
主办单位: SonarSource
梅林达-卡罗尔. 卢
2015年1月
简介: 了解质量分析差距的影响
数字世界的转变, 数字转换的影响, 以及对持续性的需求
跨技术平台的部署给 IT 组织带来了巨大的压力, 因为它们
解决动态变化的业务需求。高质量应用的上市时间
变得至关重要, 但提供软件发布和开发新的面向客户的
快速应用是一个越来越大的挑战。对于大型跨国企业来说, 情况尤其如此。
必须与复杂多变的多式技术网络相抗衡的组织
与遗留系统和资源结合在一起的数千个用户的地理
分布式.
对于 CIO 来说, 目标不仅仅是提高 it 的敏捷性--它是关于如何使用它来成功地
跨 "第三平台" 增强业务灵活性、创新性和客户体验,
范围从移动, 社会系统的参与, 到云, 同时合并大数据
分析.在操作层面上, 这种做法增加了公司的压力,
重组、更新和转换软件开发和测试实践。这可以允许
为了更快地交付具有适当质量、风险、速度和
成本水平。
然而, 尽管质量低劣的软件对客户访问、收入和
商业信誉在这些有影响力的移动和其他第三平台环境中, 许多
组织已经陷入了可怜的软件卫生习惯。能见度不足的水平
缺陷的原因及其影响为许多***创造了一种文化
他们所创造的缺陷的责任。"在墙上抛出代码" 用于部署仍然是
频繁的, 内脏的问题造成的公司, 部分由迫切的需求立即
这些关键业务环境中的软件交付。然而, 不良的发展途径
即使需要提高代码质量并在周期早期消除缺陷也会发生
急剧增加。
在 IDC 中, 我们一直在跟踪重大业务变更项目的成功率
组织在过去的几年里, 和我们的 2014 QA 调查横跨超过200大
企业发现有问题的项目成功率。我们将 "成功" 定义为及时、相关和
个别项目的预算交付。我们的研究表明大约40% 的商业
面向更改的软件开发项目未能满足这些要求。和60%
按时交付和预算通常需要事后调整, 以确保
公司的***后期限已经达到 (例如, 需要在项目中投入更多的员工, 或者
©2015 IDC # IDCTS08W 2
项目范围减少)。除了这些预算和及时性挑战, ***代码质量
问题.
IDC 的研究显示, 在生产后期发现的缺陷成本指数更高
对组织修复比在周期中发现的更早 (10–100倍或更多,
取决于其他依赖项, 以及在生命周期中发现问题的后期程度)。的
能够发现代码问题, 有共同的访问问题, 并负责修复
这些问题和解决积压成为***的环境无情
用户体验不佳和功能失败。客户反馈的即时性
用户参与、用户衰减率和应用程序商店评级带来了新的可视级别和
重要的是推动采用常见的代码问题访问上下文, 以便快速
补救, 以及对安全挑战的可见性。
这些因素与软件项目复杂性的增加相结合。企业采用复杂、
使用内部和外部资源 (如系统) 进行地理分布的开发
集成商 (SIs) 随着各种开发工具的使用而显著增加
(包括开源)、多种语言和敏捷流程。这意味着需要
代码分析, 可以共同访问有关软件问题的信息和定量和
跨不同团队的定性指标从未如此巨大。
在这个数字消费化和流动性的时代, 项目变得更具挑战性和
管理的关键。为什么?
SonarLint 与开发人员集成的 z 系统
从 v14.0.0.5 开始, IBM z 系统开发人员 (IDz) 支持 SonarLint v3.2.0, 并在其主机 COBOL 和 PLI 代码中针对 bug 和质量问题向开发人员提供动态反馈。一体化的地方分析和报告是一个加号,即使组织选择不对发送的报告采取行动。一旦将 SonarLint Eclipse 扩展***并安装到您的 IDz 客户端中, 您就可以使用 SonarQube 服务器视图连接到 SonarQube 服务器, 然后使用子项目的上下文菜单将一个模块的子项目绑定到 SonarQube 服务器和项目。现在, 当使用 cobol 或 PLI 编辑器打开绑定子项目中的 cobol 或 PLI 文件时, 将在文件中标记任何违反在 SonarQube project 中设置的规则之一的代码, 并通过悬停帮助来显示解释。文件中发现的所有问题的列表都可在 SonarLint 的 "动态" 视图中找到。
从绑定的 SonarLint 子项目中打开 COBOL 或 PLI 文件会触发一项分析提示: 如果编辑器中没有出现问题注释, SonarLint 可能无法成功解析该文件。您可以在 Eclipse 控制台视图下检查 SonarLint 控制台, 以查找任何问题, 如缺少包含文件 (抄写)。SonarQube平台SonarQube是一个连续的质量分析平台,它作为web服务器运行,跟踪指标分析代码和代码结构。如往常一样, 使用子项目的关联属性组中的 SYSLIB 字段来解析包含文件引用。您可以选择一个或多个文件, 甚至是子项目本身, 然后单击 SonarLint 分析, 而不是打开单个文件。生成的问题将在 "SonarLint 报告" 视图中报告, 您可以在其中双击要带到编辑器中相关代码行的问题。或者, 您可以右键单击某个问题, 然后选择要带到 SonarLint 规则说明视图的规则说明, 以及具有兼容和不兼容代码示例的规则的详细说明。
可以同时分析多个文件, 并在 SonarLint 报告视图中检查结果问题提示: 当使用分析函数时, 可能找不到***近在编辑器中打开的文件的抄写, 因为 SonarLint 使用的是只在其中一个 IDz 编辑程序中打开文件或其依赖项时才会填充的本地文件缓存。
Ansible SonarQube 升级的角色
你可能知道, 并希望使用 SonarQube。这是一个伟大的工具, 是积极的发展和改善。这是伟大的, 如果你是一个开发使用 SonarQube。但是, 如果您碰巧管理 SonarQube 实例, 则由于升级指南由11步骤组成, 因此不断升级非常麻烦。
停止旧的 SonarQube 服务器
***并解压新的 SonarQube 分布在一个新鲜的目录, 让我们说 NEW_SONARQUBE_HOME
使用默认的 H2 数据库启动它, 并使用更新中心安装您需要的插件
手动安装任何自定义插件
停止新服务器
更新声纳的内容. 属性和包装. 配置文件位于 NEW_SONARQUBE_HOME/配置目录中, 其内容与 OLD_SONARQUBE_HOME/配置目录中的相关文件 (web 服务器 URL、数据库设置等) 有关。不***-粘贴旧文件
如果使用了自定义 JDBC 驱动程序, 请将其***到 NEW_SONARQUBE_HOME/扩展/jdbc 驱动程序/<dialect>
备份数据库
删除数据/es 目录
启动新的 web 服务器
*** http://localhost:9000/setup (用您自己的 URL 替换 "localhost:9000") 来浏览并按照安装说明进行操作
这是一个太多的步骤, 手动执行。因此, 我决定通过为它编写一个 Ansible 的角色来实现自动化。
初始设置
在我开始编写 Ansible 剧本之前, 我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机, 并提供了一个简单的脚本。开发人员必须能够发现新的质量缺陷,一旦他们被引入,即在IDE编写代码时,类似于拼写检查程序突出拼写错误的方式。这是需要有类似的环境, 以我们的实际 SonarQube 生产实例。我能够增量地构建我的 Ansible 剧本并在这个 VM 上测试它。很快我就明白了, 与流浪汉一起工作会减慢我的速度, 因为我需要重置环境, 而不是***的预期。所以我决定考虑泊坞窗。
用于测试的泊坞窗
我找到了正式的 SonarQube 泊坞窗图像, 但无法使用, 因为我们的 SonarQube 实例安装在 CentOS 和官fang图像使用不同的基础图像。更重要的是,它背离了基于数学模型,使其能够产生控制流的评估,对应于程序员的直觉的精神,或认知的努力,需要了解这些流动。另外, 我需要自定义特定的 SonarQube 版本我想开始。因此, 我创建了我们自己的 Dockerfile 与 CentOS 6 基地和 Ansible 安装。
此泊坞窗映像不需要启动 SonarQube, 因为我只是想验证是否进行了正确的文件更改, 而我的 Ansible 手册没有错误。升级的第yi步之一就是关闭服务器。
我将我的剧本装入容器, 并在该容器内运行 Ansible, 对该本地环境进行了更改。
当前脚本的路径
TESTS_DIR = $ (cd "$ (dirname" $ {BASH_SOURCE [0]} ")" & & 密码 "
# 命令测试剧本
TEST_COMMAND = "cd/行动 & & ansible-剧本 $ @
-我 ' 本地主机 '-c
升级-声纳 database.yml "
# 运行容器安装行动为卷
泊坞 run-v "$ TESTS_DIR/.。/行动/:/行动 "
"声纳-升级-测试"/"垃圾/bash-c" $ {TEST_COMMAND} "
在泊坞窗中运行我的剧本大大减少了反馈回路, 所以我决定泊坞窗是走的路。你可以看看我所有的脚本在 GitHub
Ansible 角色
我一步一步地往前走, 我到达了一个点, 一切似乎都在工作, 我有一个非常有用的 Ansible 的角色在我的手中。它尚未发布到 Ansible Galaxy, 但您可以在 GitHub 的 SonarQube 升级 Ansible 角色项目下找到源文件和文档。
当前 Ansible 角色通过在当前位置旁边创建新安装来升级 SonarQube。这提供了回滚的方法 (如果需要)。
此时, 角色执行以下任务:
确保特定的根用户存在于声纳安装
在所有安装所在的目录中创建声纳. sh
确保 SonarQube 服务存在
停止 SonarQube
***新版本
***和安装插件
将自定义配置应用于新实例
确保删除数据/es
重新 SonarQube 服务启动新版本
开始 SonarQube
手动步骤
这个过程仍然需要几个手动步骤。
在运行升级手册之前, 应手动确保在升级过程中要安装的插件列表是***xin的。您可以从 SonarQube 的管理视图中获得***xin支持的版本号。
根据 SonarQube 的建议, 此 Ansible 角色不仅***以前安装的配置, 而且使用带有变量的模板来为新实例创建配置。在这个数字消费化和流动性的时代,项目变得更具挑战性和管理的关键。这意味着在执行升级之前, 开发人员可以将模板和基本配置与新的 SonarQube ***进行比较。虽然这是一个手动步骤, 但与以前的操作相比, 它更容易, 因为可以使用 IDE 而不仅仅是从命令行中的 diff 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。
版权所有©2024 天助网