敏捷与安全不可兼得吗?看完这篇文章后,我想说:未必!
摘要:敏捷与安全似乎矛盾,但如何共存?本文将为你解读从“应用敏捷”到“应用敏捷+安全”的实现路径。
起初,企业以传统的瀑布式研发模式把软件开发过程划分为需求、分析、设计、开发、测试等不同的流程。这些流程有着严格的先后次序之分,只有当前面的流程结束之后,下一个流程才能开始运转。这种开发方式好似瀑布的下落,由此命名为瀑布模型。
但随着业务的发展,研发模式也在发生了不断的演进,传统基于阶段的瀑布研发过程,导致当开发对于迅速变化的业务响应严重滞后,为此业界倡导通过敏捷的方式,快速迭代,小步快跑,持续集成,主动拥抱变化。
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
如今,随着移动互联网的迅速发展,应用从需求到上线的 TTM(Time to market)越来越短,普遍存在的开发和运维的“混乱之墙”成为了断裂点,为此业界开始提倡 DevOps 的协作模式,敏捷精益的理念进一步延伸到运维侧。同时,随着云原生基础设施的建立和 CICD 技术的发展,DevOps 已广泛得应用到各个企业。
从“应用敏捷”到“应用敏捷+安全”
但是随着数字化席卷各行各业,应用进入了我们生活的方方面面:人与人的互联、物与物的互联、人与物的互联正在成为现实,应用对于人和社会的安全威胁也逐日提升。由于应用的安全防护和安全意识还普遍滞后,为此以 Built-In Security 和自动化为基本理念的 DevSecOps 开始得到重视。DevSecOps 的理念在将安全融入敏捷过程中,即通过设计一系列可集成的控制措施,增大监测、跟踪和分析的力度,优化安全实践,集成到开发和运营的各项工作中,并将安全能力赋给各个团队,同时保持“敏捷”和 “协作”的初衷。在这一理念中,企业的整个 IT 团队目标统一,即在保障敏捷开发的基础上,共同背负起安全的责任。
DevSecOps 引入自动化安全
DevSecOps 实际上是 DevOps 的延续和演进。云原生技术加持下的 DevOps 使得应用开发和上线周期越来越短,传统的安全团队上线前介入的模式已经严重滞后,不仅不能有效的进行系统的安全防护,而且也会影响应用的交付速度。DevSecOps 的最关键理念就是强调在应用的全生命周期都内嵌安全,同时提出安全的检测和防护做到尽可能的自动化,将自动化融入安全,实现了质量、安全和速度的最佳平衡。安全应尽可能做到全场景,从基础设施、代码、镜像、到架构,同时需要做到覆盖应用的全生命周期,从开发态、运行态直至运维态。
DevSecOps 需要安全工具自动化以及平台化
在传统的研发过程中,研发与安全割裂,主要是因为安全影响研发效率,但自动化的安全工具可以适用当前的敏捷开发需求。基于安全与 DevSecOps 的强烈诉求,华为云正在逐步的将华为 20 年来深耕安全的能力通过云服务的形式外溢,让更多的企业能共享华为对于安全的先进理念和技术实践,华为云通过让在 DevOps 的每个环节都通过规范、方法论和自动化的安全服务,来实现 DevSecOps 的理念,如在创建应用阶段安全框架和编码规范,嵌入 IDE 插件的代码检查等。下面我们详细逐一来看华为云所实现的安全工具自动化以及平台化。
平台化:全流程云原生 DevSecOps 平台
华为云提供云原生 DevOps 平台:华为云 DevCloud 软件开发平台。华为云 DevCloud 在业界具有较高的影响力,得到了专业咨询机构和客户的官方认可,在全流程、支持的技术栈与安全可信角度有较强的竞争力,华为云 DevCloud 为客户提供了从需求/规划到运维的多个服务。
自动化工具与安全无缝连接
代码托管服务是 DevCloud 为客户提供的稳定、安全的代码管理服务,该服务同时也支持了华为内部 1100 亿行的代码管理,多个安全可信的措施,多仓协同和高并发。代码分析和代码检查服务,也是华为自主研发的代码静态检查服务,沉淀了华为多年的高质量代码检查规则集,支持的语言多,标准多,同时提供了自动化辅助缺陷修复的特性。
代码构建服务,为客户提供了配置及代码的构建服务,支持丰富的构建语言和框架,同时通过多种技术实现 10 倍+的构建加速,并提供封闭的构建环境,保证构建阶段的可信安全。云测服务,为客户大规模,高并发,全流程的智能测试服务,提供测试管理,性能测试,API 测试,移动测试等多种专业测试服务,并通过测试设计的智能化,测试执行的智能化和测试分析的智能化,提升测试的效率和拦截问题的比例
同时,华为云在 DevOps 的基础上,陆续增加安全设计,安全合规,安全检查,和安全防护的专业服务,通过服务化的接口和华为云 DevCloud 进行深度集成。同时,在已有的运行、运维安全的基础上,进一步全方面的加强网络安全、数据安全、应用安全与数据库安全,让云原生的应用生得安全,活得安全。
而对于企业如何更好的实施 DevSecOps,我们有以下几个实践:
安全可信应该是每个人的责任,而不仅仅只是安全团队关心的事情。
重视架构解耦,架构解耦,低依赖,安全风险和影响范围更可控。
重视自动化和知识协同,不断提升效率,通过知识分享,组织和个人持续改进。
努力打造全功能团队,团队自治,破除部门墙,对商业和用户负责。
安全可信+高效敏捷
从概念提出到现在,云原生所带来的敏捷、开放、标准化、轻量、松耦合与灵活的优势是企业数字化转型升级的基础必选项。面对日益严峻的安全威胁和安全影响,云原生加持下的 DevSecOps 理念和实践,将安全自动化内嵌到应用的全生命周期,在保证安全可信的同时,也依然能够发挥云原生所带来的高效与敏捷。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/e274ac25fea72cbac0f9c5d8e】。文章转载请联系作者。
评论