DevOps 3355

— 持续交付的三个基础能力

— DevOps实践指南的三步法

— 独角兽项目的五大理念

— 加速的五组能力

为软件的发布创建一个可重复且可靠的过程

这个原则是我们写这本书的一个目标:让软件发布成为一件非常容易的事情。事实上,它的确应该是件很容易的事,因为在发布之前,对发布流程中的每一个环节,你都已经测试过数百次了。它就应该像单击一个按钮那么容易。这种可重复性和可靠性来自于以下两个原则:(1)几乎将所有事情自动化;(2)将构建、部署、测试和发布软件所需的东西全部纳入到版本控制管理之中。

归根结底,软件部署包括三件事:
❑ 提供并管理你的软件所需要的运行环境,这包括硬件配置、所依赖的软件、基础设施以及所需的外部服务;
❑ 将你的应用程序的正确版本安装在其之上;
❑ 配置你的应用程序,包括它所需要的任何数据以及状态。

对于应用程序的部署,应该由版本控制系统中的全自动化过程来完成。通过保存在版本控制系统或数据库中的必要脚本和状态信息,应用程序的配置也可以是一个全自动化过程。显然,硬件是无法纳入版本控制的,但利用廉价的虚拟化技术和像Puppet这样的工具,这类支撑过程也可以全部自动化。

三步工作法:DevOps的基础原则

《凤凰项目》把三步工作法作为基础的原则,并由此衍生出了DevOps的行为和模式。

图1-4 三步工作法

