合规性(Compliance)是指确保人们正确地做事,并能够证明做事的正确性。在实施敏捷和频繁交付的情况下,人们需要为交付过程建立合规性。融入了合规性义务(Compliance Obligation)的 DevOps 团队将更有可能取得成功。
在 Atlassian 2018 欧洲峰会(Summit Europe 2018)上,Atlassian 的风险未来学家(Risk Futurist) Guy Herbert 介绍了人们应该如何在敏捷中保持合规性。InfoQ 以问答、总结和文章报道覆盖了本次大会。
Herbert 指出,每个组织都受到某种形式监管义务的约束。有针对产品销售的相关规则,有针对持有客户信息并约束相关交易的规则。Herbert 表示,合规性就是确保人们做出正确的事情、知道自己正在正确地做事,并在他人质疑时可以证明自己的所作所为是正确的。
Herbert 认为,在交付过程中必须要建立合规性。过去每六个月才交付一次,这时人们可以尝试在交付前“上锁保险”。 但是现在每天都要做多次的交付,合规性无法在最后一刻才添加到过程中。
InfoQ 采访了 Herbert,采访内容包括:如何在频繁和快速交付时确保合规性;Devops 如何有助于解决合规性需求,并使现有的合规系统更加灵活。
InfoQ:当人们想要频繁快速地交付时,如何确保合规性?
Guy Herbert:我们在 Atlassian 的做法是,让团队了解风险和合规性是交付的一部分。我们向团队介绍我们当前正在做事的背景,团队承担自身工作的风险和合规性方面内容。我们使用同行评审作为关键变更控制,确保工作在构建之前通过测试。
大多数敏捷开发团队都使用了同行评审和测试,这是一种获得高质量代码的好方法。我们做法的与众不同之处在于,我们使用 Bitbucket(译者注:Atlassian 公司提供的一个基于 web 的版本库托管服务)强制执行同行评审和绿色构建。
我们赋予团队做出更改的能力,但我们也告知团队必须要由他们去做的事情。如果团队想要更改最低要求,他们需要与我们交谈。如果团队可以达到最低要求,那么可能并没有必要让我们参与进来。之后,我们要求团队每六个月就确认一次相关控制的进展情况(例如,关于用户管理或变更控制的流程),这些控制是团队正在执行我们曾与他们讨论过的情况。我们也做一些检查,为确保团队确实执行了相关的控制。对于一些可自动化的控件(例如,自动用户配置和删除),我们只需确认它们是以正确的方式配置的,并不需要做经常性检查。
InfoQ:DevOps 如何有助于人们解决合规性需求?
Herbert:一个 DevOps 团队通常具有多种合规性义务。而风险和合规性团队所需要做的就是将这些义务做分解,以便从事开发和运营工作的人员可以在完成工作的同时履行这些义务。一个例子就是变更管理。几乎所有的合规性义务都依赖于受控的变更管理环境。一旦变更实施过一次,那么该变更就可用于履行每项义务。这意味着,人们不必为每项义务实施不同的变更管理控制。当然这是一个简单的例子,还有更多的实例。风险和合规性可能非常容易做到,也可能真的很难以达成,这取决于人们是如何为团队设置这些义务的。
我们还看到,DevOps 团队具有更高的参与度和所有权。这使得合规性义务融入到 DevOps 团队中,进而增加了合规性成功交付的可能性。
InfoQ:如何使现有的合规系统更加敏捷?
Herbert:我们应该更好地了解每个团队所支持的合规性义务。团队将不再专注于义务本身,而是专注于支持这些义务的控制性活动,这样团队能够在有需要时做出更改。由此,团队就知道需要开展的控制活动。一旦控制活动发生更改,团队可以将这些控制活动转交给新的团队,或是与风险和合规团队讨论控制活动的潜在变化。
我们在 Atlassian 的做法是,通过对我们控制目标的讨论,在团队执行的控制活动和组织必须履行的合规义务之间形成一个抽象层。这使得交付团队能够专注于自身的工作,而不是每个合规性义务。
我认为风险和合规团队应该找到一些方法,为团队更好地履行合规性义务提供帮助。哪些是团队已做的事情是用于合规性的,而非基于现有基础的?对此,同行评审和绿色构建就是很好的例子。
查看英文原文: Compliance in an Agile World
评论