跳转到主要内容
Chinese, Simplified
SEO Title

为 DevOps 生命周期的每个阶段选择工具。

DevOps 是敏捷方法的下一个演变。将开发和运营团队聚集在一起的文化转变。 DevOps 是一种涉及文化变革、新管理原则和有助于实施最佳实践的技术工具的实践。

当谈到 DevOps 工具链时,组织应该寻找能够改善协作、减少上下文切换、引入自动化以及利用可观察性和监控来更快地交付更好的软件的工具。

DevOps 工具链有两种主要方法:一体机或开放式工具链。一体式 DevOps 解决方案提供了一个通常不与其他第三方工具集成的完整解决方案。可以使用不同的工具针对团队的需求定制开放的工具链。 Atlassian 认为开放式工具链是最好的方法,因为它可以使用同类最佳的工具进行定制,以满足组织的独特需求。使用这种方法通常会提高时间效率并缩短上市时间。

阅读有关 DevOps 工具链的更多信息。

无论组织使用何种类型的 DevOps 工具链,DevOps 流程都需要使用正确的工具来解决 DevOps 生命周期的关键阶段:

  • 计划
  • 建造
  • 持续集成和部署
  • 监视器
  • 操作
  • 持续反馈

借助开放的 DevOps 工具链,所选工具涉及 DevOps 生命周期的多个阶段。以下部分展示了一些最流行的 DevOps 工具,但鉴于市场的性质,此列表经常更改。提供商添加了新功能,使他们能够跨越 DevOps 生命周期的更多阶段,每个季度都会宣布新的集成,在某些情况下,提供商会整合他们的产品以专注于其用户的特定问题。

计划

  • Jira,
  • Confluence ,
  • slack

从敏捷手册中抽出一页,我们推荐允许开发和运营团队将工作分解为更小、更易于管理的块以加快部署的工具。这使您可以更快地向用户学习,并有助于根据反馈优化产品。寻找能够提供 sprint 计划、问题跟踪和允许协作的工具,例如 Jira。

另一个很好的做法是不断收集用户反馈,将其组织成可操作的输入,并为您的开发团队确定这些操作的优先级。寻找鼓励“异步头脑风暴”的工具(如果你愿意的话)。重要的是每个人都可以分享和评论任何东西:想法、策略、目标、要求、路线图和文档。

并且不要忘记集成和功能标志。无论您决定在何处确定功能或项目的范围,都应将其转换为开发积压中的用户故事。功能标志是代码库中的 if 语句,使团队能够打开和关闭功能。

有关此阶段的更多信息,请查看 Atlassian 产品经理关于待办事项梳理和优先级排序的帖子。

建造

生产相同的开发环境:

  • Docker
  • Kubernetes

虽然 Puppet 和 Chef 主要有利于运营,但开发人员使用 Kubernetes 和 Docker 等开源工具来配置单独的开发环境。针对虚拟的、一次性的生产副本进行编码可以帮助您完成更多工作。

当每个团队成员都在相同配置的环境中工作时,“在我的机器上工作!”不再好笑,因为它是真的(现在它只是好笑)。


基础设施即代码:

  • Ansible
  • Chief
  • Docker
  • Puppet
  • Trrraform

开发人员创建模块化应用程序,因为它们更可靠和可维护。那么为什么不将这种想法扩展到 IT 基础架构呢?这可能很难应用于系统,因为它们总是在变化。所以我们通过使用代码来解决这个问题。

基础设施即代码意味着重新配置比修复更快,而且更加一致和可重复。这也意味着您可以使用与生产类似的配置轻松启动开发环境的变体。可以应用和重新应用供应代码以将服务器置于已知基线中。它可以存储在版本控制中。它可以进行测试,并入 CI(持续集成),并经过同行评审。

当机构知识被编入代码时,对运行手册和内部文档的需求就会消失。出现的是可重复的过程和可靠的系统。

源代码控制和协同编码:

  • Github
  • Gitlab
  • Bitbucket

对代码进行源代码控制很重要。源代码控制工具有助于将代码存储在不同的链中,因此您可以通过共享这些更改来查看每个更改并更轻松地进行协作。您可以通过拉取请求完成的同行评审来提高代码质量和吞吐量,而不是在部署到生产之前等待变更批准委员会。

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

