在伦敦举行的第一次DevOps欧洲企业峰会上,SIX公司应用工程部负责人Robert Scherrer分享了公司是如何推行DevOps原则并在受高度监管的瑞士金融业中获得成功的。谈话中涉及到的要点有:尽早与合规性审计者建立合作关系、尽早就解决方案达成共识、避免拖得太久而需要花费巨大代价修改、取消已经不为当前外部规则需要的旧的内部指令等。
在项目付诸实施之前就与审计者分享讨论技术方案的设计,这样可以解决掉那些潜在的合规性问题。Scherrer分享了一个他们把系统移到Openshift私有云上的故事,当时审计者就金融服务在同一个云设施上的多租户问题提出了顾虑。解决方案是建立一个基础设施池并为每个客户提供一个专属云。这增加了系统的配置复杂度,但是消除了审计者关于安全的顾虑,保证了后期系统的顺利上线。
Scherrer说盲目地遵循内部指令是个可能要付出巨大代价的错误,会阻碍从DevOps中获益。一方面,内部指令往往比外部规则约束性大得多。另一方面,各种服务和模块重要性并不都一样。所以要求所有的东西都遵守相同的一致性等级会造成非常大的浪费。在管理层的全力支持下,Scherrer成功地把好几条内部指令对应的外部规则找了出来,然后修改了内部指令来让它们约束性小些。
特别有一条值得分享的是开发没有权限接触生产系统,Scherrer调查后发现其实没有外部规则要求这么做,这只是关于职责隔离这个要求的一个字面解释。Scherrer说现在SIX公司65%的开发可以拿应急电话,而且可以根据他们的角色获得访问生产系统的临时权限。更进一步,通过把生产系统的日志收集并传输出来集中存储,开发团队已经可以非常容易的获得生产系统日志。同时,通过转移到“不可修改基础设施”上,手工干预生产系统的可能性已被降到最小,这极大的提升了审计者的信任度。
Scherrer说在高度监管的环境下实施DevOps会有许多好处:由自动发布系统带来的细粒度的可追踪性及相应的可审计性、更高的安全性(比如在构建时就进行自动地系统漏洞扫描)、更高的系统质量等。有趣的是,要提升知识分享和代码质量的话,只要保证所有关键代码(比如支付模块)都被审查过(并且审查本身是可追踪的)就可以满足PCI DSS等关键要求了。