T上西北

对顺丰删库事件的思考

这几天,每次在各个新闻app和圈子里出现该事情,我是感到很诧异和遗憾。

顺丰作为国内快递行业上市公司的第一名,市值约1800亿人民币。作为这样一个量级的公司,出现这种情事情,的确是不应该的。总体来说,我对这件事情的印象是:

  1. 顺丰IT水平可能不好。
  2. 顺丰IT管理肯定是存在很大的漏洞。
  3. 该工程师技能应该是比较弱的。
  4. 顺丰最应该考虑的是如何避免这种事情再次发生。

一直以来,在软件工程里,前期开发很重要,到了后期,运维又变得重要了。所以,任何一个公司,绝对不可以小觑运维的重要性。一个规范化的公司,在软件运维上必须有自己的制度和规范。

在我看来,当一个公司发展到了一定规模后,制度是要比人的主观能力要重要。说回这次事故,该如何去避免?或者说一个正常的运维是什么样的?

首先,对于不同角色,严格控制其权限和职责,例如研发有研发的权限,运维工程师有运维工程师的权限,DBA有DBA的权限。每个角色的权限是相对的。

其次,如果做一项升级,前期工作必须做好。一般来说,先申请一个时间窗口去升级,这个申请,必须按照相关的流程去审批。其次,如果申请通过,需要准备好升级的步骤(至于是手动还是自动,后面再讲),形成文档。接下来,将该文档提交给相关team去审核,审核通过后到了维护的时间窗口根据文档去做升级即可。那么该文档怎么写:

  1. 包含每个模块升级的每一步骤。
  2. 必须准备好升级失败后如何rollback的步骤。
  3. 能用脚本执行则用脚本执行,避免人工执行每一个步骤。
  4. 涉及到删除数据,更改数据,增加数据等操作,务必谨慎,有必要在lab环境里跑一次。要条件的化,QA可以介入其中。
  5. 升级文档要经过几个team的审核,尤其是对那些复杂的升级。

接下来,就开始干活了。至于是手动还是自动升级,都非常关键。在我看来,越是自动化,说明公司运维水平越高,反之,越是手动,公司运维水平就越低。例如,假设现在去升级某个web app,但是这个web app部署在不同pop(假说m个),不同pop又有n个实例,那么最后要升级m*n个实例,试想一下,如果2*2=4,手动还可以。如果是2*10=20,手动还可以接受吗?

为什么要强调自动化呢?很简单,我们要尽量降低认为错误。毕竟,人犯错误的可能性是非常大的,因为升级的时间窗口往往都是大半夜,这个时候,人处于疲惫状态,很容易出现认为的错误,而且很多时候不可预测。例如,计划删除数据库里的某些数据,通过执行SQL语句DELETE FROM table1 WHERE id=12可以达到该墓地。因为网络错误,或者id=12输入到1时,手抖,按了enter,这样就会误删,想想是不是很可怕。除了这些,还有rm 命令等。如果我们前期在准备升级文档时,把这些SQL放到脚本里去执行,那么人为错误的概率就会大大降低。

在这件事情上,运维工程师犯错了,一点不冤,需要惩罚,但是务必达到教育的效果。同时,这件事情也需要引起运维部门的高层的注意,例如Director,VP甚至COO级别的,否则,这种事情还会不断出现。我觉得,在本次事件中最大的隐患还是制度的缺失和升级方法导致的,所以在流程上改进改进再改进,方法上优化优化再优化。

最后,运维是一个非常有技术含量的活儿,同时也是靠制度撑起它的。别小看它,必须重视,否则出现什么问题,大晚上被叫起来的概率就会增加。

一个微信群的现状

最近,加入了一个微信群,这个微信群的群体基本上都是IT行业人士,而且各个地方的人都有。不出一天时间,我发现这个群里讨论的话题无非包括:

  • 一些IT大公司的五花八门
  • 如何进入这些大公司
  • 买房
  • 保险
  • 30岁的焦虑

