一谈到敏捷,大多数人的说法就是敏捷开发。其实对于运维来说,更加需要敏捷的实施,本文以Devops的思考,提出敏捷运维Devops。
1.运维的困惑
一般而言,IT组织或部门通常通过两个不同团队提供用户交付或者支持的:负责构建软件的开发者,以及负责运行软件的运维人员,而且以两个关键的KPI进行评估:软件本身的质量,因而需要尽可能减少缺陷的数量,运维追求的稳定性;开发追求的是实现多样的变化,并以尽可能快的速度提供给用户或客户所需要的业务构想的产品。这两者之间可能会有矛盾的本质诉求。同时,这两个团队有时候会使用不同的预算来运营。开发团队使用构建(Build)预算,运维团队使用运营(Run)预算。不同的预算,对控制权越来越高的需求,以及企业IT成本的缩水,这些因素结合在一起会进一步放大两个团队各自目的的对立性。
接下来看看典型的运维团队把大部分时间都花在哪里了:
运维团队有将近一半(47%)的时间花在了与部署有关的工作中:执行实际的部署工作,或修复与部署工作有关的问题。
为了改变这种状况,必须考虑到两个最关键的需求:
1、通过自动化部署将目前这种手工任务所需的时间减少31%。
2、通过产业化措施(类似于通过XP和敏捷实现的软件开发产业化)将需要处理与这些部署有关的问题减少16%
而且,运维方式,也是需要不断调整的。运维的工作量是在以时间维度与工作类别维度上分布不均匀的。比如零售IT运维,主要围绕一年10多个主要的节日,比如春节,五一,年中,国庆,中秋,双十一,双十二,圣诞,新年等。平时的流量可能没有啥,但是到了最关键的 双十一等,运维工作可能扩展十倍。同时运维支持的应用也是有生命周期,可能是上半年的会员系统,下半年的门店销售与OMS系统,所以运维支持人员的分布,队伍大小等是需要调整的。
还有由于产品的交付方式特点差别,有的采用瀑布模型,需要有formal的流程,有的调研系统,本身是低风险的,可以快速上线,回滚。至于issue management,更是如此,有的系统可以运维手工调整系统配置,如JVM大小,超时时间等,但是涉及到系统深层问题,属于second level support必须介入的。凡此种种,要求运维的管理,必须有弹性,能够适合业务及IT交付方式的变化。
所以新的运维交付管理的方式,兼有敏捷的特点与自动化的特征的,是势在必行的。这就是笔者想到的Devops
2. Devops的由来与实战
笔者认为可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。DevOps考虑的还不止是软件部署。它是一套针对这几个部门间沟通与协作问题的流程和方法。需要频繁交付的企业可能更需要对DevOps有一个大致的了解。
如一个组织要生产面向多种用户、具备多样功能的应用程序,其部署周期必然会很短,它必然要求有持续部署能力,并且经常与精益创业方法联系起来。DevOps的引入能对产品交付、测试、功能开发和维护起到意义深远的影响。
在缺乏DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”──例如运营人员要求更好的可靠性和安全性,开发人员则希望基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。这种信息鸿沟就是最常出问题的地方。那哪些具体的实践领域可以开展Devops呢?
这4大实践总的分为两大块,一块是从开发往运维这一侧能力的传递,包括将开发延伸至生产中,这讲的是持续集成和交付、自动化部署。也包括将开发嵌入到IT的运维中,比如像APM这类工具,能让我们把一些性能诊断分析如业务流程代码和SQL的执行效率诊断、瓶颈分析等能力传递给运维,实现业务调用链的性能监控,快速定位瓶颈所在。
另一块是从运维到开发这一侧,也有两大实践
第一个是向开发中加入生产反馈,而且这个反馈应该是可视化的,要精准一些数据,像监控、运维的数据,而不像传统的方式,当运维暴露了一些故障,开发去要这些数据还要走什么流程,好像这些运维数据是什么秘密,从而降低开发排故的诊断分析难度,节省排故时间。
第二个是将IT运维嵌入到开发中,例如在开发阶段就嵌入规范化的日志输出、存储的标准做法,运维过程中要看这些日志数据能不能及时地反馈给开发,并通过日志分析定位开发的代码问题,开发这边能不能嵌入一些日志的输出在生产环境做一些调试诊断。
3、Devops的实施过程
有了这些实践的领域后,如何具体实践呢?笔者建议要结合人,流程,技术,文化,逐步推进。可以以这个目标为product log,制定每2周的改善的sprint,每个sprint完成一个backlog,可能是自动化测试,或者是持续集成,乃至用户培训等。
每个sprint的内容可以根据业务IT的需求,优先级,紧急程度而动态调整。Scrum master正好是运维部门的负责人,而client是外部的IT服务需求方,Product Owner就是IT负责人。
所有这一切,正是本文想到的敏捷运维的Devops实施思考。
作者:黄盛 PMP,PMI ACP, EXIN ITIL Foundation V3,ISACA CISA certified
职业:电商IT项目经理,有Global Delivery, Scrum, Kanban, Big Bang项目交付经验
电话:13601740984,邮箱:huangsheng2@hotmail.com
原创授权发布于@管理圈,未经许可禁止转载。