【转】DevOps原则
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. 持续改进
最新文章
- Balanced Teams (USACO Jan Bronze 2014)
- Android压力测试快速入门教程(图解)——Monkey工具
- [Effective Java]第二章 创建和销毁对象
- Linux下数据库的安装和使用
- NKW
- 一款jquery编写图文下拉二级导航菜单特效
- [破解]java打包Exe工具 - Jar2Exe Wizard
- JQUERY简写案例
- SQL Server 2005入门到精通(案例详解)
- delphi 预览图片2 (MouseUP)
- SpringBoot实战 之 异常处理篇
- ecshop 商品属性显示方法
- [Swift]LeetCode85. 最大矩形 | Maximal Rectangle
- 使用excel 数据透视表画图
- java设计模式之——工厂模式
- 【转载】Understanding When to use RabbitMQ or Apache Kafka
- win8操作系统下使用telnet客户端
- 样条之埃特金(Aitken)逐步插值函数
- Java实现窗体动态加载磁盘文件
- sencha touch 坑爹的Panel,数据不显示了...
热门文章
- Lex与Yacc学习(一)之环境配置篇
- int long long 的范围
- JavaScript正则表达式-或字符
- 关于php使用xpath解析html中文乱码问题
- expdp / impdp 用法详解(Oracle)
- grunt---grunt_test 测试用例
- 【20】display,float,position的关系
- 七、docker基本命令
- Windows 通过 SecureCRT 8.x 上传文件到Linux服务器
- Codeforces Round #390 (Div. 2) A+B+D!