我们为什么需要 DevSecOps 和制品仓库?
首发于 Jenkins 中文社区
Helen Beal 曾经在一次讨论什么是 DevSecOps 工程师的会议上发言。令她惊讶的是,在与会人员中,许多人都没有将安全机制引入 DevOps。在与人们讨论之后,她将大家的问题总结为三类:安全机制会制造额外的隔阂;组织中的人很难理解 DevOps,因此安全机制可能会造成更多困惑;可能没有为安全机制预留空间。
当然,Helen 不同意这些观点。她在技术领域从业近20年,专注于软件开发生命周期,对于 DevOps 和DevSecOps 有一些自己的理解。她自称为 Ranger4 的 「DevOpsologist」,因为她帮助那里的组织实现 DevOps。她在世界各地分享知识,并且她将参加我们在 2018 年的 Nexus User Conference ,讨论工具仓库及其在 DevSecOps 工具链中的角色。
从高层次来看,Helen 为 DevSecOps 提出了一些重要建议:
- 确保安全是每一个人的职责
- 认识到安全人员的匹配限制。平均而言,人员比例为 100 名开发人员 : 10 名运维人员 : 1名安全人员
- 尽早移交产品进行测试和验证。缺乏足够的安全人员会造成一定的约束,移交并自动执行任务可以减少瓶颈并提前解决问题。
- 积极主动地降低风险
- 培养安全文化
Helen 花了一些时间阐述如何培养安全文化,组织在维护系统和人员行为安全时可以采用的一些关键原则和行动。
行为安全使个人和团队能够以安全的方式行事。为了培养行为安全,她建议:
- 让人们意识到,失败是一个学习机会
- 确保团队之间有共同的责任和目标
- 不要吝啬花时间做实验
- 使用可协作的平台来分享学习经验和最佳实践
- 对实验的过程进行回顾,并确保有后续
她提到了几个真实的例子,例如 Esty,LEGO 还有 P&G 的「失败奖励」以及 Spotify 用来展示和追踪失败的「失败墙」。
系统安全能够保障你的基础设施安全,她关于培养系统安全的建议包括:
- 用持续集成进行构建
- 使用部署自动化来驱动一致性和可审计性,并允许即时重新部署上一个已知的可用版本
- 用 ChatOps 来归类问题和事件
- 使用应用程序性能管理以提早发现问题并警告
- 降低出现问题波及范围,例如使用功能开关,金丝雀测试,蓝/绿环境和微服务
- 将产品需求与服务台相结合
- 养成使用混沌工程来找到失败原因的习惯
在讲述 DevSecOps 案例并说明如何灌输安全文化后,她将话题转向如何使用制品仓库。 毕竟,这是一个 Nexus 会议,制品仓库是 Nexus 的特色。
她引用了 Manfred Moser 的话:「开发软件中没有制品仓库和制造业中没有仓库是一样的。」你不会奢望在没有仓库的情况下开办工厂,软件开发也一样。制品仓库保存了你每次构建的结果,并且确保你拥有可用的构建。
制品仓库位于 DevOps 工具链的集成阶段,尽管其在构思阶段可被用来表示你想使用的工具是可用状态。
image.png如果没有开源策略,你就不应该使用制品仓库。制品仓库会自动执行你的开源策略,这样就不会像 35% 的组织一样有开源策略但忽略它。
image.pngHelen 利用 Nexus Lifecycle 来告诉开发人员如何更好地使用制品,降低风险,并协助运维和安全部门确保使用了正确的软件。
image.png最重要的是,如果你还没有用上 DevSecOps ,那你应该尽早启用。这是未来的趋势,它已经渡过了发展期成为了一个成熟的概念,也有成熟的工具来帮助你。这会花一些时间,但一定是值得的。
如果对 Helen 的整篇演讲感兴趣,可以在 此处 免费观看。
译者:李煜东