【转】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四大核心价值
文化(culture)
自动化(automation)
度量(measurement)
共享(sharing)
四、DevOps三步工作法
1. 建立全局观
软件全生命周期管理 • 识别管理单元 • 缩减管理粒度 • 建立流动性
2. 建立反馈
配置管理合理化 • 持续解耦 • 工艺改进团队建设 • 内部知识库建设
3. 持续改进
五、达成DevOps九大途径
1 持续集成CI (Continuous Integration)
2 持续交付CD (Continuous Delivery)
3 版本控制 Version Control
4 敏捷规划和精益项目管理 Agile planning and lean project management
5 监测和记录 Monitoring and Logging
6 公共云和混合云 Public and Hybrid Clouds
7 基础设施即代码 Infrastructure as Code
8 微服务 Microservices
9 容器 Containers
六、DevOps工具链
包括规划、问题跟踪、源代码管理、构建工具和测试工具、持续集成和部署(CI/CD)、配置管理、云平台、监控和记录工具,后面还有通讯和知识共享这些软工具的介绍。
DevOps 是一种令人兴奋的工作方式。目前而言,这是一种团队集体合作,通过可持续的方式运送价值的好方法,它能够帮助团队成员专注于客户,而不是 IT 效率。
参考
https://www.infoq.cn/article/YXcFmX7czIGguMAIIGcw