DevOps工具链:开放、自由地选择最适合团队和业务需要的工具

Hi!我们是DevSecOps解决方案提供商、Atlassian全球白金合作伙伴——龙智。在过去的十多年间,传统软件研发模式发生巨变,从瀑布式开发到敏捷再到DevOps,开发和运维之间曾经明确的界限正在慢慢变得模糊。

DevOps由于能够促进开发、运维、测试等不同部门的沟通、协作与整合,正在悄然成为软件研发运营主流趋势。发展至今,DevOps也结合了新的流程,比如持续集成和持续部署来快速交付价值。

如果您对DevOps还知之甚少,或是想要更深入的了解DevOps工具链,请不要错过本系列本章。龙智将从DevOps的概念、DevOps工具链、CI及工具对比、DevOps监控、DevSecOps五个方面入手,让您从起源开始,逐步深入了解DevOps这个已流行数十年的方法论。

在这里插入图片描述

在上一篇文章中,我们介绍了DevOps的起源、原则,以及成功实施的关键。作为现今软件行业中最热门的研发运营趋势,企业们纷纷落地DevOps来加速生产和交付,为了在竞争激烈的市场中有一席之地。

而成功落地DevOps的关键因素,就是打造一个适合团队的工具链。只有真正合适的工具才能提升开发、IT运营和业务团队之间的协作。

针对DevOps各生命周期选择工具

一般来说,选择DevOps工具链有以下两种主要方法:一体式或开放式。

一体式DevOps解决方案提供了一个通常不与其他第三方工具集成的完整解决方案,但其相对封闭的生态环境也导致了缺少第三方插件为其进行功能扩展。

开放式DevOps解决方案可以使用不同的工具,针对团队的需求定制开放的工具链。开放式的工具链可以使用同类最佳的工具进行定制,满足企业的独特需求。使用开放式的工具链能够提高时间效率并缩短上市时间。

但无论企业使用的是一体式还是开放式工具链,DevOps流程都需要使用正确的工具来解决DevOps生命周期的关键阶段:

  • 计划(Plan)
  • 构建(Build)
  • 持续集成和持续交付(CI/CD)
  • 监控(Monitor)
  • 运营(Operate)
  • 持续反馈(Continuous Feedback)

计划

借鉴敏捷开发的理念,我们推荐您选择一些能让开发和运营团队将工作分解成更小的、可管理的模块的工具,这样不仅可以加速部署,并可以让您更快地从用户身上学习,通过用户的反馈来持续优化产品。所以,您需要寻找一些能够提供sprint计划、问题跟踪和协作的工具,比如Jira。

Atlassian公司开发的项目管理工具Jira,针对DevOps中的计划环节,将原本单独出售的Advanced Roadmaps插件集成到了新版DC,使得它可以跨项目管理制定任务计划。通过Jira,您可以安排工作、调整依赖关系、设置工作负责人等。

计划阶段中,另一个好的实践是,不断收集用户反馈,将其组织成可操作的输入,并为开发团队安排这些操作的优先级。您可以寻找一些让每个人都可以分享和评论任何事情(想法、策略、目标、需求、路线图和文档)的工具。

还有,不要忘记集成和特性标志。无论特性或项目的范围是否确定,您都应该在计划步骤将它们转换为用户场景。特性标志是代码库中的if语句,它使团队能够打开或关闭特性。

构建

源代码控制和协同编码

对代码进行源代码控制十分重要。源代码控制工具有助于将代码存储在不同的链中,这样您就可以查看每一个更改,并通过共享这些更改更容易地进行协作。在部署到生产环境之前,您不必等待变更审批委员会的批准,而是可以通过pull request进行同行评审来提高代码质量和吞吐量。

什么是pull request?pull request告诉您的团队您已推送到存储库中开发分支的更改。然后,团队可以审查提议的更改并讨论修改,再将它们集成到主代码行中。pull request提高了软件的质量,从而减少了bug /事故,降低运营成本并加快开发速度。

源代码控制工具应该与其他工具集成,连接代码开发和交付的不同部分。因为这样,您就可以了解该功能的代码是否在生产环境中运行。

Atlassian公司开发的一款基于Git的代码托管与协作工具:Bitbucket,能让您通过内置的持续交付来自动构建。

