哪些问题困扰着我们?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是一种文化.一种实践,目标是加 ...
随机推荐
- Java jdk环境变量配置
首先安装jdk,现在已经是jdk 8了,也不知道能不能好好用了...
- android 中单选和复选框监听操作
单选按钮RadioGroup.复选框CheckBox都有OnCheckedChangeListener事件,我们一起了解一下. package com.genwoxue.oncheckedchange ...
- spring替代方法
总结spring替代方法的使用 MyValueCalculator类中的computerValue方法将会被替代 public class MyValueCalculator { public Str ...
- 15个最好的Bootstrap设计工具推荐
摘要:Bootstrap不单单是一个框架,更确切的说,它改变了整个游戏规则.该框架使得许多应用和网站的设计开发变得简便许多,而且它将大量的HTML框架普及成了产品. Bootstrap是由前Twitt ...
- UIImagePickerController之Block回调
方法使用:引入头文件 #import "UIImagePickerController+Block.h" 我这拖出来的两个属性 @property (weak, nonatomic ...
- Effective Objective-C 2.0之Note.01
1.在类的头文件中尽量少引入其他头文件 除非确有必要,否则不要引入头文件.一般来说,应在某个类的头文件中使用向前声明来提及别的类,并在实现文件中引入那些类的头文件.这样做可以尽量降低类之间的耦合(co ...
- iOS UI高级之网络编程(HTTP协议)
HTTP协议的概念 HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响 ...
- VIM实用基本操作技巧
文本编辑器有很多,图形模式下有gedit.kwrite等编辑器,文本模式下的编辑器有vi.vim(vi的增强版本)和nano.vi和vim是Linux系统中最常用的编辑器.有人曾这样的说过在世界上有三 ...
- Linux下安装Firefox以及更新Adobe flash
一直无法舍弃Firefox浏览器,老是提示更新,但包管理器中的版本又不是最新版,只能自己手动安装了(一下是在Ubuntu14.04环境中进行的). 1.去官网下载最新版本 2.进入下载目录,解压文件 ...
- Objective-C Foundation框架
1.字符串 OC由两个字符串:NSString和NSMutableString,NSString代表字符序列不可变的字符串,而NSMutableString则代表字符序列可变的字符串. 1.1 创建字 ...