参与这个群的都有哪些人呢?

  • 在读的学生
  • 大部分是参加工作5以下的在职人员
  • 卖保险的
  • 某些公司的HR

从大家谈论的话题,我意识到现在人的焦虑该有多严重啊?

  • 一个大学还没毕业的学生,就开始考虑以后工作,买不起房。
  • 一个刚毕业工作没几年的人,考虑的是如何进入一些大公司,抱怨现在房价多高。
  • 一些卖保险的人,拼命并含蓄推销自己的产品。
  • 一些卖理财的人,因为直接推销自己的产品,和群里的人闹起来。

我也在思考是什么造成了这样的浮躁的气氛呢?应该和最近几年经济环境变化有关。我认为最主要的是社会财富积累的变化,表现在:

  • 前几年股市的变化,15年的大牛市让多少人富了,但是很少人注意到那些赔钱的人。
  • 币圈。还是有人富了。我的一个朋友还是挣了不少的,但是有多少人被割韭菜。
  • 楼市的变化。从15年起到今年上半年,从一线到三四线城市,资产价格飙升,导致一些人群的资产急升。我今年上半年去了一趟西安,和同事聊天,明显觉得一个最重要的变化是大家现在都谈房子,原来去出差,大家都是谈工作,谈技术等。我最担心的是西安房市过后一地鸡毛,毕竟我在西安待过几年,了解一些西安的情况。
  • IT行业工资。这几年工资被大公司,互联网等带起来了。因为工资高,导致我们当时招人很困难,迟迟不到位。连合作的猎头都说工资没有竞争力,即便这几年有所好转,但是招人还是困难。我们是属于通信行业,尽管公司是行业的#1,但是工资水平是他们还是差一截的。
  • 市公司造富能力。例如阿里上市造福了一批,小米上市又造福了一批,今日头条也是,大家心里羡慕嫉妒恨。
  • 舆论和媒体的作用。舆论和媒体往往有选择性的报道导致社会对以上几种情况有了一个大概印象。当然,这也符合媒体气质和策略,不然怎么有流量。

因为浮躁,大家都希望改变自己,去追求最好的生活。怎么办?所以像知识星球,逻辑思维,极客时间,知乎上的Live等这样的圈子出来了?这也是为什么知识经济出现的一个最重要的原因吧。从侧面看,这也是知乎火的一个重要原因。我不能说这些圈子不好,但是有一点一定要注意,从这些圈子里获得的知识凑效吗?我发现很多人在知乎上停留的时间很长,期待获取一些知识,包括我当时也是,但是后来我发现基本上是浪费时间,最后连知乎都不装了。

同时,也让我想起知乎上某个大V,没工作过几年,但因在腾讯等公司工作过,以这些公司作为背书,后辞职做咨询和培训。我在想一个问题,你自己在以前公司都没做过高管,你怎么知道高管是怎么回事,你培训出来的哪些鸡汤真的对员工有收益吗,那些鸡汤是自己想出来的把?讽刺的是,有不少大公司去请他培训,这我是可以理解的,作为一个利益集团,有时高管不在乎员工学到多少,但是在文化build以及情怀上还是要作出一些关怀的,正好这个大V符合这种预期。

也许我是落伍了,在过去9年,我在工作上把精力放在了产品上,导致我没有时间去和外面沟通和了解,甚至有时候都没时间换工作,有猎头打电话给我,我一直推辞,因为喜欢自己的工作。正因为这样,我发现不理解现在的人了。现在的学生和没工作几年的人的浮躁超出我想象。

说到这个微信圈,从早到晚基本上没停过,各种事情都谈,好不热闹。这样的群真的有意义吗?对于各种人士,与其在这里吐槽,聊天,还不如自己真正去学习一点事情。例如,你想做架构,为什么不考虑学习一些关于架构的知识?例如高并发,高可用等知识。具体一点就是LVS/F5/NetScaler/Ngnix(基于L4~L7实现)等,Redis/MySQL分布式/集群等,应用/HTTP/多级缓存等,队列,以及扩容(例如数据库),Docker/K8S等。有了这些知识,找个不错的工作还是比较容易的。