Git是一个被广泛应用于构建的版本控制软件,它是一个分布式的版本控制系统,拥有强大的分支管理合并功能和天然的分布式特性,让速度变快、效率更高。

基于Git,Bitbucket的分布式管理可以在没有和服务器有连接的情况下仍然可以查看日志,提交代码,创建分支;支持local branch,可以快速方便的实现各种分支管理;支持分布式,从而可以实现分块管理,以及负载分流管理。

通过pull request,Bitbucket将更高效地批准代码审查。创建带有指定审批者的合并检查清单,并通过内嵌的评论直接在源代码中讨论。

持续集成和持续交付(CI/CD)

持续集成(CI)

持续集成是每天多次将代码检入共享存储库,并每次进行测试的实践。通过这种方式,您可以尽早自动发现问题,在最容易修复的时候修复它们,并很快推出新功能。

通过pull-request进行代码审查需要分支,现在非常流行。DevOps North Star是一种工作流,它可以产生更少、更快的分支,并在不牺牲开发速度的前提下保持测试的严谨性。

寻找能够自动将测试应用于开发分支的工具,并在分支构建成功时提供将其推送到main的选项。除此之外,您还可以通过简单的集成从团队的实时聊天警报中获得持续的反馈。

持续交付(CD)

持续交付是一种软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况。它的目标在于让软件发布流程的其他部分,包括构建、测试与发布变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。

要想实现CI/CD,您可以通过使用Bitbucket云版流水线,它能帮助您将代码从测试到生产自动化。如果使用的是Bitbucket Server版或Data Center版,可以使用Bamboo流水线。

使用Bamboo Data Center,通过无缝集成Jira和Bitbucket服务器,你可以实现发布、执行、质量和状态的端到端可视化。它还提供了内置部署支持、自动合并和Git分支等特性。Bamboo支持编程扩展和组合。Bamboo可用于Windows、Mac OS X和Linux等平台。

测试

测试工具涵盖了许多需求和功能,包括探索性测试、测试管理和编排。但是,对于DevOps工具链来说,自动化是必不可少的一个功能。从长远来看,自动化测试能够通过加快您的开发和测试周期而获得回报。

通过尽早且经常地进行测试自动化,可以提高软件质量并降低风险。开发团队可以重复执行涵盖多个领域的自动化测试,包括UI测试、安全扫描或负载测试等。它们还生成报告和趋势图,帮助识别风险区域。

在软件开发中,风险是不可避免的,但是您不能减少您无法预期的风险。您可以寻找支持wallboards的工具,并让参与项目的每个人对特定的构建或部署结果发表评论。额外的加分工具,使它更容易让运维参与闪电式测试和探索性测试。

您可以选择自动化测试工具来协助您进行测试,例如SonarQube。作为一个代码质量管理平台,它能够扫描项目中重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug、注释等,帮助您提交更干净的代码。

除此之外,另一个用于执行测试的工具就是Mend(原Whitesource)。它是一个开源代码漏洞扫描工具,能够在自己的环境中自动查找、修复开源漏洞,保证开源代码安全。
当测试产生的大量测试用例时,您需要Jira协助您进行管理。作为项目管理系统,Jira不仅与上述两个软件集成,也可与第三方插件包括Zephyr、Xray等集成,管理测试用例。

其中,Xray利用了Jira原生的issue管理和工作流引擎,可以在满足基本的测试用例和测试任务管理的同时,天然地连通需求、缺陷等内容,非常方便地实现需求-用例-缺陷的上下游追溯,并实时提供测试进度、需求覆盖强度等报告。再加上拥有中文版,深受国内用户欢迎。

部署仪表板(Jira Cloud Only)

发布软件时,压力最大的部分之一是将即将发布的版本的所有更改、测试和部署信息集中到一个地方。在发布之前,没有人想要来一场冗长的会议汇报状态,而这正是发布仪表板的用武之地。
您需要一个与代码存储库和部署工具集成的单一指示板工具,一个能在同个地方让你看到分支、构建、拉请求和部署警告的东西。

使用Jira云版协助部署,您可以从不同的项目中创建多个仪表盘,并添加小工具来跟踪您正在处理的任务和issue。

自动化部署

