DevSecOps是你的组织在DevOps旅程中的另一个步骤。将你的转型分成几个阶段,有利于直接与开发人员和其他团队成员合作。分阶段的方法也允许你从那些受变化影响的人那里获得反馈,并在必要时进行迭代。
以下是DevSecOps转型的前三个阶段。
第一阶段:分析、教育和培训
在第一阶段,你要做一些必要的初步工作,使DevSecOps成为你DevOps之旅的下一步。
如果你从瀑布式的软件开发生命周期(SDLC)模式转变过来,这个阶段对你的团队更加关键。实现这一飞跃可能需要你在DevOps培训上投入更多的时间和精力,以弥补你当前流程和DevSecOps之间的知识差距。
分析你的开发流程的成熟度
无论DevSecOps只是你DevSecOps旅程中的下一步,还是你从瀑布式SDLC中直接进入DevSecOps的最初尝试,分析你的软件开发流程的成熟度都是关键的一步。一个有效的分析包括。
- 记录任何流程的当前状态
- 收集关于你当前开发流程的任何报告数据
- 通过采访主要的开发人员,确定你的开发流程中哪些是有效的,哪些是无效的
为你的组织定义DevSecOps
DevOps和现在的DevSecOps对人们来说可能意味着很多东西。软件供应商的营销和开源软件(OSS)社区都对DevSecOps的定义做了自己的解释。让你的团队免受任何误解,并记录下你对DevSecOps的定义。一个清晰的定义包括
- DevSecOps对你的组织意味着什么
- 转向DevSecOps后的预期结果
- 你的组织正在实施的工具和流程,以确保员工的成功
撰写定义不仅仅是为你的DevOps向DevSecOps转型创建一个项目章程,它还能确定你的真正方向。
培养一种DevSecOps文化
你不能购买DevSecOps。你的经理和关键的技术团队成员需要共同培养DevSecOps文化理念,为你的DevOps向DevSecOps转型奠定基础。
以下是DevSecOps文化的一些重要元素,在转型过程中和转型后都要加以培养。
持续的反馈
远程DevSecOps团队在持续反馈方面有其优势和劣势。经理的角色不是简单地对DevSecOps团队的表现提供反馈。相反,反馈的目的是使团队能够更有效地协作。开源聊天工具为DevSecOps团队的实时协作提供了必要的即时沟通。
基于容器的架构
DevSecOps为转向基于容器的架构搭建了舞台,这可能是DevOps团队的另一个文化变革。容器的正确和强大的实施改变了开发人员和运营文化,因为它改变了架构师设计解决方案的方式,程序员创建代码,以及运营团队维护生产应用程序。
团队自主性
DevSecOps在你的组织中的任何级别都没有微观管理的地方。DevSecOps文化的一个标准部分是使你的团队能够选择他们的工具,并根据他们的工作来创建流程。DevSecOps还提倡分布式决策,支持更大的灵活性和创新。
DevSecOps培训
为你的开发人员提供安全培训是使安全成为每个人工作的一部分的另一个步骤。培训可以采取内部开发人员培训的形式,如午餐学习,也可以包括由组织的培训部门进行的更正式的培训课程。
根据你的安全野心(和预算),总是可以选择让你的DevOps团队成员获得DevSecOps供应商认证,例如DevOps Institute的DevSecOps Foundation认证或Practical DevSecOps的Certified DevSecOps Professional(CDP)。
第二阶段:将安全纳入你的DevOps生命周期
在DevOps向DevSecOps转型的第二阶段,你将安全流程和工具整合到你的DevOps生命周期中。如果你的企业已经在使用DevOps工具链,这个阶段将安全工具整合到你现有的DevOps工具链中。这个阶段也是对你的持续集成和持续交付/部署(CI/CD)工具链进行安全审计的时候,以确保安全。
假设你的组织从瀑布式的SDLC或其他传统的开发流程走上了DevSecOps的快车道。在这种情况下,安全需要成为你的CI/CD工具链构建的一个要求。
第三阶段:将自动化引入你的DevOps生命周期中
自动化阶段包括分析、推广和实验。将自动化应用于日常软件开发任务,如质量保证和安全检查,并不是一门精确的科学。期待你的高管和开发团队之间的推拉。高管们往往希望尽可能多地实现自动化,甚至达到极致。开发人员和系统管理员则会更谨慎地对待自动化。
自动化是DevSecOps的基础,因为它消除了一些日常构建任务和安全检查的人为错误的可能性。如果你正在构建和运行云工作负载,你需要自动化。
自动化工具实施的好坏决定了你能多有效地执行安全实践和促进安全签收。
这里有一些将自动化引入你的DevOps工具链的提示。
- 在你的管理层和利益相关者中消除这样的观念,即你将能够与你的工具链一起将每项任务自动化。与你的利益相关者接触,了解他们的自动化优先级,并将这些反馈纳入你的DevOps团队的自动化战略。
- 与你的开发团队接触--不仅仅是团队领导和经理--了解自动化如何能帮助他们完成工作。以同情心倾听他们的关切,以明确的答案回答他们的问题。
- 创建一个自动化路线图,标明你将如何把自动化引入你的工具链。从小处着手,在你的工具链中扩展自动化。寻求一个小项目,如一个补丁或功能更新,以测试你的实施计划。
- 为你的一个DevOps团队自动化一个构建、质量保证或安全检查,作为一个概念验证项目。记录你在这个小项目中的发现,特别是所学到的经验和任何其他来自DevOps团队成员在项目中的反馈。
- 向你的利益相关者和内部DevOps社区传达成功的经验和教训,是的,甚至是试点项目中的错误。
你可以利用你现有的DevOps卓越中心或DevSecOps卓越中心作为一个机会,从整个组织的员工那里收集关于自动化如何影响他们工作的意见。否则,在你的开发和运营组织中寻找正式和非正式的渠道来获得投入。例如,根据你的企业文化,非正式的午餐和学习、小组聊天频道或团队会议可以是收集意见的理想选择。