DevOps 工具链的注意事项
您应该选择一体式还是可自定义的 DevOps 工具链?
Robert Krohn
DevOps 工程主管
投稿:Chandler Harris
DevOps 工具链是一个工具集,通常来自各种供应商并作为一个集成单元运行,用于设计、构建、测试、管理、测量和操作软件和系统。该工具链可让开发和运营团队在整个产品生命周期内进行协作,并可处理重要的 DevOps 基础事项,包括持续集成、持续交付、自动化和协作。
从敏捷开发到 DevOps
在敏捷开发原则获得广泛采用时,它们就彻底改变了我们打造产品的方式。我们拥有小型跨职能团队和一到两周的冲刺时间,可以制作出准备投入生产的工件。我们的反馈周期很短,并且采用了持续改进机制。我们可以更快速地交付产品,并且减少了问题。
世事变化之快令人惊讶。现在,借助云、SaaS 和始终在线的服务,开发生命周期变得更短。同时进行多个开发和测试阶段也很司空见惯。尽管敏捷开发通常有一到两周的冲刺时间,但当今云原生环境中的团队每天会进行多次迭代和部署。工作流程和代码库也在不断发展。团队使用功能标记、逐步推出和 A/B 测试来确保持续部署简洁、高质量的代码。
这引发了从敏捷开发到 DevOps 的演变,DevOps 是一套实践,旨在自动化和集成软件开发和 IT 团队之间的流程,以便他们能够更快、更可靠地构建、测试和发布软件。衡量 DevOps 团队的标准就是他们将代码推送到生产环境的速度。此速度由每天交付的迭代次数以及代码变更从测试到部署再到生产所需的时间来定义。我团队中的典型项目每天最多可以实现 20 项变更。一些大型项目每天最多可以实现 100 项变更。
新工具允许团队跨开发、测试和部署进行协作,而这种加速的工作流程由这些新工具实现并依赖这些新工具。尤其需注意,DevOps 工具链可以帮助团队极其快速地处理开发生命周期的每个阶段。
什么是 DevOps 工具链?
由于 DevOps 是一种文化转型,其中开发和运营将作为一个整体工作,因此没有一个单一工具可以实现 DevOps 的原则和实践。相反,DevOps 工具链是一个工具集,通常来自各种供应商并作为一个集成单元运行,用于设计、构建、测试、管理、测量和操作软件及系统。通常,组织和团队需要尝试不同的工具组合才能找到合适的工具链。
纵观复杂的 DevOps 产品,DevOps 工具链应能非常快速地处理开发生命周期的不同部分,并为不同的用户提供多个视角。它应包括处理开发生命周期各个阶段的开发工具,包括持续集成和交付、测试自动化和高速部署。在 DevOps 的运营方面,工具应包括有助于监控和事件管理的功能。另外,工具还应该通过提供持续的反馈和日志记录来弥合开发和运营之间的分歧。
相关资料
免费试用
相关资料
了解集成
当您将无限循环的左侧视为产品侧,将右侧视为运营侧时,将新功能推入生产环境的产品经理就会想要了解项目如何分解为任务和用户故事。项目左侧的开发人员需要了解如何将功能转移到生产中,包括项目工作单、用户故事和依赖关系。如果开发人员坚持“谁构建,谁运行”的 DevOps 原则,那么他们就会对事件补救措施感兴趣。
转向生命周期的运营侧时,站点可靠性工程师就需要了解可以衡量和监控的服务,以便在出现问题时解决问题。如果您没有将所有这些流程关联在一起的工具链,那么您将面对一个混乱且脱节的环境。如果您有一个无缝集成的工具链,那么您就可以更好地了解正在发生的情况。
构建 DevOps 工具链的选项
在决定适宜的 DevOps 工具链时,首先必须了解基本的 DevOps 最佳实践以及工具如何为这些实践提供帮助。然后,制定一个通用工具策略,允许团队跨开发、测试和部署进行协作。
当组织采用 DevOps 时,他们通常会面临两种选择:“一体式”DevOps 工具链或定制的 DevOps 工具链。选择正确的配置至关重要,因为它决定了团队的 DevOps 流程。
一体式 DevOps 工具链
一体式 DevOps 工具链可提供完整的解决方案,可能无法与其他第三方工具集成。对于刚开始 DevOps 之旅的公司或团队,或者如果团队想要快速启动项目,这可能非常有用。此类工具链的缺点在于:大多数成熟的团队已经拥有自己使用和喜欢的一套工具,而这些工具可能无法与完整的解决方案集成。另外,此类看似全面的工具链可能有“样样皆通,样样稀松”的特点。一种工具根本无法进化到能适应瞬息万变的市场。最后,公司往往需要将传统工具集成到 DevOps 工具链中,而一体式工具链可能会限制这一点。
可定制的 DevOps 工具链
另一种方法就是使用 DevOps 工具链,它可以根据团队需求使用不同的工具进行定制。这样,团队就能够将其熟悉和喜爱的现有工具整合到更广泛的 DevOps 工具链中。例如,团队可以使用 Jira 进行规划和工作流程跟踪,用 Kubernetes 调配单个开发环境,用 GitHub 进行协作编码,用 Jenkins 进行持续集成等。组织可以按团队和/或项目定制其工作流程。
集成对于这些类型的工具链来说至关重要。如果无法集成不同的工具,团队成员就需要在屏幕切换、登录到多个位置上花费不必要的时间,并且可能会在工具之间共享信息时遇到挑战。对于开发人员或任何试图了解具体情况的人来说,这并不是一个很好的体验。如果您正在对事件做出响应,就没有时间查看手册并尝试查找有关新工具的关键信息。
总结...
DevOps 能打破壁垒,缩短开发生命周期,实现高度自动化,并且无论是跨职能还是在一个团队内部都能够无缝协作。要选择能够协同工作的正确 DevOps 工具,首先要仔细了解您当前的软件开发和 IT 操作流程,并确定需要改进的地方。
了解有关面向 DevOps 生命周期每个阶段的工具的更多信息。
分享此文章
下一主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。