IT领导者如何在交付高质量软件和维护安全性的同时推动数字化转型?他们需要考虑采用一些DevSecOps指导原则。
软件领导者如今都非常熟悉“移动球门柱”的这一理念,而业务部门通常要求他们更快地提供新功能,并且当这样做时,这些功能必须能够跨平台兼容。
其目标再次改变:希望要快速获得高质量的软件,并且没有更多的漏洞,符合数据隐私法规,并且能够满足企业响应市场的新要求。
DevSecOps的诞生就是为了满足这些要求,其目标是将软件开发、运营和安全整合到一个协作系统中。所有的利益相关者在该系统中共同努力,在软件开发和部署之前主动解决安全问题。
当然,实现目标说起来容易做起来难。以下概述的四项原则是从将这些想法付诸实践的经验中得出的。
1.定义有意义的指标,让团队保持一致
DevSecOps所代表的三个功能受到不同的激励。开发团队的衡量标准是在加速开发的同时提供新功能的能力。Ops团队是根据支持应用程序组合的基础设施的性能和可用性来判断的。虽然DevOps以提高效率的名义统一开发和运营这两个领域,但安全性往往是事后才考虑的问题。这导致应用程序不安全,流程陷入困境。
通过应用诸如目标和关键结果(OKR)等普遍理解的框架,使DevSecOps实践与业务目标保持一致至关重要。这样的框架有助于建立所有利益相关者都认同的基于目标的结果的基线。它还可以帮助团队定义一组共享的指标并确定其优先级,这些指标可以作为统一的事实来源。例如,其中一个目标可能是增加发布到生产环境的数量,其潜在的结果是将检测故障的平均时间从两小时减少到20分钟。
2.将安全性纳入开发过程
如果在过去几年教会了人们什么的话,那就是安全漏洞可以在开发生命周期的任何时候引入应用程序。很多企业采用零碎的工具和人员配置方法来解决关键问题,但最终仍会留下漏洞。
当安全性没有触及开发过程的每个部分时,就会出现漏洞。成熟的DevSecOps实践试图通过将安全性纳入到DevOps的所有阶段来解决这些问题,将安全性转移到包括预生产一直到生产和发布新软件功能或更新的整个过程。
将安全性纳入开发过程意味着安全成为每个团队成员的责任,在软件开发管道的每个阶段,从首席信息官到应用程序架构师、开发人员和站点可靠性工程师(SRE)。零信任安全和设计安全等概念需要成为一种强制性的设计原则,而不是锦上添花的选择。
3.整体思考、反复行动、适当自动化
现代软件越来越多地是组装而不是开发。调研机构Gartner公司估计,开发人员编写的实际代码量不到最终应用程序的10%。因此,成熟的DevSecOps实践必须不断考虑各个部分的总和,以免陷入sprint周期的细节中。
因此,虽然为了简化、可重复性和速度而进行的自动化是将安全性左移的关键,但要警惕自动化面临的问题。通过可重复的配置和变更管理标准化技术和流程之后,尽可能实现自动化。
人们经常看到DevSecOps团队致力于自动化更改过于频繁或尚未标准化的流程。这会导致维护噩梦,团队成员花费更多时间跟踪和修复问题,而不是从自动化中获益。
4.培养问责文化
每个成熟的DevSecOps的核心是一种有意识的文化,它促进协作并鼓励共同承担责任。但是当每个人都有责任时,真的会有人负责吗?也许更重要的是:如何让技能、个性和动机截然不同的人员有效地合作?
成熟的DevSecOps文化更多的是关于人员和文化,而不是人们用来完成工作的工具。
问责制文化的特点是通过行动形成的指导原则分担责任。创造这种文化的首席信息官使企业的员工能够接受行为变化。换句话说,它从顶部开始,但从底部向上渗透。分享经验教训和树立自我意识是首席信息官“成为变革者”,并发展他们正在努力培养的问责文化的方式。
毫无疑问,软件将继续满足企业的需求。但是,只有当所有利益相关者都从同一个菜单中订购时,现代软件的需求才会得到满足。成熟的DevSecOps实践将使首席信息官能够将他们的战略从反应转变为弹性,并使他们能够提供变革业务的创新。