说到房市,现在IT行业的工资还算可以,在一线城市买房真的不能够买房吗?未必。就比如说上海,3-5万的房子还是蛮多的,别动不动看新闻说1000多万的房子一出来就没了,说实话,这些房子对大多数人是买不起的。但要说买房,还得自己亲自花一点时间去了解市场。比如说,比如说房子5W一平,买个60~90平米,对IT行业者来说还是有可能的,别被网上1000W房子的舆论吓到自己,还是自己去中介了解以下。我这里有个公式,如果您的收入(税前即可)可以买您所在城市的一平米(均价),那买房就没问题了

我一直认为,IT行业是一个相对公平的行业,不需要太多背景和资源,单凭自己的努力,是可以混的不错的,投身于这个行业,应该觉得幸运。

最后,说个大家听的,也是说给自己的。与其在那里追求一些所谓的知识,还不如沉下心来,发现自己的目标,查漏补缺,多花一点时间在上面。我知道,这需要自律,自我管理的。做得到吗?

话说回来,经过最近几个月的了解,发现自己原来不接地气啊,还好,现在已经明白很多了。

我的智能手机之路

北京时间,2018/9/13的凌晨1点,Apple在此刻会召开一年一度的新品发布会,那时候全世界的目光集中于此。由于之前网上对新的iPhone爆的完无体肤,所以发布会上也没什么新鲜事儿了。iPhone Xs,iPhone Xs Max和iPhone XR发布了。

在看发布会时,我也回忆起自己使用SmartPhone的历史,干脆在这里记录一下。

第一次接触到智能手机是Blackberry,大概是在2005初,我应该是国内接触Blackberry最早的一批人吧。当时我老板从美国带回来2支Blackberry让我研究着,因为后面要在上面做开发。因为此,我研究了很多,加上后来开发,所以成为了国内最早的开发人员吧,后来因为资料匮乏,所以干脆把Blackberry官方文档翻译了一遍,给同行一点帮助。当然这是后话,不过这次因为Blackberry设备的把玩,我对智能手机有了最初的认识,上网,发邮件,安装app在当时多高级,多新鲜。尤其是Blackberry的全键盘QWERTY,令自己无限着迷。因为这,我从那个时候到现在一直使用全键盘。

2005年11月,换过一次工作,公司里有一台Samsung的Windows Mobile手机,也是全键盘的,内置Windows Mobile for Pocket PC。主要是来用开发,但是其键盘太难用,到让我想起Blackberry的全键盘了。但是当时出于我自己经济能力问题,我不可能花6k去买一台智能机(2005年的6K块还是挺值钱的),所以退而求其次,买了一台多普达(也就是现在的HTC)的SmartPhone(内置Windows Mobile 2003 for Smartphone)。在未来一年里,因为是不是在Windows Mobile上做开发,使用Windows Mobile手机太多,因为他们的用户体验不是太好,产生了一下疲倦心理。一旦自己有这种心思,换手机势在必行。

那换什么手机呢?很明显,Blackberry手机成为首选。所以在2006年,我买了一个Blackberry 7290。用起来非常舒服,全键盘太好用了,右边的滑轮用户体验真好,打英文联想等。当然,不太好的是中文输入有问题。

2007年,因为看见Blackberry Pearl系列,太惊艳,所以毫不犹豫在某个周末,去浦东某个淘宝店家买了一台。其实体验完之后,感觉没有想象中的好。用完一段时间后,又想起换手机了。今年,发生了一件改变世界的事情,那就是第一代iPhone发布。

