革新软件开发:敏捷、左移和网络安全集成

软件开发自瀑布式项目管理时代以来发生了巨大演变。如今,产品期望中可靠性和安全性更为突出,可用、安全且无缺陷的软件是黄金标准。左移敏捷方法通过促进更快的周转时间、增量交付、更频繁的客户输入和更高的成功率来解决这些问题。

在典型的敏捷工作流程中,团队在左侧开始规划和开发过程,随着项目进入生产阶段向右推进。以前安全和质量保证在流程后期引入,左移利用敏捷实践在最早的规划和开发阶段就进行漏洞测试。这种方法减少了重大缺陷和漏洞进入生产阶段并最终交付给客户的可能性。左移通过早期测试和自动化来解决出现的问题,促进更顺畅、更快的集成和部署。在成功的左移场景中,软件质量高,自动化有效,客户体验得到改善。

早期修复节省时间和金钱

美国国家标准技术研究院(NSIT)的一项著名研究“软件测试基础设施不足的影响”强调了不良测试实践对经济的影响。该研究表明,测试中的差距每年使美国经济损失约 595 亿美元。CrossTalk 的另一项研究发现,公司在生产中发现问题后进行补救的时间比在需求阶段要长 150 倍。这些统计数据证明了左移测试的必要性,使团队能够尽早发现和解决缺陷。

当今的软件开发生命周期(SDLC)包括大量的协作工作,需要复杂的相互关联的工具和组件网络,从开源和商业工具到云配置文件和部署规范。由于有如此多的移动部件,质量保证和安全是一个持续的挑战。在加快生产和承担更多工作负载的压力下,开发人员也可能有动力忽视安全标准。2023 年的一项研究调查了 500 名开发人员,发现 77%的人在过去一年中承担了额外代码测试的责任,而 67%的人报告在没有测试的情况下将代码推送到生产环境。

虽然左移在短期内可能会消耗更多资源,但在大多数情况下,长期的节省足以弥补初始投资。产品发布后发现的漏洞修复成本可能是开发期间发现的漏洞的 640 倍。此外,后期发现可能会增加安全漏洞罚款的风险,并损害品牌的信任。

自动化工具是解决这些问题的主要答案,也是左移成为可能的核心。流行的科技行业格言“自动化一切”仍然适用。静态分析、动态分析和软件组合分析工具扫描已知漏洞和常见错误,在代码首次合并到开发分支时提供即时反馈。近年来,Gitlab、GitHub、Azure DevOps 等供应商开发了内置的代码扫描应用程序,使团队能够快速前进,避免重新发明轮子。

左移实践

像大多数软件策略一样,左移计划因公司而异,基于业务环境,共同点是在软件组装阶段早期的可见性。

IBM的开发人员将云基础设施和容器化的自动化视为其左移方法的关键要素。容器是软件可执行文件的捆绑包,包括运行所需的所有依赖项和库,允许更高的可移植性和测试环境之间的摩擦更小。IBM 的自动化工具链扫描每个容器中的源代码、云配置和第三方集成中的缺陷和漏洞。每个拉取请求都会自动测试传统错误及其对整个 CI/CD 管道的影响,包括大局合规性和安全性检查。

微软在讨论左移计划时提到了组织结构和团队沟通的重要性。微软的关键挑战包括团队之间不一致的编码标准和孤立的沟通。其解决方案涉及创建一个专注于“基于 Microsoft Azure DevOps 开发通用工程系统,同时在整个组织中推动关于如何设计、编码、仪器、测试、构建和部署服务的一致性”的中央团队。

最佳实践

左移只能建立在坚实的 DevOps 基础上。失败的左移计划的常见陷阱是工具的无效应用和利益相关者之间目标的不一致。必须制定实施计划和变更管理策略,为开发人员创建明确的可操作步骤。最佳实践始于引入适当的自动化工具,并根据组织的用例进行微调。

为开发人员提供必要的支持、提供问题解答的联系人以及对流程和工具的充分培训也至关重要。当以战略方式处理时,左移可以使开发人员的日常任务更容易,而不是更困难。自动化工具提供的即时反馈可以减少任务切换和审查现有代码的需要。除了现成的解决方案,左移自动化示例还包括用于可观察性的内部仪表板和用于错误跟踪、资源和警报的自定义开发门户。开放的对话可以帮助确保开发人员从获得和构建的工具中受益。一旦应用,左移的业务影响可以通过成本比较、缺陷数量、支持工单数量和客户调查等指标来衡量。

趋向人工智能

左移的未来包括更多的自动化和人工智能的集成。代码审查是 SDLC 的关键部分——今天,这项工作大部分仍由人工完成。高级开发人员经常花费宝贵的时间审查团队的代码以确保质量。随着 GitHub Copilot 和 GitLab Duo 等人工智能工具的兴起,这一过程正在发生变化。这些人工智能驱动的系统可以自动处理代码审查,节省时间并提高代码质量。

2024 年,GitHub Advanced Security (GHAS)推出了一个人工智能辅助代码扫描仪,其中包括基于 CodeQL 引擎的自动修复建议。在这个人工智能驱动的领域中,一系列类似的选项包括 Synopsys、Veracode、Checkmarx 和 Contrast 等应用程序安全扫描工具。

当然,这些工具并不便宜——对于公司来说,许可证可能很昂贵。但一旦到位,它们可以在团队工作方式和更广泛的就业市场中产生巨大影响。如果代码审查可以通过人工智能工具完全自动化,高级开发人员的角色可能会随着开发团队中专业知识的概念而发生巨大变化。

速度、质量和一致性

左移平衡速度和质量。在编写代码时定期检查可以降低发布后出现重大缺陷和漏洞的可能性。一旦软件在野外发布,修复问题的成本比在早期阶段发现要高得多,需要更多的工作。尽管左移有优势,但应对所需的文化变革可能是一个挑战。因此,为开发人员提供有效的工具和适当的指导以取得成功至关重要。当通过这些关键要素主动管理安全和质量时,产品成功的机会更高,并且可以实现敏捷和左移的全部好处。

阅读 161
0 条评论