DevOps的出现有其必然性。在软件开发生命周期中,遇到了两次瓶颈。

第一次瓶颈是在需求阶段和开发阶段之间,针对不断变化的需求,对软件开发者提出了高要求,后来出现了敏捷方法论,强调适应需求、快速迭代、持续交付。第二个瓶颈是在开发阶段和构建部署阶段之间,大量完成的开发任务可能阻塞在部署阶段,影响交付,于是有了DevOps。

一、DevOps定义

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

DevOps的目标是加快软件迭代速度,让团队更快交付价值。(通过Devops,测试变得更加渐进、迭代,并与应用程序开发和部署过程集成)

二、DevOps的三大原则

1、基础设施即代码(Infrastructure as Code)
DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等
2、持续交付(Continuous Delivery)

持续交付”定义为“一套软件工程方法论和许许多多的最佳实践的集合”。
持续交付是在生产环境发布可靠的软件并交付给用户使用。而持续部署则不一定交付给用户使用。涉及到2个时间,TTR(Time to Repair)修复时间,TTM(Time To Marketing)产品上线时间。要做到高效交付可靠的软件,需要尽可能的减少这2个时间。部署可以有多种方式,比如蓝绿部署、金丝雀部署等。
3、协同工作(Culture of Collaboration)
开发者和运维人员必须定期进行密切的合作。开发应该把运维角色理解成软件的另一个用户群体。协作有几个的建议:1、自动化(减少不必要的协作);2、小范围(每次修改的内容不宜过多,减少发布的风险);3、统一信息集散地(如wiki,让双方能够共享信息);4、标准化协作工具(比如jenkins)

二、DevOps三步工作法

1. 建立全局观

软件全生命周期管理 • 识别管理单元 • 缩减管理粒度 • 建立流动性

2. 建立反馈

配置管理合理化 • 持续解耦 • 工艺改进团队建设 • 内部知识库建设

3. 持续改进

最新文章

  1. Balanced Teams (USACO Jan Bronze 2014)
  2. Android压力测试快速入门教程(图解)——Monkey工具
  3. [Effective Java]第二章 创建和销毁对象
  4. Linux下数据库的安装和使用
  5. NKW
  6. 一款jquery编写图文下拉二级导航菜单特效
  7. [破解]java打包Exe工具 - Jar2Exe Wizard
  8. JQUERY简写案例
  9. SQL Server 2005入门到精通(案例详解)
  10. delphi 预览图片2 (MouseUP)
  11. SpringBoot实战 之 异常处理篇
  12. ecshop 商品属性显示方法
  13. [Swift]LeetCode85. 最大矩形 | Maximal Rectangle
  14. 使用excel 数据透视表画图
  15. java设计模式之——工厂模式
  16. 【转载】Understanding When to use RabbitMQ or Apache Kafka
  17. win8操作系统下使用telnet客户端
  18. 样条之埃特金(Aitken)逐步插值函数
  19. Java实现窗体动态加载磁盘文件
  20. sencha touch 坑爹的Panel,数据不显示了...

热门文章

  1. Lex与Yacc学习(一)之环境配置篇
  2. int long long 的范围
  3. JavaScript正则表达式-或字符
  4. 关于php使用xpath解析html中文乱码问题
  5. expdp / impdp 用法详解(Oracle)
  6. grunt---grunt_test 测试用例
  7. 【20】display,float,position的关系
  8. 七、docker基本命令
  9. Windows 通过 SecureCRT 8.x 上传文件到Linux服务器
  10. Codeforces Round #390 (Div. 2) A+B+D!