源代码控制工具应该与其他工具集成,这允许您连接代码开发和交付的不同部分。这使您可以了解该功能的代码是否在生产中运行。如果发生事件,可以检索代码以阐明事件。

持续集成和交付

 

持续集成:

  • Jenkins 
  • AWS 
  • Bitbucket 
  • CircleCI 
  • Snyk 
  • Sonarsource 


持续集成是每天多次将代码签入共享存储库并每次都对其进行测试的做法。这样,您可以自动及早发现问题,在最容易修复的时候修复它们,并尽早向您的用户推出新功能。

通过拉取请求进行代码审查需要分支并且风靡一时。 DevOps North Star 是一种工作流,它可以产生更少和更快的分支,并在不牺牲开发速度的情况下保持测试的严谨性。

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

了解 Bitbucket Pipelines 如何帮助您将代码从测试到生产自动化。

 

测试:

  • Mabl 
  • Saucelabs 
  • XRay
  • Zep​​hyr 


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

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

风险是软件开发中的一个事实,但你无法减轻你无法预料的事情。帮您的运营团队一个忙,让他们和您一起窥探。寻找支持墙板的工具,让参与项目的每个人评论特定的构建或部署结果。工具的额外加分,使操作参与闪电式测试和探索性测试变得容易。

 

部署仪表板:

  • Jira 

发布软件最紧张的部分之一是将即将发布的版本的所有更改、测试和部署信息集中到一个地方。在发布之前,任何人最不需要的就是召开长时间的会议来报告状态。这就是发布仪表板的用武之地。

寻找具有与您的代码存储库和部署工具集成的单个仪表板的工具。在一个地方查找可以让您全面了解分支、构建、拉取请求和部署警告的内容。

 

自动化部署:

  • Bitbucket 
  • Zep​​hyr 


没有适用于每个应用程序和 IT 环境的自动化部署的灵丹妙药。但是使用 Ruby 或 bash 将操作的运行手册转换为 cmd 可执行脚本是一种常见的启动方式。良好的工程实践至关重要。使用变量来分解主机名——为每个环境维护唯一的脚本或代码并不好玩(无论如何都错过了一半)。创建实用方法或脚本以避免重复代码。并同行评审您的脚本以对其进行完整性检查。

首先尝试将部署自动化到最低级别的环境,在那里您将最频繁地使用该自动化,然后将其一直复制到生产。如果不出意外,本练习会突出显示您的环境之间的差异,并生成一个用于标准化它们的任务列表。作为奖励,通过自动化标准化部署可以减少环境内部和环境之间的“服务器漂移”。

 

运营

 

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

  • AppDynamics 
  • DataDog 
  • Slack 
  • Splunk 
  • New Relic 
  • Opsgenie 
  • Pingdom 
  • Nagios 
  • Dynatrace 
  • Hosted Graphite 
  • Sumo Logic 


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

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

寻找与您的群聊客户端集成的工具,以便警报直接发送到您团队的房间或专门的事件房间。

 

事件、变更和问题跟踪:

  • Jira Service Management 
  • Jira Software 
  • Opsgenie 
  • Statuspage 


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

没有什么比在不同系统中跟踪事件和软件开发项目更能阻碍 Dev 与 Ops 的合作了。寻找将事件、变更、问题和软件项目保存在一个平台上的工具,以便您可以更快地识别和修复问题。

持续反馈

 

  • GetFeedback 
  • Slack 
  • Jira Service Management 
  • Pendo 

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

寻找将您的聊天工具与您最喜欢的调查平台集成的应用程序,以获得 NPS 风格的反馈。 Twitter 和/或 Facebook 也可以与聊天功能集成以提供实时反馈。为了更深入地了解来自社交媒体的反馈,值得投资一个可以使用历史数据提取报告的社交媒体管理平台。

分析和整合反馈在短期内可能会减慢开发速度,但从长远来看,它比发布没人想要的新功能更有效。

综上所述...


在 Atlassian,我们相信拥有与开发和运营团队喜欢使用的工具集成的 DevOps 工具链的重要性。这就是我们构建 DevOps 平台以与 171 多家领先的第三方供应商集成的原因,使您能够在所使用的工具中做出最佳决策。因为 DevOps 不应该从单一供应商那里购买,而应该构建。

原文:https://www.atlassian.com/devops/devops-tools

本文:

 

Tags

Article
知识星球
 
微信公众号
 
视频号