最近有不少的朋友问我一些技术问题,有些因为时间紧张没能及时回复,可能等我想起来的时候他已经不需要了,这种情况下着实让我感到有一丝歉意。我也有过很多次的问答经历,也是不停的刷刷手机屏幕看看有没有回复,一旦有了回复,就像吃了蜜一样甜,说实话还是蛮讨厌现在的自己,很多事情似乎都不是我预想的那样,我也不是很喜欢应酬,我还是那个屌丝的我。
    这里想和大家探讨几个问题,一个是关于基础学习,其实作为运维行业的IT人,很多同行在公司都是归属基础架构部,英文叫infrastructure,我们都是简称Infra,而DBA就称为是Infra DBA。时髦似乎和我们绝缘,新技术对于我们而言可能是我们能够让我们带来谈资和话题的一种方式,我们会在各种场合中讨论去IOE,里面的段子还不少,有以MySQL去O的,有以PG去O的,有以MongoDB去O的,有以国产数据库去O的,更有甚者,以O去O,可谓达到了一个段子的新高度。其实这些看起来琳琅满目的技术和解决方案对于外人而言,没有什么太大的区别,感觉都是数据库嘛,干嘛非要和这个过不去,和那个较劲呢,技术人大多数都是这样的,我在面对这个问题的时候,其实以前也是带着排斥敌意的态度的,谁要说O不好,我和他比功能,他比功能,我和他比服务,总之就是不敢比价钱。其实话说回来,到底较什么劲呢,本身这就是一个伪命题,去不去O,哪种解决方案,本身就不是一个单纯的技术问题,而我们非要用技术的角度来说服对方,其实大可不必。这里技术是IT的基础运维之本,兄弟们互相照料好了才是真的好,整天窝里横对外没有一点产出,大家不会关心谁对谁错,只会觉得无聊。
    而对于运维工具而言,我更加觉得不要功能非常丰富,把一些核心功能做好就很不错了。一个平台什么功能都想往里放,什么都想对接过去,对于事情本身是弊大于利。我可以举一个简单的例子。我们之前有一个运维工具,那是非常的牛,功能丰富,可以让开发同学自己使用导入导出dump,升级打补丁,都可以完成,页面上点点,一个环境就搞定了,当然现场环境比较复杂,有UAT,PET,PROD大体这几种,PROD就是最终的生产环境,我们在使用这个工具的时候着实给我们带来了很多便利,但是这就是一把双刃剑,基础功能做的还不错,但是里面还是有些略微复杂的配置,这些配置就是为了实现更加灵活的需求的,结果同样的工具用在了生产环境中,就因为其中的一个模板的配置,导致了生产环境运行同样的步骤的时候,无意中触发了一些额外的操作,导致后台有了大量的数据变更,直接导致线上环境崩溃,最后是根据主机,存储的同事根据时间点来恢复,丢失了十多分钟的数据,这个案例对我来说印象非常深刻,我们内部也做了很多深刻的检查,我对于这个问题的一个总结就是化繁为简,在更加丰富的功能面前,安全性可能优先级更高一些。尤其追求那么多丰富的功能,但是很长时间都可能压根用都不用,这不就是一件本末倒置的事情吗。很多的事情都是相对而言,我几天前举过一个例子,两条SQL,一条可以从4秒优化到2秒,而另外一个SQL则可以从2个小时优化到2秒钟,哪个的改进最有意义,这是一个不太负责任的问题,因为没有告诉你背景,第二条SQL语句可能一个月执行一次,而第一条SQL则可能每天运行几十万次,这就是一个截然不同的结果,所以对于运维工具来说,能够做到自动化运维是一件很难得的事情,很多事情做到半自动化已经是了不得了,不要为了酷炫,最后反而失去了工具本身最根本的意义。
    而对于IT的学习而言,我则更强调于基础的学习,可能我这里说的基础学习引不起大家的兴趣,很多时候具体问题具体对待,这个过程中给你的收获和锻炼就是一个截然不同的效果,如果说你遇到了无数的问题,经过排查,发现问题的原因竟然非常低级,甚至难以启齿,但是对于你而言,这个过程的收获意义是非常大的,就跟别人告诉你拷贝文件的时候需要提前检查文件的一些属性,这个听起来好像索然无味,没什么营养,但是自己碰到了问题,踩到了坑就会印象深刻,这个过程的意义更大,远比说教强很多。很多同学都希望学到具体的技术,其实在这一点上我总是会开导他们,很多时候解决一个通用问题的收益要远远高于解决一个具体问题,很多时候难的是问题的分析和解决的思路,而不是手上急于去敲的几个命令。很多通用的问题你解决了,是一类问题,能够根据这些问题得到的反思,继续刨根问底,总会有不一样的收获,很多时候我去帮一些网友解决问题的时候,其实都会有一种未知问题的茫然,但是分析问题的思路就会有很大的差别,可能我去分析的时候几个命令,几个步骤就能够定位排除出来,但是如果不是门儿清,就会走很多弯路,最后自己把自己折腾的很累。所以我强调的基础学习还是有一定的实践意的,这个需要自己去体会,无法去复制别人的经验。
    所以技术这个活儿是一件很清苦的事情,本身就不会是一个喧闹,时髦的行业,虽然行业内会有很多的前驱者站出来,但是几年后回头去看,可能又会是一番景象,谁都不想做明日黄花,在这一点上只能不断的接受变化,而对于我而言,羞愧的是我也是嘴上说说,落到实处的少,这个需要反省,反思,自我批判,改进,有则改进,无则加冕,里面来不得半点虚的,反之可能是技术玩弄了你,而不会是你玩弄了技术。