随着开发过程“左移”,DevOps 正在成为任何软件产品或服务的关键部分。因此,DevOps 工具的数量不断增长以满足我们所有的工作需求也就不足为奇了。
然而,如此多的 DevOps 工具的存在可能会让人感到困惑。为了帮助组织和选择正确的工具以满足正确的需求,我们将在接下来的几周内介绍顶级工具及其优缺点。这些工具将分为工作周期的五个阶段:计划、开发、测试、发布和操作。每次我们都会涵盖一个不同的部分,总共有六篇博文(包括这篇介绍性的一篇)。
那么,每个阶段是什么意思呢?
计划
计划是初始阶段,它涵盖了项目管理的第一步。项目和产品创意以小组、单独或在白板上进行展示和分析。开发人员、团队和组织决定他们想要什么以及他们想要的方式,并将任务分配给开发人员、QA 工程师、产品经理等。这个阶段需要对问题和解决方案进行大量分析、团队成员之间的协作以及能够捕获并跟踪所有计划中的内容。
开发
开发是将计划中的想法执行到代码中的阶段。这些想法以产品的形式出现。此阶段需要软件配置管理、存储库管理和构建工具以及自动化持续集成 (CI) 工具,以便将此阶段与以下阶段结合起来。
测试
测试是检查产品和服务并确保它们在不同条件下(有时甚至是极端条件)实时工作的关键部分。这个阶段需要许多不同类型的测试,主要是功能测试、性能或负载测试以及服务虚拟化测试。测试与第三方服务的兼容性和集成也很重要。测试数据需要在丰富的报告中进行管理和分析,以便根据测试结果改进产品。
发布
曾经是一个独树一帜的阶段,让开发人员彻夜难眠,现在发布阶段变得敏捷并与持续交付流程集成。发布阶段发生在基础设施和公司的所有层。它包括部署工具、容器和发布工具,以及用于可扩展性的配置管理和云基础。发布阶段将我们从代码带到工作产品。
操作
我们现在有了一个可以工作的产品,但我们如何才能最大限度地发挥我们计划、开发、测试和发布的功能呢?这就是这个阶段的目的。实施最佳用户体验是其中的重要组成部分,监控基础设施、APM 和聚合器,并分析商业智能 (BI)。这个阶段确保我们的用户充分利用产品,并且可以无错误地使用它。
显然,这个工作周期不是单向的。我们可能会使用某个阶段的工具,进入下一个阶段,返回一个阶段,向前跳两个阶段,等等。从本质上讲,这一切都归结为一个反馈循环。你计划和发展。测试失败,所以你再次开发。测试通过,你发布它,然后你通过谷歌分析或 A/B 测试等测量工具获得有关客户满意度的信息。然后,您重新讨论相同的功能以从产品中获得更好的满意度,再次开发它等等。
在计划阶段使用的主要工具
作业跟踪和管理:JIRA、Confluence 和 CA Agile Central
JIRA是一种跟踪工具,提供看板式、Scrum 或完全定制的板,显示每个任务的进度、任务分配者及其开发。通过使用JIRA板,经理和团队成员可以反映不同任务的状态,识别工作瓶颈,并从整体上监控开发进度。JIRA 也有助于错误管理。
-
优点: 所有工具都易于使用,并使团队能够保持同步。
-
缺点:对于小型团队来说,免费的开源工具就足够了。
团队之间的聊天和即时沟通:Slack
Slack是一种团队交流工具,可让开发人员、产品经理和任何公司成员聊天和共享屏幕。该工具支持个人消息传递以及群聊、频道或流程。创建专门针对不同项目的小组使其成为在处理任务时需要即时通信的理想工具。
-
优点: 该工具用户友好且视觉上令人愉悦。
-
缺点:群组消息有时难以追踪。
其他建议
除了上述工具之外,您可能还会发现以下有用的工具:
-
Mixpanel和Google Analytics用于衡量移动和网络用户的参与度。这些工具可帮助您表征系统中的用户行为和用户流并对其进行分析。这有助于您确定需要添加和/或修复哪些功能,以及如何添加和/或修复。它们也可用于 A/B 测试不同的功能。
-
用于产品路线图规划。使用此工具,您可以构建路线图、创建功能、分配任务、为任务评分和确定优先级。规划工作从这个工具开始,然后可以与 JIRA 集成(见上文)。
选择正确的工具对于确保开发的主要阶段(即规划)为流程的其余部分提供坚实的基础至关重要。您将继续回到此阶段并使用这些工具,因此请确保选择最适合您自己需求的工具。
在开发阶段使用的顶级工具
版本控制系统管理:BitBucket 和 GitHub
本控制系统允许您托管您的代码,与其他开发人员共享它,并在它们上进行协作。BitBucket和GitHub是两个最流行的版本控制系统管理服务。两者都是在 2008 年推出的,而 Bitbucket 在 2010 年被 Atlassian 收购。
你应该选择哪一个?这取决于您的需求。主要区别在于 GitHub 是开源友好的,因为它为公共存储库提供了无限数量的协作者。但是,如果您需要私有存储库,BitBucket 最多可为五个合作者免费提供它们。GitHub 也只支持 Git 版本控制,而 BitBucket 支持 Git 和 Mercurial。然而,对于开发人员来说,Git 通常就足够了。
包管理:NPM
包管理使开发人员能够通过存储“包”的存储库重用和共享代码。包是组合在一起以提供服务或功能的文件或目录。我们推荐使用NPM,它是一个 Node.JS 包管理器。NPM 成立于 2014 年,是一款开源产品。