DevOps: Development Operations
是一组过程,方法与系统的统称,用于促进开发,技术运营和质量保障(QA)部门之间的沟通,协作与整合
目的: 为了按时交纳产品与服务,开发和运营工作必须紧密合作
1.简介
1)开发,技术运营和质量保障(QA)三者的交集
2)传统的软件组织将开发,IT运营和质量保障设为分离的部门
按照从前的工作方式,开发和部署不需要IT支持或QA支持,却需要紧密的多部门协作
3)DevOps考虑的不止是软件部署,它是一套针对几个部门间沟通与协作问题的流程和方法
4)如果一个组织要生产面向多种用户,具备多样功能的应用程序,其部署周期必然会很短,这种能力被称为持续部署
5)在缺乏DevOps能力的组织中,开发与运营之间存在着信息"鸿沟",
运营要求更好的可靠性和安全性
开发希望基础设施响应更快
业务用户需求是更快的将更多的特性发布给最终用户
6)与传统开发大规模的,不频繁发布相比,敏捷方法大大提升了发布频率
与传统瀑布式开发相比,采用敏捷或迭代开发意味着更频繁的发布,每次发布包含的变化更少
由于经常部署,因此每次部署不会对生产系统造成巨大影响
加强发布协调靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟与沟通鸿沟
自动化强大的部署自动化手段确保部署任务的可重复性,减少部署出错的可能性
2.现状
1)很多组织将开发和系统管理划分为不同的部门,开发部门的驱动力通常是"频繁交付新特性" ,而运营部门更关注IT服务的可靠性和IT成本投入的效率,两者目标的不匹配,就在开发与运营部门之间造成了鸿沟,从而减慢了IT交付业务价值的速度.
2)开发人员倾向使用有利于快速开发的工具,运维人员要求稳定性和性能
3)开发人员使用桌面电脑,生产环境运行的系统通常是服务器操作系统
4)运营人员可能对应用程序内部缺乏了解,难以正确的选择运行时环境和发布流程
5)开发人员可能对运行时环境缺乏了解,难以正确的对代码进行调整
3.诉求
1)更小,更频繁的变更---意味着更小的风险
2)让开发人员更多的控制生产环境
3)更多的以应用程序为中心来理解基础设施
4)定义简介明了的流程
5)尽可能的自动化
6)促成开发与运营的协作
4.DevOps度量标准
1)开发应用所花费的最高时间
2)失败部署的百分比
3)客户ticket数
4)故障恢复的平均时间
5)用户数
5.DevOps的作用
DevOps是Develop与Operations的缩写,是企业内开发,技术运营和质量保障这三方面工作的融合,用于促进开放,技术运营和质量保障部门之间的沟通,协作与整合
然而最为重要的如何成为一名真正的消费者用户并像消费者用户那样考虑这整件事情的意义所在,如何提升最终用户体验一直是DevOps战略发展的第一驱动力
6.DevOps工具
FlowDock或HipChat这样的DevOps实用工具能够帮助开发团队的成员互相以及与DevOps人员保持联系,Asana或Basecamp这类服务能够有助于跟踪开发任务以及在应用发布中的注意事项
以客户为中心的支持门户网站可以让用户直接与管理层或开发团队进行需求沟通,有助于触发新的或改进的功能