这篇的内容实际是在 10 月份团队月会中跟团队成员分享的一些感受和理解,但是没有组织成文,年终总结回顾时我觉得还是写出来,因为平时遇到了太多的类似的思维模式上的问题,其实稍稍一转就可以把事情做的更好,单纯的从技术层面去解决问题往往还是太过局限和片面。
举个例子
举个实际案例,我们做运维的套路,第一步就是先定标准和规范,我们定了资源标准、网络标准、应用标准、DB 标准、架构标准等等一系列的标准和规范,然后就是基于这一套的标准去做相应的自动化平台开发,平台开发出来再去推广落地,以解脱对人和人力的依赖和消耗,提升效率,减少人为故障等等。这个过程中,就要求每个研发团队在开发过程中就要必须遵守我们的标准和规范,要做出一定的调整。
以上是理想中的状态,但是现实情况是,线上应用类型特点五花八门,个性化的东西非常多,比如有状态和无状态的,在线的和离线的、接入层的和后端服务的,分布式的和单体的,语言特性上,有 Java、C++、PHP、Go、Python。这一点也倒像是我们现在现在技术的发展趋势,百花齐放,纷繁复杂但又个性十足。
这时就会出现几个问题:
1、这么多特性的东西,即使做了标准化,也总会有个性化和特例的 Case 出来,那我们做标准化是否还有意义?
2、做了这些标准,那我们是不是应该先把所有的情况都梳理清楚,然后做个大而全的标准体系出来,然后再去做平台?
3、这么多的业务和应用,我们做了标准化,推进起来太累了,要一个个沟通过去,特别是遇到不遵守规则的团队和同学,我们做这个本来是要节省工作量的,没想到第一步就这么累。
这篇先来谈谈第一个问题:
避免非白即黑的思维模式
我们定了标准和规则,但是总会有人不遵守,浪费我们的时间去处理这些特例,那我们做这个事情岂不是也没 100%解决问题,那既然解决不了问题还做它干嘛?不管是之前的团队还是当前的团队,我发现有这种想法的同学不在少数,尝尝因为一个点上的问题纠结起来,认为既然做不到 100%或者哪怕只有一个特例,那么这件事情也没有意义,所以事情直接就不做或持抵触情绪,而且还经常成为这些同学做不好事情的理由和接口。
这就是比较典型的非黑即白的思维。
我先不说怎么解决好,我们逆向思考一下,举个形象的例子,每个国家都制定了非常严格的法律法规,特别是美国,他的法律相当完善了吧,但是刑事犯罪杜绝了吗?酒驾杜绝了吗?贪污受贿杜绝了吗?答案是,没有。如果是按照上面的思路去做事情,既然不能解决所有问题,那我是不是可以就不用制定法律?再假想一下,一个没有法律和规矩约束的社会和国家会是一个什么样子,是不是恐怖地无法想象。
所以,回到我们的现实情况中来,标准化可能是无法解决或避免所有问题,但是如果要是没有,那线上的应用的部署、发布、监控等等将会是一片混乱,无法管理。
跨越障碍,把事情做来最重要
所以,首先这里要说的就是这种非黑即白的思路一定要避免,一定要打破,不然事情肯定就卡在这一步上了。然后再往下做,怎么做呢?可能说的比较 high 了,就是 2/8 原则,抓主要矛盾,比如我们电商的业务,主要就是交易链路这条主业务线,跟钱相关的,这套体系的架构必定是统一的,那就从这里入手,先把交易链路的应用标准化掉,而且必须统一,基于此再进行自动化平台、持续集成和发布、监控、稳定性的建设。这一块的问题解决差不多了,其实 80%的问题就解决了,运维的工作量和压力就大大下降了,这时再空余出来的精力就可以往其它还未标准化的应用和业务上延伸。
而且事情一旦动手做起来,找到了套路和节奏,再往后做就会越做越顺,所以跨越非黑即白的思维障碍,第一步抓准重点把事情做起来才是最重要的。
本文转载自成哥的世界公众号。
原文链接:https://mp.weixin.qq.com/s/xH65oB5QU4M82m9LhUgsMw
评论