不存在适用于每个应用程序和IT环境的自动部署灵丹妙药。但是,使用Ruby或bash将操作的运行簿转换为cmd-可执行脚本是一种常见的启动方法。良好的工程实践至关重要。使用变量来分解主机名——为每个环境维护唯一的脚本或代码并不是一件有趣的事情(而且遗漏了一半的要点)。创建实用方法或脚本以避免重复代码。并对您的脚本进行同行评审,以检查它们的完整性。

您可以使用Bamboo部署项目来协助安排部署。它管理着多个部署环境,常见的有: 开发环境(Dev),测试环境(Test),模拟环境(Staging)和生产环境(Production),以适应不同生命周期阶段的测试,交付需求。

运营

应用程序和服务器性能监控

有两种类型的监视应该是自动化的:服务器监视和应用程序性能监视。

手动“置顶”一个盒子或测试你的API对抽查来说不错,但是要了解应用程序(和环境)的趋势和整体健康状况,您需要能够全天候监听和记录数据的软件。持续的可观察性是成功的DevOps团队的关键能力。

寻找与您的群聊客户端集成的工具,这样警报就会直接发送到团队的房间,或事件专用房间。

事件、变更和问题跟踪

开启DevOps团队之间协作的关键是确保他们正在查看相同的工作。报告事件后会发生什么?它们是否与软件问题相关联并可追溯?进行更改时,它们是否链接到版本?

没有什么比在不同系统中跟踪事件和软件开发项目更能阻碍开发人员与运维人员的合作了。寻找那些将事件、变更、问题和软件项目集中在一个平台上的工具,这样您就可以更快地识别和修复问题。

对于监控软件运行情况,您可以使用Opsgenie。它是一个现代化事件管理平台,能接收来自监控系统和自定义应用程序的警报,并根据重要性和时序将所有警报分类,通知正确的人员,缩短响应时间,避免警报疲劳。

持续反馈

客户会告诉您您是否构建了正确的东西,而您只需要倾听。持续反馈包括定期收集反馈的文化和流程,以及从反馈中获得洞察力的工具。持续的反馈实践包括收集和审查NPS数据、流失调查、错误报告、支持票,甚至推送。在DevOps文化中,产品团队中的每个人都可以访问用户评论,因为产品的人会帮助指导从发布计划到探索性测试会议的所有内容。

寻找将聊天工具与您最喜欢的调查平台集成的应用程序,以获得NPS风格的反馈。Twitter和/或Facebook也可以与聊天功能集成以提供实时反馈。为了更深入地了解来自社交媒体的反馈,投资一个可以利用历史数据提取报告的社交媒体管理平台是值得的。
分析和整合反馈在短期内可能会在短期内减缓开发速度,但从长远来看,这比发布没人想要的新功能更有效。

对于收集客户反馈,您可以使用Jira Service Management。同时,JSM可以与Confluence集成,利用由Confluence提供支持的开箱即用知识库,简化服务请求管理,提升客户体验。Atlassian的调查显示,将由Confluence提供支持的知识库与JSM结合使用,可以转移多达45%的客户报告请求。

想要一个集成了您喜欢的聊天工具和Jira的插件?您可以使用龙智自主研发的Jira企业微信插件、Jira钉钉插件,快速获得移动端反馈,随时随地处理issue。

总结

没有哪一个单一的工具能够胜任所有情况,您所选择的工具应基于您使用的技术、在哪里托管,以及团队的人才及构成来决定。

Atlassian相信拥有与开发和运营团队喜欢使用的工具集成的DevOps工具链的重要性。这也是Atlassian构建的DevOps平台与171多家领先的第三方供应商集成的原因,使您能够在所使用的工具中做出最佳决策。

秉承着开放式的理念,Atlassian Open DevOps与SonarQube、Mend(原Whitesource)、Xray等软件紧密集成,让您可以自由选择熟悉的、喜爱的工具。

龙智作为Atlassian全球白金合作伙伴,为帮助释放及拓展Atlassian工具的力量,也自主开发了多款Atlassian插件,更适合本土企业使用。包括Jira工时管理插件(TimeWise for Jira)、Confluence水印插件(Watermark for Confuence)、Jira工作流扩展和并行审批插件(WorkflowWise for Jira)等,欢迎咨询试用。

想了解更多Atlassian DevOps解决方案、工具及客户案例?欢迎您立即咨询Atlassian全球白金合作伙伴—龙智:

电话:400-775-5506

邮箱:marketing@shdsd.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值