DevOps和CI/CD可以加快代码发布速度,但是它们也导致开发人员和运维人员角色和职责的重大变化。当涉及到CI/CD和DevOps时,好处是显而易见的:正确使用它,可以实现更干净的代码更快地发布。
但是,我们的2020年全球DevSecOps调查发现了更微妙的收益,而且鲜为人知。CI/CD不仅使开发人员能够更快地做更多的事情,而且还使他们(和他们的运营伙伴)做得更少。CI/CD所需的自动化已大大减少了软件开发中涉及的手动任务。随着耗时任务的减少,Dev和Ops的角色和职责正在发生变化,在某些情况下会发生巨大变化。
跳转:GitLab第四次全球DevSecOps年度调查报告
但是,不要仅仅相信我们的话。我们要求受访者以自己的语言告诉我们他们的角色和职责是如何变化的。
背后的故事
要了解CI/CD有助于全面了解DevOps的影响。在我们的调查中,有83%的开发人员表示他们发布代码的速度比以往任何时候都要快。实际上,其中近60%的用户每天或每几天部署多次(比2019年高15个百分点)。仅在去年,大约21%的开发人员表示他们的团队在流程中添加了CI,而只有15%的开发人员进行了持续部署。
开发人员告诉我们,这些过程的好处很明显:
“我们已经建立了自动化流程,以结合使用我们自己的工具和开源工具来构建,测试和部署代码。”
“(我们现在有)自动测试,在代码审查批准后自动部署。”
“模板化的CI/CD流程大大加快了构建和部署到多个云中多个环境的时间。”
“使用GitLab CI进行自动化测试意味着在检查代码时可以减少开销,并可以更快,更安全地进行部署。”
“自动化测试和持续集成使我们的部署更安全,更优化。现在团队中的每个人都有权部署代码。”
“ CI和CD大大减少了构建和部署应用程序的时间,并消除了构建环境的问题。”
“自动化使我们可以进行一键式测试和部署。”
“部署已成为一项非任务。由于可重复使用的基础架构,引导新项目的速度提高了10倍。”
“我们将CI构建队列时间减少了75%,这使开发人员可以更快地获得测试结果,并允许QA拥有可以更快地进行测试的构建工件。”
“CI /CD管道中的自动化(包括测试自动化和实际的CD自动化部分)大大提高了我们团队的交付速度。”
一位开发人员分享了一些真正引起我们共鸣的内容。在CI/CD之前的世界中,开发人员必须在“按钮按下”(部署)之前向七个不同的部门提交申请,该过程通常需要六周的时间。现在有了自动化,只需要两个小时。
DEV不再需要为了发布代码而做什么
通过CI/CD带来的所有更改,我们想知道开发人员不再需要为了发布代码而做什么。可以肯定地说一定有很多!第一项更改不再需要进行手动测试,紧接着又删除了手动部署。
“无需手动合并我的代码并进行暂存然后进行生产。”
"(我们不必)在多个开发人员之间同步代码– Git做得很好。"
"(不再需要)手动测试,争论代码风格并更新依赖项。"
"我们不必对产品进行编码即可在不同平台上使用。我们只需对产品进行编码,然后将其与工具集成即可在不同平台上使用。"
"我从不提申请要求Ops部署。"
开发人员并不是唯一不做过去的工作的人。运营团队成员还报告了角色的根本变化。近40%的人表示,他们的开发生命周期大部分是自动化的,这意味着他们现在可以自由地处理不同的职责。其中一半以上的人正在管理云服务,而42%的人说他们现在主要是在管理硬件和基础架构。
他们今天是这样描述他们的角色的:
“我们建立并改进CI/CD平台。“
“我是各行各业的杰克。“
“我们确保可靠性和可用性,提高开发人员的效率,自动化,工具和可观察性。“
“我一直开灯。“
“(我负责)开发人员和运营人员之间的一切。从计划到部署,但不监视和维护生产中的应用程序。“
工作线条模糊
那么,归根结底,这些由DevOps驱动的变化对软件开发生命周期意味着什么?对于初学者来说,角色是模糊的。超过三分之一的开发人员告诉我们,他们定义或创建其应用程序所运行的基础结构,并有14%的人监视和响应该基础结构-传统上,这两项任务都是运维团队的职责。实际上,将近70%的运维专业人士表示,他们的开发人员能够配置自己的环境。
开发人员和运维人员的角色开始融合,但与此同时,开发人员正在加倍考虑他们认为对提高代码质量(从而提高代码发布速度)至关重要的任务。仅有不到50%的开发人员告诉我们,他们现在每周进行代码审查,但是越来越多的证据表明,对于许多团队来说,每天的代码审查是不可能的,现实他们可能陷入手动测试和部署的困境。
开发人员告诉我们,展望未来,CI/CD自动化创建的“空闲时间”将不会浪费。大多数人希望推动他们的团队对所有类型(功能,A/B,单元,安全性)进行更多的测试,当然还要使这些过程自动化。
现在你应该做什么,不做什么?
“我们想在测试上向左移。”
“我们希望编写更多的测试用例以涵盖所有内容的100%。”
“我们想要更好的代码审查,更快的代码审查和更多的代码审查。”
“我们应该做得更好。”
“我们应该做得更好。”