文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

DevOps与DevSecOps有何区别?

2024-12-03 03:10

关注

[[407274]]

DevOps与DevSecOps就是滥用与误用之下造成不少负面影响的典型案例。自2009年被首次提出以来,DevOps所涵盖的内容已经发生过多次迭代,其中的负面含义往往源自交流背景中种种不切实际的乌托邦元素、以及难以真正落地的理想假设。尽管不少组织坚称自己以DevOps为中心,但却几乎没多少人能真正准确地做出定义。没有正确实践作为前提,DevOps向团队及企业做出的承诺也将无从谈起。

DEVOPS与DEVSECOPS之间有何区别?

DevOps的实现依赖于五大核心组件: 敏捷框架、 一次构建/随处运行的开发方法、一切即代码、自动化、沟通与协作。

在全面普及之后,DevOps能够加快部署速度、降低故障率并增强恢复能力。而这一切都将帮助团队乃至企业打造出周期更短、适应性更强、质量更好的产品。但这也给我们提出了新的问题——如何把安全考量融入进去?DevSecOps的重点,正在于以符合安全要求的方式扩展DevOps核心原则。

理解DevSecOps的一种重要方法,在于拆分DevOps核心组件并审视适合在哪里插入安全要素。

(1) 敏捷框架——敏捷方法仍然是当今软件开发生命周期(SDLC)的主要内容。与瀑布式开发方法相反,敏捷开发更强调短周期加小变化的组合,确保组织能够针对客户反馈做出快速反应。

然而,敏捷框架面临着安全隐患。运营反馈从何而来?是否符合安全要求?这类框架在加快开发周期方面确实表现不错,但却又常常受制于运营与安全要求。开发人员希望将运营与安全工作交给支持性工具负责,自己则快速行动、一路奋勇向前。

总而言之,敏捷专注于提升开发人员的行动速度,也取得了不错的效果;但其中的重点只有开发本身,一切运营与安全元素都成为事后才考虑的元素。

(2) 一次构建、随处运行——容器技术让SDLC更上一层楼。作为一项真正具有颠覆性的技术,容器使得开发人员能够独立于运营资源之外进行编码、构建、运行以及测试。如今,由于开发人员不必分神设置运营环境,他们可以将更多精力集中在测试、安全与扩展方面。利用容器技术,一切都可由Dockerfile所容纳并实现随处运行。在提交最终镜像之前,开发人员根本不需要接触运营工作;但在整个过程中,运营仍然始终存在、在不知不觉中为开发者提供支持。

虽然存在这种开发与运营之间的隔绝,容器本身仍然是一项重大成就,而容器的起效又离不开编排工具的引导。

到这里,我们要请出下一位重量级嘉宾——Kubernetes。

Kubernetes使组织得以高效管理、扩展、观察并接入容器。它将Dockerfile的需求抽象为可以管理及扩展的明确对象。这种声明式抽象要求开发人员与运营人员开展沟通,进而有效运用Kubernetes。随着时间推移,双方的交流将逐渐升级、最终将安全问题纳入进来。

(3) 自动化——那么,安全或者运营团队又该如何要求、或者说约束开发人员?

通过在不影响开发速度的情况下向开发人员提供直接反馈,自动化成为实现DevSecOps的关键所在。单元测试、代码分析与镜像扫描已经成为可轻松被添加至持续集成(CI)管道的常见工具,即时向开发人员通报必要修改。在开发团队的协作下,这些变更可以快速被集成至现有管道当中。运营与安全团队应该明白,他们越早提供自动化反馈机制,开发人员就能越早适应这种新的协作模式。

这一点对安全团队来说极为重要。在组织当中,安全团队往往被视为一种“令人心烦”的存在,因为这帮家伙总在强调根本不可能实现的所谓“100%安全系统”。但行之有效的DevSecOps可不是这么简单粗暴。

借助新的工具与最佳实践,安全团队可以为开发人员提供稳定且安全的基础镜像,由此不断提升代码质量。安全团队还可以在管道中引入自动检查机制,监控一切包含权限提升行为的YAML文件、未匹配网络策略的命名空间或者存在漏洞及风险的容器镜像。

(4) 一切即代码——Kubernetes及其他编程语言的声明性质,极大提高了基础设施与应用程序的可重用性与可理解性。YAML文件将帮助各团队准确理解容器如何才能发挥预期作用。时钟时间、卷挂载以及secret注入等一切行为都可通过这个文件及注释进行观察。这种方法还让代码成功呈现为文档的形式,以供随时进行版本控制并实现迭代变更。

但即使有了最新、最好的工具,如果无法正确记录和编目具体问题,一切努力仍然可能是徒劳的。没有清晰的文档,将很难跨团队分享经验教训。而在尝试新的管道配置时,各团队掌握的经验教训很可能对其他团队有着决定性的指导作用。因此,请使用代码与版本控制系统充分展示变更内容,并允许各方据此开展讨论。否则随着单一团队的快速推进,知识共享体系将土崩瓦解,各团队间再难开展充分交流。

(5) 沟通与协作——如果团队和个人间不进行充分沟通,那么一切代码、应用程序与安全变更都将毫无意义。而IT部门中最常忽视的一大沟通要点,在于对意图的明确解释。

DevOps与DevSecOps之所以难以发挥其全部潜力,一大核心原因就是相关行动的意图往往未被各方正确理解。安全团队并不是要阻碍开发工作,他们只是在完成自己的本职工作并保证应用程序安全。而开发团队虽然也关心安全性,但他们面前的头号难题永远是如何在限期之内让新功能顺利上线。

组织必须努力弥合各团队之间的差距,专注于吸取教训,鼓励合理的尝试失败,并设定出切合实际的后续目标。从文化角度来看,这种变化通常由高层自上而下推动。在重视这种方法的组织当中,开发、运营及安全团队会乐于讨论哪些意图较合理、哪些不合理,并愿意站在对方的立场上考虑问题。

DEVSECOPS将向何处去?

总而言之,DevSecOps向我们提出了以下几项重点要求:

请注意,本文没有明确指定任何具体工具。DevSecOps代表的是一种文化变革,其背后代表的思维方式转变不限于任何特定工具。当然,大家也应尽可能采用支持协作解决问题的工具,包括保证其具有良好的可移植性、可观察性并提供简单易懂的说明文档。最重要的,还有获得团队的支配以建立起可跨团队共享的上下文素材。

结合种种成功案例与理论层面的巨大潜能,相信DevSecOps这波不断发展的浪潮终将成为我们手中的有力武器。

 

来源:至顶网内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