哪些问题困扰着我们?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是一种文化.一种实践,目标是加 ...
随机推荐
- Python学习教程(learning Python)--2.3 Python自定义函数传参函数设计
Python里自定义子函数时,可以在调用时携带一些参数到子函数里去处理.具体用法结构如下: def func(arguments): statement statement etc. 定义子函数一定要 ...
- flask程序部署在openshift上的一些注意事项
https://www.openshift.com/blogs/how-to-install-and-configure-a-python-flask-dev-environment-deploy-t ...
- java的基本数据类型特征
java的数据类型分为基本数据类型和引用数据类型. 基本数据类型分为数值型.字符型(char).布尔型(boolean) 数值型变量 1.整数型 类型 占用存储空间 表示范围 byte 1字节Byte ...
- bzoj 1862/1056 [HAOI2008]排名系统
原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1862 很恶心的 一道题,我也不晓得自己是第几次写这题了%>_<%. 写了两种方 ...
- ios中怎么处理键盘挡住输入框
//此前要遵循UITextFieldDelegate代理.并且设置该文本框为当前控制器的代理 //开始编辑的时候让整个view的高度网上移动 - (void)textFieldDidBeginEdit ...
- [超简洁]EasyQ框架-应对WEB高并发业务(秒杀、抽奖)等业务
背景介绍 这几年一直在摸索一种框架,足够简单,又能应付很多高并发高性能的需求.研究过一些框架思想如DDD DCI,也实践过CQRS框架. 但是总觉得复杂度高,门槛也高,自己学都吃力,如果团队新人更难接 ...
- Silverlight 调用 aspx 相关文件
private void Button_Click_1(object sender, RoutedEventArgs e) { WebClient wb = new WebClient(); wb.D ...
- c/c++常用代码--string trim
typedef std::basic_string<TCHAR> tstring; inline static void trim(tstring& s){ s.erase( ...
- H5 input type="search" 不显示搜索 解决方法
在IOS(ipad iPhone等)系统的浏览器里打开H5页面.如下写法: <input type="search" name="search” id=" ...
- 013--VS2013 C++ 地图贴图-其它格式图片
//--------------------------------------------InitInstance() 函数------------------------------------- ...