(来源:Gene Kim在IT Revolution Press博客上发布的“三步工作法:DevOps的基础原则”,访问于2016年8月9日,http://itrevolution.com/the-three-ways-principles-underpinning-devops/)

第一步,实现开发到运维的工作快速地从左向右流动。为了最大程度地优化工作流,需要将工作可视化,减小每批次大小和等待间隔,通过内建质量杜绝向下游传递缺陷,并持续地优化全局目标。

通过加快技术价值流的流速,缩短满足内部或者外部客户需求所需的前置时间,尤其是缩短代码部署到生产环境所需的时间,可以有效地提高工作质量和产量,并使企业具有更强的外部竞争力。

相关的实践包括持续构建、集成、测试和部署,按需进行环境搭建,限制在制品数量,构建能够安全地实施变更的系统和组织。

第二步,在从右向左的每个阶段中,应用持续、快速的工作反馈机制。该方法通过放大反馈环防止问题复发,并能缩短问题检测周期,实现快速修复。通过这种方式,我们能从源头控制质量,并在流程中嵌入相关的知识。这样不仅能创造出更安全的工作系统,还可以在灾难性事故发生前就检测到并解决它。

及时发现并控制这些问题,直到拥有有效的对策,可以持续地缩短反馈周期和放大反馈环,这是所有现代流程优化方法的一个核心原则,能够创造出组织学习与改进的机会。

第三步,建立具有创意和高可信度的企业文化,支持动态的、严格的、科学的实验。通过主动地承担风险,不但能从成功中学习,也能从失败中学习。通过持续地缩短和放大反馈环,不仅能创造更安全的工作系统,也能承担更多的风险,并进行试验帮助自己比竞争对手改进得更快,从而在市场竞争中战胜他们。

作为第三步的一部分,我们能够让工作系统事半功倍,将局部优化转化为全局优化。另外,不管是谁参与了工作,所有经验都可以持续地积累,组织里的人都可以相互借鉴彼此的经验和智慧。

埃瑞克和玛克辛走回桌旁。“有五大理念。”埃瑞克开始说。整个桌子的人都把注意力转向了他。“我已经告诉过你们关于局部性和简单性的第一理念。我们需要做好设计,使系统以及构建它们的组织具有局部性。此外,做任何事情都需要简单性。

我们要把复杂性控制在内部,无论是在我们的代码中、组织中,还是在流程中。外部世界已经够复杂的了,所以我们不能容忍复杂性存在于自己可以控制的事物中!我们必须让我们的工作变得容易。”

玛克辛坐下来,打开她的笔记本计算机(很欣慰这次她记着带来了),然后开始做笔记。

“第二理念是专注、流动和快乐。这是关于我们日常工作的感觉。我们的工作是以无聊和等待别人为我们做事为标志吗?我们是否盲目地在整体系统的一小块上工作,只有在部署的时候才看到工作的结果,而这时一切都会崩溃,随之而来的是救火、惩罚和筋疲力尽?还是说,我们小批量地工作——理想情况下是单件流——可以快速且持续地得到工作反馈?这样我们就能保持专注和流动,不断挑战、学习、发现,精通自身领域,甚至变得快乐。”

他满脸得意地环视着桌子:“这就是你们现在能得到的。等你们准备好了,我再分享另外三个理念。”

“你在开玩笑吧?”玛克辛说,“你是在给我们表演尤达大师或宫城先生2的某种套路吗?来吧,至少告诉我们其他理念的名字吧!”

2尤达大师和宫城先生分别出自电影《星球大战》和《龙威小子》,都是良师的形象。——编者注

“你们真幸运,年轻人,我没有时间争论,酒吧里都排起长队了,我需要去处理。”他说,“第三理念是改进日常工作。反思丰田安灯拉绳教给我们的东西,必须重视对日常工作的改进,而不是日常工作本身。

第四理念是心理安全,我们要让谈论问题变得安全,因为解决问题需要预防,预防需要诚实,而诚实需要摆脱恐惧。在制造业,心理安全与人身安全同样重要。最后,第五理念是以客户为中心,我们要无情地质疑某样东西对客户是否真的重要,比如他们是否愿意付钱给我们,还是只对我们的职能筒仓有价值?”

埃瑞克喝完啤酒,微笑着说:“祝你们好运。下周见。”

“等等,等等,就这些?”玛克辛说,但埃瑞克已经走了。玛克辛低头看着快速记下的笔记:

第一理念——局部性和简单性

第二理念——专注、流动和快乐

第三理念——改进日常工作

第四理念——心理安全

第五理念——以客户为中心

​研究揭示了24个关键能力,它们驱动着软件交付效能的改进,并经由统计证明其重要性。我们把这些能力归为5个类别:

•   持续交付

•   架构

•   产品与流程

•   精益管理与监控

•   文化

DevOps 3355相关推荐

  1. DevOps敏捷60问,一定有你想了解的问题

    摘要:问题覆盖了规划设计.开发集成.测试.部署发布.运维监控等DevOps落地实践中的关键疑点与难点. "DevOps的价值是又快又好地交付软件" --<凤凰项目>的作 ...

  2. OKR 3355,对话让OKR一路生花 #OKR三书

    对学习的两个误解: 一.看书慢.真相是,看书是最快的学习方法. 二.学到伪经.本公众号推荐的OKR三书.DevOps四书都是真经. 学习与实践最好的方法就是跟着真经做. #OKR三书 ​ 从OKR三书 ...

  3. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  5. [DevOps] 认识一下

    大家都在说DevOps(Develop Operation),大概知道就是开发和运维沟通交流,一条线,然后使产品能够顺利的.短时间内上线.维稳什么的. 今天特意看了下 DockOne里面的一篇文章,再 ...

  6. 一键部署dns服务_OpenShift : 通往云原生、DevOps、微服务和Serverless的大门

    新书速递 查尔斯·狄更斯的<双城记>中有句耳熟能详的名言:"这是一个最好的时代,也是一个最坏的时代."作为技术从业者,在这个数字化浪潮和技术变革接连发生的时代,我对这句 ...

  7. git review devops过程

    自己搭建的devops环境是gitlab/gerrit/jenkins 1. 首先自己checkout一个自己的代码分支,一般不要在master上做直接修改 2. 修改后git add file,   ...

  8. #QCon# Devops

    今天参加了QCon2011 杭州.听了百度项目管理部的乔梁关于"Devops"的分享.比如如下: continuous integration -- Dev , QA agile ...

  9. 最佳DevOps工具获奖者:CloudBees Jenkins平台

    最新一期<IT新架构>宣布了第三届影响力奖的最终结果.这些获奖的产品和技术由我们读者.行业专家和编辑人员参与投票评选,并且预计将对2016年的IT运营产生显著影响.首先向所有的获胜者表示祝 ...

最新文章

  1. 12.HTML编辑器(CKEditor、CKFinder集成)
  2. Cocos2d之Action类详解
  3. 如何搭建数据中台?行业AI独角兽:一手AI,一手Know-How
  4. linux --- 进程调度
  5. 字符串截取,对数字,英文,汉字都可以
  6. 03-高级选择器,属性选择器,伪类选择器
  7. 洛谷【算法1-4】递推与递归
  8. 设备树与驱动的关系_Linux CommonClock Framework分析之四 gpio clk gate驱动实现
  9. DataGrid单击行时改变颜色
  10. 算法笔记_101:蓝桥杯练习 算法提高 身份证号码升级(Java)
  11. Xshell 外观配置
  12. IIS 部署的网站无法启动
  13. 精 挑 细 选 http://acm.nyist.net/JudgeOnline/problem.php?pid=263
  14. 【更好用的单片机】Stduino学习(三十三)面包板模块
  15. docker创建python容器
  16. hudson安装以及使用
  17. 荔枝FM、喜马拉雅FM、蜻蜓FM竞品分析
  18. Echarts水波图实现
  19. 先电openstack2.4云计算省赛任务一:iaas平台搭建任务
  20. 手把手教你读财报----银行业---第九课

热门文章

  1. 如何删除无效的网络驱动器
  2. 【从FT到DFT和FFT】(三)从离散傅里叶变换到快速傅里叶变换
  3. python数据驱动+读取yaml文件+读取excel文件+mySQL
  4. 有一种机遇叫5G速度,有一种痛叫5G数据
  5. 为什么钢结构行业ERP和MES系统缺一不可?
  6. ZigBee的电子标签系统设计
  7. python读单行文本求平均值_Python读取文本文件中的数字来计算平均值
  8. Word处理控件Aspose.Words功能演示:在 Python 中将 Word DOCX 或 DOC 转换为 PDF
  9. 线程池中使用的SynchronousQueue的offer和take原理
  10. 社会财富分配问题模拟