凤凰项目 凤凰项目 8.7分

跳出运维,才能做好运维

朝鲜的幻灵游侠
2018-05-05 18:21:38

《凤凰项目》是一本很奇特的书,它用小说的方式,讲述了一个凌乱的无可救药的运维项目组是如何一步步达成最后高效且舒心的工作状态。

书中所阐述的东西比较凌乱,翻译的也比较绕,但我认为书中说了这么多,其中最为核心的一点就是告诉我们,运维或者其它IT项目管理,并没有什么特殊性,工厂流水线的一些管理方法论,是可以应用到这上面来的,做好运维,首先我们要明确这些井井有条的方法论,而不在于用了Ansible、Prometheus、K8S这些技术细节。

首先,我们要明确运维的工作类型,书中列举了四种工作类型:

1. 业务项目:这些通常是公司业务部门,比如产品研发部门或销售部门所提出的需求,比如新产品发布上线、为客户做实施、双十一这种大促活动的规划等等。这些工作通常具有一定的系统性,需要部门间通力合作。

2. 内部项目:运维部门内部围绕业务项目所实施的一些列基础设施研发,部署自动化、多环境构建、持续交付、监控报警等等。

3. 变更:根据其它部门申请,对运维组件进行变更操作,相对于业务项目,变更通常都会比较零散,比如加权限、开端口、开机器等等。对于变更,我们要维护好操作记录,做到有迹可寻。

4. 计划

...
显示全文

《凤凰项目》是一本很奇特的书,它用小说的方式,讲述了一个凌乱的无可救药的运维项目组是如何一步步达成最后高效且舒心的工作状态。

书中所阐述的东西比较凌乱,翻译的也比较绕,但我认为书中说了这么多,其中最为核心的一点就是告诉我们,运维或者其它IT项目管理,并没有什么特殊性,工厂流水线的一些管理方法论,是可以应用到这上面来的,做好运维,首先我们要明确这些井井有条的方法论,而不在于用了Ansible、Prometheus、K8S这些技术细节。

首先,我们要明确运维的工作类型,书中列举了四种工作类型:

1. 业务项目:这些通常是公司业务部门,比如产品研发部门或销售部门所提出的需求,比如新产品发布上线、为客户做实施、双十一这种大促活动的规划等等。这些工作通常具有一定的系统性,需要部门间通力合作。

2. 内部项目:运维部门内部围绕业务项目所实施的一些列基础设施研发,部署自动化、多环境构建、持续交付、监控报警等等。

3. 变更:根据其它部门申请,对运维组件进行变更操作,相对于业务项目,变更通常都会比较零散,比如加权限、开端口、开机器等等。对于变更,我们要维护好操作记录,做到有迹可寻。

4. 计划外的工作:无法预料的问题处理,即“救火”。

运维部门需要着重留意的,是计划外的工作,计划外的工作越多,就会占用其它三种工作的时间,导致其它三种工作大量积累。并且,因为运维内部的基础建设跟不上,无法从根上去思考和解决计划外的工作,就会造成一种恶性循环,做不完的工作越堆越多(书中喜欢叫这玩意儿"半成品")直至让人崩溃。

另外个人觉着,除了这四种工作外,还有一些周期性的工作对于运维其实也是非常重要的,比如对组件进行周期性的巡检、压测、像ChaosMonkey那样对分布式系统进行随机破坏、灾难演习、备份演习等等。不过这些也可以归结在内部项目之中,只不过它们需要周期性的安排去做并考察效果。

我们把运维的工作类型明确了,我们就发现,其实多数的运维工作是以流水线的形式存在的,我们要把这些流水线可视化,比如通过看板的方法去可视化,只有把工作可视化了,有数据了,我们才能做好管理。可视化之后,我们就会发现整条流水线的瓶颈所在,优先改进瓶颈,在瓶颈之外的任何改进都是徒劳的。

比如我们发现所有任务最终都卡在某个环节的某个负责人身上,这个环节只有他一个单点,那么就得想办法解除这个单点,把他解决问题的知识和经验自动化或通过文档化以及培训的手段来让其它更多的工程师参与到此瓶颈中分担工作。

流水线可视化了后,除了解决掉瓶颈节点,其它的诸如任务优先级、任务的依赖关系、每批次解决的任务数量,也都会显示出来并得到解决。

流水线的构建只是第一步,第二步我们需要做的,就是反馈和朔源。我们需要知道每种任务流水线的每个环节的执行情况,效率、质量,然后与该环节相关的部门一起去探讨和优化改进的措施,比如部署时间过长,那么就要与开发团队一起优化打包流程和部署所依赖的中间件架构;线上故障太多,那么就需要联合开发和QA部门一道,去审视这些故障所爆发的源头,定制解决方案,等等。总之,目标就是确保流水线上的上级环节向下级环节交付的“产品”质量越来越高,也越来越"运维友好",我们的运维流水线可以一直畅快的朝着一个方向前进,而不必再回退至上一个环节甚至N个环节。

做到第二步,运维的工作就应该会比以往轻松很多了,至少应该不会不再焦头烂额,一切会步上正轨。这时候,第三步,就需要建立一种文化机制,努力把这种工作方式延续下去,做到持续改进,越来越好!

以上三步,在这本书中被称为"三步工作法"被散乱的引用在各处。另外,书中强调,对于运维工作的优化,除了技术和上面这些方法论,团队和公司高层的支持也是至关重要的,因为运维团队是公司内部的一个服务性质的团队,与公司的各种业务都紧密关联,无所不在。因此容易沟通和理解的团队氛围以及有个信任你敢于让你放手去做的领导也很重要。就像Netflix这种公司,之所以能在DevOps上走的很早、很远,与其公司倡导的文化——“自由 & 责任”也是密不可分的吧。

很长的小说,其实要说的,我觉着也就这些吧,哈哈。

2
0

查看更多豆瓣高分好书

回应(0)

添加回应

凤凰项目的更多书评

推荐凤凰项目的豆列

了解更多图书信息

豆瓣
免费下载 iOS / Android 版客户端