2008年,换手机的想法老早就有了,一直在心里盘算呢。换什么手机好呢?看中了Blackberry 8320,属于Curve系列,这是一款我用起来真是舒服的手机。输入法,中文输入,上网(当时用的网络是EDGE),可以轻易刷系统(把玩程度高),像素增加不少,色彩度也很饱和。也是从那个时候起,Blackberry的社交用途多起来,比如邮件,上网等。当时,属Blackberry的BBM,和PUSH Mail最有名了。这个时候,因为Push Mail没有在大陆落地,有一家叫尚邮的公司出现解决这个问题。我也安装了他们的软件,从此发邮件不是问题了,但BBM的确是个问题。此刻中国移动已经引入了Blackberry业务,BIS/BES其实是可以用的,但对于个人来说,还是比较遥远。因为接触到中国移动的人,我时常可以体会到这些服务,可怕的是一体验,发现自己就中毒了,太好的体验了。

2008年底去了北京,2009元旦加入我前东家Aicent/Syniverse(加入也是因为Blackberry接下来的机缘)。很可惜的是,我最满意的8320在一次挤地铁的时候被偷了,心疼啊。不得已,买一支呗,这时候买的是Bold系列,似乎看起来精进不少。

在2010年时,因为iPhone的大热,触摸屏已经开始成为主流,Blackberry推出第一款触摸屏的手机系列Blackberry Storm,遗憾的是,因为用户体验太差,并不是很畅销,而且这个时候Blackberry开始走下铺路了。我当时的Blackberry Storm是集成了中国电信的BES和BIS,服务用起来很好,但就是手机体验太差了。

2011年,iPhone 4已经发布,而且在国内基本上没货。直到3月开始才有所缓解吧。4月份和老板出差回来,在机场等飞机的时候,我们在聊iPhone,等我回到家,立即去营业厅买了一支。从此走上了不归路。

2011年我们其实就开始做Mobile Apps,这个我后期用到各种手机创造了条件。

2013年, HTC One一发布,以在当时来说惊艳的外表和特性吸引了不少人。我当然也是其中之一。那时候,我使用iPhone也蛮久了,想换个手机玩玩,看到HTC One发布,直接下单了。凭着当时HTC系统的优化和造型,真的不错。可惜,用到后来,系统镜头泛红了。这是2015年的事情了。

2014年,因为自己想尝试一下Windows Phone,买了一台华为的Windows Phone手机,用了几个月,就此作罢了。

2015年,因为HTC镜头泛红,加上这时国产手机大行其道,我买了一支魅族4,用了大半年,感觉系统有点卡。但话说魅族手机还真是漂亮,而且耐用,这支手机至今老人还用着呢。因为iPhone 6S的发布,我在第一时间全款预定,并于9月29拿到手机,应该是第一批最早拿到的。

2016年,都在说小米手机厉害,我买了一台Note,遗憾的是,我并未体会到里面的优势。

从2017年开始,感觉iPhone OS用起来太单调,一颗不安分的心开始了,于2018年买了一台HTC UU,在HTC如此不堪的情况再买一台,这也算是情怀了吧。遗憾的是,这台手机在前几天下岗了,主板坏了。

下一台手机是什么呢?必须是新款iPhone手机。

总结

  1. 在这经历里,我一直对国产手机抱有希望,可惜每次都是失望。直至几天,我仍认为国产手机有一段路要走,但不可否认,这个差距已经不大了。
  2. 在手机系统方面,我喜欢Blackberry和iOS,同时Android在国内生态群还是差了一些。
  3. 我对新鲜事物感兴趣,尤其是手机相关的,所以每次出来一个东西,我都会去尝试,也是“浪费”了不少钱。
  4. 关于系统的演进,例如Blackberry,从早起的3.x,到Blackberry 7.1,又到后来的Blackberry10(QNX),那是另外一个话题了,有空可以单独讲讲所有Windows Mobile,Blackberry, iOS,Android, Palm等系统的演进。我没做过Symbian的开发,所以不多讲。
  5. 用过这么多手机,我认为性价比最高的是iPhone,做工最好的还是iPhone,例如我的iPhone 4还在用着呢,这都7年了。
  6. 这几年,手机想玩出新花样比原来难了。如果想出现当时iPhone或者Mac Air的创新性和颠覆性,那基本上遥不可及,包括Apple。Apple想革命自己,现在来看,难!