腾讯安全平台部研发安全团队
腾讯安全平台部研发安全团队
harite
mp.weixin.qq.com
/s
多年来,软件开发以及其引发的信息安全领域总是相生相伴地持续发展。安全领域一直在适应软件研发的流程和模式,为研发出更加安全的系统
保驾护航。最近几年,国内越来越多的人开始提及以及实践
DevOps
的研发模式。腾讯内部以腾讯
CI
、
k8s
等为代表的
DevOps
平台不断发展和完
善,也有越来越多的业务开始尝试使用这种研发模式。伴随着
DevOps
在公司内的快速发展,研发安全保障的思维和技术也需要不断演化发展,其
中一个重要的思想就是
DevSecOps
,它
完全遵循
完全遵循
DevOps
的思想,将安全无缝集成到其中,使之升级成为
的思想,将安全无缝集成到其中,使之升级成为
DevSecOps
。亚马逊首席技术官、副总
裁
Werner Vogels
也在腾讯公司主办的第五届互联网安全领袖峰会(
CyberSecurity Summit2019
,简称
CSS2019
)上重点讲了
DevSecOps
的议题,
指出
“
不仅仅是安全团队,所有人都应该加入到其中,我们要有将安全纳入战略思考的思维
不仅仅是安全团队,所有人都应该加入到其中,我们要有将安全纳入战略思考的思维
”
。
本文向你介绍业界有关
DevSecOps
的思考以及我们的实践(第三章因涉及内部信息内容有所删减,如需查阅完整版本
请投简历)。
若已
了解
DevOps
可直接阅读
“
二、
DevSecOps
理念
”
,若只关心腾讯内部实践可直接阅读
“
三、
DevSecOps
试水
”
。
{
全文内容较长
全文内容较长
2
万字
万字
+
,阅读时长
,阅读时长
20
分钟
分钟
}
修订
修订
“
安全需要每个工程师的参与
”-DevSecOps
理念及思考
引子
修订
一、
DevOps
拾遗
1.1
、什么是
DevOps
1.2
、瀑布模式
vs
敏捷模式
vs DevOps
1.3
、
DevOps
工具链
二、
DevSecOps
理念
2.1
、传统安全
SDL
2.2
、
DevOps
对
SDL
的挑战
2.3
、安全领域更深的思考
2.4
、
DevSecOps
诞生
2.5
、
DevSecOps
原则
安全左移(
ShiftSecurity Left
)
默认安全(
Secureby Default
)
运行时安全(
RuntimeSecurity
)
安全服务自动化
/
自助化(
Securityas Code/Pipeline
)
利用基础设施即代码(
IaC
)
利用持续集成和交付
需要组织和文化建设
2.6
、
DevSecOps
实践
Plan
(需求和设计)
Create
(编码
/
编译)
Verify
(测试
/
验证)
Preprod
(预发布)
Release
(发布)
Prevent
(预防)
Detect
(检测)
Respond
(响应)
Predict
(预测)
Adapt
(适应)
三、
DevSecOps
试水
3.1
、
DevSecOps
工具链
Plan
(需求和设计)
Create
(编码
/
编译)
Verify
(测试
/
验证)
Preprod
(预发布)
Release
(发布)
Prevent
(预防)
Detect
(检测)
Respond
(响应)
1/17
Predict
(预测)
Adapt
(适应)
四、未来的思考
附录:更多参考资料
1.1
、什么是
、什么是
DevOps
早在
2008
年,在软件研发领域敏捷开发的国际会议上,已经有人开始反思研发流程中
Development
和
Operations
等角色之间的合作和效能问
题。
2009
年
年
,在
O'Reilly
集团举办的
“VelocityConference”
会议上,两名
Flickr
员工(技术运营高级副总裁
John Allspaw
和工程总监
Paul
Hammond
)做了题为
“
10+ Deploys per Day: Dev and Ops Cooperationat Flickr
”
的演讲,从考古的角度来说这次演讲非常有价值和纪念意义,
可以看做
开创了我们现在所说的
开创了我们现在所说的
“DevOps”
概念
概念
。其后,这个概念不断地被美国硅谷等地的一些大小互联网公司所采用和发展,创造出了一种新
的软件研发思维模式和行动指南。
维基百科上,
DevOps
(
Development
和
Operations
的组合词)是一种重视
“
软件开发人员(
Dev
)
”
和
“IT
运维技术人员(
Ops
)
”
之间沟通合作的文
化、运动或惯例。透过自动化
“
软件交付
”
和
“
架构变更
”
的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
现在,即使对
DevOps
有过了解甚至是已经在使用这种研发模式的人来说,也非常难以定义到底什么是
DevOps
。有些观点认为,
DevOps
是区别
于传统的
瀑布模式
瀑布模式
,基于
敏捷模式
敏捷模式
,并将敏捷思想和实践从开发扩展到运维(也有激进的观点认为它完全不同于这两种研发模式),
是一种新的
是一种新的
思维模式和行动方法
思维模式和行动方法
。它的
目的是为了提升整个研发效能,进行更便捷、更快速、更可靠的交付,从而提高产品竞争优势
目的是为了提升整个研发效能,进行更便捷、更快速、更可靠的交付,从而提高产品竞争优势
。
DevOps
模糊了以往研
发模式中开发、测试、运维等岗位和角色的界限,
加强了他们之间的协作,通过流水线和一系列的自动化机制、成熟可伸缩的基础设施(如云)
加强了他们之间的协作,通过流水线和一系列的自动化机制、成熟可伸缩的基础设施(如云)
等,使开发人员获得更高的效能,可以更加频繁且快速的将代码变为产品,并从这种快速中获得持续不断的反馈和验证,也获得更高的可靠性
等,使开发人员获得更高的效能,可以更加频繁且快速的将代码变为产品,并从这种快速中获得持续不断的反馈和验证,也获得更高的可靠性
。
如下图示经常会被用于对
DevOps
的示意。
图:
DevOps
理念示意
1.2
、瀑布模式
、瀑布模式
VS
敏捷模式
敏捷模式
VSDevOps
让我们对比下瀑布模式、敏捷模式、
DevOps
三种方式,可能更利于理解他们
在表面上的变化
在表面上的变化
。
2/17图:从代码角度的对比
图:从流程角度的对比
实际上,上述对比
只能说明表面上的变化
只能说明表面上的变化
。为了能够达到
DevOps
的目标:更便捷更频繁地进行更可靠的交付,除了思维模式以外,
DevOps
需要
需要
一些技术和工具来支撑
一些技术和工具来支撑
,也是得益于一些基础设施和工具等的发展和成熟,越来越多的公司才得以来践行
DevOps
。
1.3
、
、
DevOps
工具链
工具链
从目前业界的最佳实践来看,这其中主要包括几个关键的东西:
持续集成
持续集成
(
Continuous Integration
,俗称
“CI”
)、
持续交付
持续交付
(
Continuous
Delivery
,俗称
“CD”
)、
微服务
微服务
(
Microservices
)、
自动化测试
自动化测试
、
基础设施即代码
基础设施即代码
(
Infrastructureas Code
,俗称
“IaC”
,又隐含包括了
虚拟
虚拟
化
化
、
容器
容器
、
自动编排
自动编排
、
配置即代码
配置即代码
等技术
“安全需要每个工程师的参与”-DevSecOps理念及思考
文档预览
中文文档
17 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思安 于 2023-01-15 17:30:34上传分享