切换到 CI/CD 时最常见的七个错误

切换到 CI/CD 时最常见的七个错误
如果您的公司刚刚引入 DevOps 或 CI/CD 工具,那么熟悉最常见的错误可能对您很有用,以免重蹈覆辙,也不会踩别人的耙子。 

团队 Mail.ru 云解决方案 翻译了这篇文章 过渡到 CI/CD 时避免这些常见的陷阱,作者:Jasmine Chokshi 并添加了其他内容.

没有准备好改变文化和流程

如果你看一下循环图 DevOps的很明显,在 DevOps 实践中,测试是一项持续的活动,是每个部署的基本组成部分。

切换到 CI/CD 时最常见的七个错误
DevOps 无限循环图

开发和交付期间的测试和质量保证是开发人员所做的一切的重要组成部分。 这需要转变思维方式,将测试纳入每项任务中。

测试成为每个团队成员日常工作的一部分。 过渡到持续测试并不容易,您需要为此做好准备。

缺乏反馈

DevOps 的有效性取决于持续的反馈。 如果没有协作和沟通的空间,持续改进是不可能的。

不组织回顾会议的公司发现很难在 CI/CD 中实施持续反馈的文化。 每次迭代结束时都会举行回顾会议,期间团队成员讨论哪些进展顺利,哪些进展不佳。 回顾会议是 Scrum/Agile 的基础,但对于 DevOps 来说也是必要的。 

这是因为回顾会议灌输了交换反馈和意见的习惯。 一开始最重要的一点是组织定期回顾会议,以便整个团队能够理解和熟悉它们。

当谈到软件质量时,所有团队成员都有责任维护它。 例如,开发人员可以编写单元测试,也可以编写考虑到可测试性的代码,从而帮助从一开始就降低风险。

反映测试思维变化的一种简单方法是,将测试人员称为软件测试人员或质量工程师,而不是 QA。 这个改变可能看起来太简单,甚至愚蠢。 但是,称某人为“软件质量保证人员”会让人误解谁对产品质量负责。 在敏捷、CI/CD 和 DevOps 实践中,每个人都对软件质量负责。

另一个重要的一点是了解质量对于整个团队及其每个成员、组织和利益相关者意味着什么。

对阶段完成的误解

如果质量是一个连续且普遍的过程,则需要对阶段完成达成共识。 你怎么知道一个阶段何时结束? 当某个步骤在 Trello 或其他看板上标记为已完成时会发生什么?

完成定义 (DoD) 是 CD DevOps/CI 背景下的一个强大工具。 它有助于更​​好地了解团队构建内容和构建方式的质量标准。

开发团队必须决定“完成”的含义。 他们需要坐下来列出每个阶段必须满足的特征列表,才能被认为是完整的。

如果所有团队成员都能理解并达成一致,DoD 将使流程更加透明,并且更容易实施 CI/CD。

缺乏现实、明确的目标

这是最常被引用的建议之一,但值得重复。 为了在任何重大努力(包括 CI/CD 或 DevOps)中取得成功,您需要设定切合实际的目标并根据这些目标衡量绩效。 您想通过 CI/CD 实现什么目标? 这是否可以实现更快的发布和更好的质量?

任何设定的目标不仅必须透明、现实,而且必须与公司当前的活动保持一致。 例如,您的客户多久需要一次新补丁或版本? 如果没有给用户带来额外的好处,就没有必要使流程超载并更快地发布。

此外,您并不总是需要同时实施 CD 和 CI。 例如,银行和医疗诊所等受到严格监管的公司可能只与 CI 合作。

CI 是任何实施 DevOps 的公司的良好起点。 实施后,公司的软件交付方法将发生显着变化。 一旦掌握了CI,就可以考虑改进整个流程、提高上线速度等改变。

对于许多组织来说,仅 CI 就足够了,只有在增加价值时才应实施 CD。

缺乏适当的仪表板和指标

设定目标后,开发团队可以创建一个仪表板来衡量 KPI。 在开发之前,有必要评估将要监控的参数。

不同的报告和应用程序对不同的团队成员有用。 Scrum Master 更感兴趣的是地位和影响力。 而高级管理层可能对专家的倦怠率感兴趣。

一些团队还使用带有红色、黄色和绿色指示器的仪表板来评估 CI/CD 的状态,以了解他们是否做对了一切或是否存在错误。 红色表示您需要注意正在发生的事情。

但是,如果仪表板未标准化,则可能会产生误导。 分析每个人都需要哪些数据,然后创建其含义的标准化描述。 找出对利益相关者来说更有意义的内容:图形、文本或数字。

无需手动测试

测试自动化为良好的 CI/CD 管道奠定了基础。 但各个阶段的自动化测试并不意味着你不应该进行手动测试。 

要构建有效的 CI/CD 管道,还需要手动测试。 测试的某些方面总是需要人工分析。

值得考虑将手动测试工作集成到您的管道中。 一旦完成一些测试用例的手动测试,您就可以进入部署阶段。

不要试图改进测试

有效的 CI/CD 管道需要使用正确的工具,无论是测试管理还是集成和持续监控。

创建强大的、以质量为导向的文化旨在 实施测试,监控部署后的客户交互并跟踪改进。 

以下是一些您可以轻松实施的实用技巧:

  1. 确保您的测试易于编写且足够灵活,以便在重构代码时不会中断。
  2. 开发团队应该参与测试过程 - 请参阅在 CI 管道期间对测试很重要的用户问题和请求列表。
  3. 您可能没有完整的测试覆盖范围,但始终确保对用户体验和客户体验重要的流程进行测试。

最后但并非最不重要的一点

向 CI/CD 的过渡通常是自下而上驱动的,但最终这是一个需要领导层支持、公司时间和资源的转变。 毕竟,CI/CD 是一套技能、流程、工具和文化重构;这种改变只能系统地实施。

关于该主题还可以阅读什么:

  1. 技术债务如何扼杀您的项目.
  2. 如何改进 DevOps.
  3. 2020 年九大 DevOps 趋势.

来源: habr.com

添加评论