谈 DevOps 自动化时,也应该考虑到 SOX 等法案
【编者按】作者 Aaron Volkmann 是 CERT Division 高级研究员,在本文中,他对 DevOps 自动化违反 SOX 法案进行了阐述。同时,也简单的提出了如何通过 CI 来避免这个问题,本文系OneAPM工程师翻译。
为了解决类似 Enron、Worldcom 以及 Tyco 等公司暴露出的财务欺诈丑闻,21世纪初期美国国会颁布了萨班斯-奥克斯利法案(SOX Act)。SOX 法案要求上市公司通过一系列内部控制手段,确保向投资者披露正确的财务信息。在一家 IT 公司中,遵守 SOX 方案的主要准则之一就在于:确保没有任何员工可以单方面地在生产环境中变更软件代码。DevOps 的自动化技术,如持续集成(CI)、持续交付(CD)、基础设施即代码(IaC)从表面上看,似乎已经不再遵守 SOX 法案了。本文将会探讨 DevOps 自动化如何能够让公司在保持兼容性的同时,还能从实际上提高其合规程度。
当软件控制进程从传统的手动方式转换为更加自动化的过程时,很多公司都担心检查会被忽略,平衡被打破的同时也造成公司违反 SOX 法案。在图一中所展示的传统场景中,一名开发者对某个软件进行变更后,先将代码提交进入评审流程,然后通过手工或系统进行打包准备部署。新版本被提交到变更控制流程中,准备部署到生产环境中。在管理者批准将变更实施到生产环境之后,由生产服务工程师进行部署。尽管管理该过程有很多办法,但仍无法确保评审的代码版本就是部署到生产环境的那个版本。
通过使用 CI 服务器(如图二所示),software shop 可以记录与追踪每个源代码文件的哪个版本构成了软件的相应版本。在持续部署的过程中会有停顿,人们在此时对变更进行检查,准备投入生产环境;任何未经授权的变更都不能通过该环节。
CI 使得对打包软件所使用源代码文件的确切版本进行记录与审核成为可能。software shop 同样可以具备集中自动化测试的能力,这样就能一一扫描每个软件 build,寻找安全缺陷。
另一个可能抵制自动化的领域是服务器基础设施配置。在 SEI,由于需要管理员手动查看服务器build,经常会有人反对使用 IaC 作为服务器配置。在使用 IaC 工具(Chef,Docker 或者Puppet)时,可以将基础设施配置脚本作为可验证、可测试、可信赖的软件构件,相信它能够产生可靠且能够复制的结果。IaC 让开发者有机会集中精力开发和测试配置脚本,同时允许自动化抄送测试服务器镜像,减少人为错误的风险。
每家公司甚至各公司内的每个科技/商业领域都可能会有独特的需求和限制。在特定领域,达标的自动化水平可能也会不同。通过仔细将机器布置到位,让自动化进程按部就班,这样一来控制、审核和保护公司资源的能力,还有确保遵守如 SOX 法案这样联邦法规的可能性只会增加。
OneAPM 是应用性能管理领域的新兴领军企业,能帮助运维人员进行故障预警和定位,减少业务系统维护的工作量,同时还能提供可追溯的性能数据,量化运维部门的业务价值。想告别加班熬夜,欢迎免费注册使用!
谈 DevOps 自动化时,也应该考虑到 SOX 等法案的更多相关文章
- DevOps - 自动化工具
章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...
- 技术沙龙|京东云DevOps自动化运维技术实践
自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...
- 沙龙报名 | 京东云DevOps——自动化运维技术实践
随着互联网技术的发展,越来越多企业开始认识DevOps重要性,在企业内部推进实施DevOps,期望获得更好的软件质量,缩短软件开发生命周期,提高服务稳定性.但在DevOps 的实施与落地的过程中,或多 ...
- 浅谈.NET编译时注入(C#-->IL)
原文:浅谈.NET编译时注入(C#-->IL) .NET是一门多语言平台,这是我们所众所周知的,其实现原理在于因为了MSIL(微软中间语言)的一种代码指令平台.所以.NET语言的编译就分为了两部 ...
- GeneXus DevOps 自动化构建和部署流程
以下视频详细介绍了GeneXus DevOps自动化构建和部署流程,包括通过MS Bulid来管理自动化流程,自动化的架构,以及在GeneXus Server上使用Jenkins做为自动化引擎. 视频 ...
- Python测试开发-浅谈如何自动化生成测试脚本
Python测试开发-浅谈如何自动化生成测试脚本 原创: fin 测试开发社区 前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...
- UI自动化时,解决selenium中无法点击Element:ElementClickInterceptedException
在跑自动化时,页面上有2个下拉框,两个下拉框无论屏蔽哪一段都会成功,但是同时放开跑时会报错,百度给的解释是上面的下拉框元素覆盖了下面下拉框的元素定位,才会导致报错 百度的解决办法有2种: elemen ...
- 浅谈PHP自动化代码审计技术
原文出处: exploit 欢迎分享原创到伯乐头条 0×00 由于博客实在没什么可以更新的了,我就把目前做的事情总结一下,当做一篇博客,主要是谈一谈项目中所运用的一些技术.目前市面上有不少PHP的 ...
- 浅谈DevOps
DevOps: Development和Operations的组合,是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控. 可以把DevOps看作系统开发 ...
随机推荐
- (转)JVM参数调优八大技巧
这里和大家分享一下JVM参数调优的八条经验,JVM参数调优,这是很头痛的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达10秒以上,相信通过本文的学习你对JVM参数 ...
- (转)使用SVN+CruiseControl+ANT实现持续集成之一
在前面的文章中, 介绍自己当时所在团队的处境(使用.NET开发),一个不到十个人的研发团队在保证正常开发进度同时需要并发支持四.五十个项目问题处理,经常为了程序版 本冲突.日常测试版本.发布版本提供等 ...
- NOIP2011(提高组)DAY2---观光公交(vijosP1741)
描述 风景迷人的小城Y市,拥有n个美丽的景点.由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0分钟出现在1号景点,随后依次前往2.3.4……n号景 ...
- C++ 宽字符(wchar_t)与窄字符(char)的转换
了解 长度 宽字符wchar_t的长度16位,可以用来显示中文等除英文外的其他文字, 窄字符 char 的长度 8 位,只能处理英文. 哪里可以见到 在VS2010, 2012, 2013 ...
- ZigBee NV层使用
原文转载于http://www.cnblogs.com/yqh2007/archive/2011/05/31/2065284.html 系统NV区:初始化nv数据项 osal_nv_item_in ...
- JasperReport原理解析之(一)
1. [加载原始文件]有iReport生成jrxml文件后,由jasperreport包中的类JRXml文件 加载和解析 jrxml文件. 文件解析后生成 JasperDesign对象. Jaspe ...
- jQuery ui 中文日历
jQuery ui 中文日历 <link href="css/jquery-ui-1.10.4.custom.min.css" rel="stylesheet&qu ...
- RHEL 6.5升级GCC 4.9.3
前提:保证旧版的gcc,g++存在! root用户 1. 下载源码和依赖包源码:新建目录bakwget http://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.t ...
- JSONP 含jquery 实例
前言: 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Soc ...
- 《C和指针》 读书笔记 -- 第11章 动态内存分配
1.C函数库提供了两个函数,malloc和free,分别用于执行动态内存分配和释放,这些函数维护一个可用内存池. void *malloc(size_t size);//返回指向分配的内存块起始位置的 ...