哪些问题困扰着我们?DevOps 使用建议
【编者按】随着 DevOps 被欲来越多机构采用,一些共性的问题也暴露出来。近日,Joe Yankel在「Devops Q&A: Frequently Asked Questions」一文中总结了近段时间参与各种活动中经常遇见的几个问题。本文系 OneAPM 工程师编译整理:
从11月至今,在维护 DevOps 博客、参加网络研讨会与各种会议的过程中,笔者遇见了很多有关 DevOps 的各方面问题,包括变更管理、安全性与具体方法。本文将就几个频繁被问及的问题进行回答。

1. 变更与发布管理与 DevOps 如何集成?
首先,变更一直是 DevOps 文化之一。[Gene Kim] (https://en.wikipedia.org/wiki/Gene_Kim)在 “The Three Ways”中描述了支撑 DevOps 的3个原则,他表示,DevOps 的一个核心原则(第2条)就是增强 feedback loop(反馈环)。通过持续反复的反馈回路,开发者能够快速响应客户需求。feedback loop 是变更管理发挥作用的环节。一般来讲,在情况脱离预期时就会对变更管理,或者由客户(内部或者外部客户)决定变更应当进行,以增强商业价值。事实上,这种类型的变更是良性的,开发者应当促成这种变更。
在没有 DevOps 并缺少持续集成(CI)与持续交付(CD)激励的情况下,正式发布之前,没人会对变更提出要求。但随着 CI 与 CD 到位,release 会更快速更频繁。从而,客户有机会提前发现是否需要变更。快速提交能让他们更迅速地评估产品与自身需求,从而反过来促成需求的变更。事实上,没什么比能亲眼看到、亲手使用更加清晰产品需要变更的方向。
2. 在这样一个迭代环境/流程中,如何确保一直兼顾安全性需求?在 DevOps 环节中是否需要专门的安全人员?
安全性在整个 DevOps 环节中的优先级一直是最高的。下图是用来描述 DevOps 典型的文氏图(Venn diagram):
实际上,人们经常忽视安全性,甚至没有画出这一环节。在描述安全的 DevOps 时,SEI's CERT Division中推荐使用的图表如下:
必须时刻考虑到安全性问题,同时整个 DevOps 环节都应当有安全专家的参与。不能指望开发或支持团队在项目中作出安全决策。如果对公司来说,安全性举足轻重(并且近期一直如此),那么专门的安全/隐私专家就非常必要。专业的开发或运营人员应当精通以下方面:
- 数据隐私性
- 入侵侦测
- 入侵载体
- 通用漏洞列表(CVEs)
- 安全性封装
- 身份验证
- 授权
- 安全标准合规性
微软 SDL(安全开发周期)列出了在一个项目周期中引入安全性的方式。在整个项目周期中,至少应当有一名专业的安全人员与 DevOps 团队紧密合作,他会考虑其他人不会考虑到的安全性相关问题,结果显然喜闻乐见。
3. DevOps 是否只能用于敏捷开发中,还是适用于任何种类的开发周期?
DevOps 的确是敏捷开发的延伸,但它更多是一种文化或理念(请参看第一个问题中提到的「The Three Ways」)。无需采用敏捷开发便可使用 DevOps,因为很明显使用 DevOps 会比普通的SDLC(软件开发生命周期)更为高效,但单独使用 DevOps 可能困难度更高一些。敏捷开发当然比其他的 SDLC(例如瀑布开发)对 DevOps 帮助更大。不使用敏捷开发仍能达成目的,但使用后效果更佳。
原文链接:Devops Q&A: Frequently Asked Questions
本文系 OneAPM 工程师编译整理。想阅读更多技术文章,请访问 OneAPM 官方博客。
哪些问题困扰着我们?DevOps 使用建议的更多相关文章
- 打通 DevOps 任督二脉 ,CODING 2.0 制品库全新上线
CODING 在近期的 KubeCon 2019 大会上发布了 CODING 2.0,同时发布了最新功能--制品库.CODING 不断完善 DevOps 工具链,旨在持续提升研发组织软件交付的速度与质 ...
- 成熟度模型:企业规模化推广敏捷和DevOps利器
摘要: 本文介绍了成熟度模型在软件开发行业的应用,重点阐述了成熟度模型对于敏捷和DevOps在企业中进行规模化推广的价值,探讨了成熟度模型的设计原则,并对于如何明智使用成熟度模型给出了建议. 导言 在 ...
- 一文读懂云上DevOps能力体系
简介: 阿里云ECS自动化运维套件架构师,深度拆解云上运维能力体系建设:自动化运维等级金字塔.自动化运维的进阶模式.DevOps的基础核心.云上标准化部署三大能力-- 序言 云计算行业已经有十多年的发 ...
- 懂说话,让冲突、尴尬时刻都bye-bye
回忆一下自己从小到大的成长历程,你容不容易交到新朋友?在不熟悉的社交场合中,你是否也曾面临坐立难安.不知从何聊起的窘境?事实上,无论身处学校或社会,担任职务是基础或高阶,终其一生都会派上用场的能力,就 ...
- Yapi学习笔记
. 下载源码:https://github.com/YMFE/yapi 2. 安装MongoDB数据库,下载地址:链接:https://pan.baidu.com/s/1bZKlcy 密码:ah3n ...
- Spring框架的核心概念是什么?需要掌握的知识点都有哪些?
Spring其主要精髓 就是IOC和AOP.掌握好了这两点对于理解Spring的思想颇有意义. IOC(英文 Inversion of Control)就是控制反转的意思.就是把新建对象(new Ob ...
- [转载]逐步建设企业DevOps能力
当软件行业进入互联网时代,市场对软件产品和服务的交付提出了更高的要求:不仅要快速实现需求,而且要快速发布上线,并且必须保证业务可靠.高效运行.为了满足这些要求,IT组织需要强有力的流程.技术和人员作为 ...
- 架构设计哲学【三种方式:支持DevOps的原则】
三种方式:支持DevOps的原则 2012年8月22日作者Gene Kim 45条评论 这篇文章是杨波老师分享的一篇文章:这几年对他架构影响最深的一篇文章.主要描述是关于DevOps的,但对系统架构同 ...
- DevOps团队交付了什么?
一.简介 "你在团队里是做什么的?" "DevOps." "DevOps是什么呢?" "DevOps是一种文化.一种实践,目标是加 ...
随机推荐
- 小米miui5系统的webview在处理动画事件transitionEnd事件时,竟然要用transitionend才行
一般的安卓系统用的是webkitTransitionEnd, 而小米的系统我用了webkitTransitionEnd事件无法执行,只能用transitionend才会被执行,怪
- PHP 学习笔记 01
例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ...
- [转]Oracle 10g及pro*c相关问题及解决方法(转)
Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用 ...
- 【Javascript】: for循环中定义的变量在for循环体外也有效
for循环中定义的变量在for循环体外也有效 <script> (function(){ var a = 111; for(var i=0;i<5;i++){ var carl = ...
- 2天驾驭DIV+CSS (技巧篇)(转)
这是去年看到的一片文章,感觉在我的学习中,有不少的影响.于是把它分享给想很快了解css的兄弟们.本文是技巧篇. 基础篇[知识一] “DIV+CSS” 的叫法是不准确的[知识二] “DIV+CSS” ...
- Python字节流打包拆包
Python提供了一个struct模块用于打包拆包 -------------------------------------------------------------------------- ...
- swift someObject == nil 如何实现
以前的编程经验告诉我们判断一个对象是否为空或者是否实例化可以这样 if(someObject == nil){ //do something }else{ } 但是在Swift中这样是不行的,然后我在 ...
- 【ConnerStone】SVN代码管理 - 基本使用
第一步,链接服务器,创建代码管理仓库 第二步,输入服务器的配置,链接服务器(例子是以svn:// 为例子) 第三部 ,链接成功后,SVN的基本界面组成 第四步 从仓库中check out你需要的项目 ...
- objective-c自学总结(一)---面向对象
本人大二本科在读,利用一个月多一点的时间对OC语言基础进行了自学,在下一阶段UI学习开始之前, 对这一阶段的自学进行一些总结.在此特别感谢刘晓斌学长和无线互联3G学院 首先说一下对OC的整体感觉,这是 ...
- Capacity Scheduler 队列设置
先附一个官网地址 Capacity Scheduler是YARN中默认的资源调度器. 相关参数配置: 资源分配相关参数 ``` (1) capacity:队列的资源容量(百分比). 当系统非常繁忙时, ...