[TOC]
邓公曾经说过 “科学技术是第一生产力”,那么是不是代表着有其他东西也是生产力,是第二生产力、第三生产力?可能依据它所产生的效果、效率或者程度不同,有第一、第二排序之分。那么今天我想要聊的这个主题就是 ”先进工具也是一种先进生产力“,基于为什么要聊这个主题呢,主要是基于我这两三个月在讯飞工作所遇到的一些痛点、一些感受或者一些感悟吧,所触发的想要探讨这个主题。
今天想从三个方面来讲述,首先是我在讯飞工作的这几个月的切身感受,基于这些感受我为什么联想到今天的这个主题;第二块是与之前在百度工作的一些对比,因为没有对比就没有更深刻的体会;第三是云栖大会杭州之行我所见的三波同学的一些聚会所聊,跟本篇主题的一些联系。
讯飞工作的这两个月
第一件是我来讯飞之后接到的第一个任务也是临危受命的一个任务,就是给教育事业部临时搭建一套在线联机OLAP分析处理系统,给他们临时使用来处理线上的数据处理,当我接到这个搭建单机版系统的任务之后,我才发现,oh my gold,像讯飞这么大体量的一个公司(大概有七八千员工,大约跟滴滴一个体量了吧)竟然没有一套上线平台。
什么叫上线平台呢?就是你要部署一套系统,你通过一个在线平台来部署你的服务,而不是通过人工通过人肉自己到线上的机器来搭建部署。因为我们做系统的都知道,线上的东西是不能随便乱动的,任何人工的修改都有可能会出错,所以在大公司像BAT他们都有自己的一套上线平台,像百度的noah web/rcp/orcp等这样的平台来完成线上各类服务的部署工作。
而我在部署的时候呢,我打听了一圈,公司没有一个公司级别的上线平台,其他部门有没有呢,据我了解貌似没有,就是有也是团队内部所使用,没有很大规模的或成系统的有专门运维升级的这样的一个平台。这是我入职讯飞接到的第一个任务的第一感受:这么大的一个公司,竟然没有上线平台,那么像云平台/AIUI这样的大平台大业务,他们的上线是怎么完成的呢?难道都是人肉手工操作?这怎么能办到呢。。。这怎么能持续呢。。。
但是带这样的疑问我还是得硬着头皮去部署我接手的第一个系统,因为时间紧迫只有短短的一周时间,去部署一套之前完全没有接触过的系统,虽然最后也是成功部署,但是过程还是充满着战战兢兢。
接下来从第二周开始,我就要深入了解这套系统,因为我以后就要基于这套开源系统来做深度定制与我们已有的大数据平台做融合,使我们的大数据平台拥有OLAP能力,那么我在接下来的两个月过程中,主要的一个工作就是围绕这套系统,从源码到部署、测试(全量测试/单元测试),到提交patch、社区等等一系列的情况,做深度的了解,并基于此来开始做一些方方面面的定制工作,让它融合进我们已有的大数据平台。那么在这个过程中,我又遇到了哪些痛点呢?
第二个痛点就是我们的测试环境非常的简陋,一个大概将近20人的团队,测试机器每个集群(北京/合肥)只有3台机器,所有的组件开发测试都在这3台,就导致测试的环境非常混乱,经常会被别人修改了环境,然后当你在调试的时候发现环境不能用了,找了半天原因原来是基础环境被人修改了。。。所以我们没有一个统一的沙箱环境来用于我们平时的测试工作。
第三个痛点就是我们平常会提交代码到git仓库,那么由代码仓库我们就会联系到代码检测、代码自动化测试,我才发现讯飞没有自动化测试平台,我们的QA测试大多都是手工人肉测试,可以理解为点点点,只有功能测试没有存量case测试,所以说每次我们新功能上线,我们并不能做到心中有数,拍胸脯说我们的新功能不会对以前的功能造成影响。
第四个痛点就是我们没有一个从代码提交到代码保管到触发测试到上线,这么一整套的开发/测试/灰度发布/上线联动的这样的平台,所以说每个环节都得自己去完成,那么就会出现我们上个线会有一个专门负责上线的同学,晚上上线甚至要上到11点12点有一次竟然上线到第二天凌晨4点,这在大公司是很少很少出现的。
第五个痛点还是平台,公司这么多机器的管理没有一个公司级别的机器统一管理平台,像百度的noah,那么机器都是怎么管理的呢?说出来大家可能觉得不可思议,像语音云那边那么多机器,竟然是人肉运维,他们的运维同学分为两班,白天值班夜里值班,就像传统工厂里有上白班的有上夜班的,这竟然出现在号称自己是人工智能的公司里。
第六点,就不在一一列举了,公司像域名管理,docker环境,VPN管理(VPN分为不能理解的两套),而VPN还不能说是真正的VPN只能说开了一个专门针对某一机器特定端口的访问权限,这跟真正的VPN还差很远。类似这样的基础环境没有公司级别的部门或者团队来负责维护升级,而这些在BAT里就像水和电一样,随之可取开箱即用。所以基于这样的一个大环境,在工作的这两个月中,每想做一件事的时候,都会很头疼这些基础的能力。我觉得由专门的人来做专业的事情,是效率最高的也是最靠谱的。
基于在讯飞工作的这两三个月的切身体会,所以我才有了想要写这篇,是想说明先进工具是有多么重要因为它也是一种先进生产力。因为在一线公司里可能不觉得,但是一旦来到非一线公司里,你才会发现原来在一线公司里使用的那些平台那些基础组件、环境、习以为常的东西是这么得可贵是这么得无比难得。
Compared with Baidu before
刚才说的这些讯飞的点点滴滴的东西,我是怎么会有感受的呢,主要是因为跟之前在百度工作的对比。因为我在这边做的工作,虽然说形式不同点不同,但是本质上都是开发代码,工程师所涉及到的一整套的从开发测试部署上线流程是相通的,所以过程中一跟百度对比,我就能发现原来国内三四线的公司与一线的公司的差异,一会我再说像网易这样的二线公司与一线的差距。
那么三四线与一线有多少差异呢?其实不光是这些具体的工作上的使用的差距,最主要的是思维上的差距,包括认知和见识上的差距,比如说讯飞的这些工程师好多都是没有在大公司工作过的经历,从基层到中高层,当然这一两年好一点了有很多从北上深大公司回来的同学。而且讯飞还有一个特定,就是讯飞的老员工比较多,就是这个公司比较老,包括它的创始团队这么多年没有变过,并且这些创始人都是做科研出身的,没有做工程的思维跟理念,这从上到下整体缺乏大公司工程化的理念,所以说可能讯飞的高层可能觉得工程上的这些平台这些工具也不是很重要,最重要的是我们的核心算法核心研究,我们要掌握高尖端技术或者算法,所以说这里的人认为大公司的平台点点点也就那样。
其实不是这样的,磨刀不误砍柴工,这句老话还是很有道理的,你看百度它想做一件事,能很快速的迭代出来,而且质量还很好,这就是因为它的好的一些基础轮子很多很多,要想做一件事情,比如说想盖一个楼阁,基础的东西全都有了,只要基于图纸把它实现出来就可以了,而在讯飞,你要建一个楼阁,你连底层的根基打桩的工具都没有,得人工一撬一撬去挖,可想而知这样的楼阁建出来跟百度那样大轮子大机器大工程化建出来的一对比,质量一比高下立见。
云栖之行
第三点,我想聊一聊前段时间去杭州参加17年的云栖大会的一些感受,在杭州,参加云栖大会本身对我来说并没有什么很大的收获,这个会很像是一个公司搞的营销博览会,看看热闹而已。
最大的收获是我在杭州见的三波同学,这三波同学给我的感受就比较大了。
第一波是国企的同学,在浙江省联通公司的同学;第二波是在杭州创业公司的同学;第三波是在杭州阿里网易工作的同学。
整个感受是杭州的政府单位的同学工作效率要比北方包括东北这些国企单位要高,由于阿里巴巴这个全球大公司在杭州给杭州带来的先进生活方式先进的工作理念,蔓延到了它所在地的国企,所以整个国企的效率也是相对较高的。
第二波是跟杭州的创业公司同学的会面,跟北京的创业公司一样,很累很辛苦也需要996,但这里的创业氛围已经初步形成,来这里创业的同学越来越多。
第三波是跟网易的同学聊天,我才发现像网易这样的中国二线互联网公司,工作模式与我在讯飞的竟然还有一些相同之处,原来他们也没有像BAT有的那些很全面的大平台,它们内部有很多像小作坊的一个一个团队,没有那种大平台大理念,发挥很大的工程效率,没有大公司那种以工程效率为第一导向的那种理念,所以这一点还是有点出乎我的意料之外的。
所以在杭州的这四天跟这三波同学聊天,让我收获颇丰,包括那几天在杭州的见闻,我上次去杭州大概是14年的时候,3年之后再去杭州发现变化很大,由于阿里巴巴这一个全球大公司在这个城市原因,给这个城市注入了很多的新鲜血液,新鲜的理念,新鲜的生活方式。
写在最后
这就是最近这几个月的一些感受,可能这篇吐槽的地方比较多,写的也比较杂乱,但是这些都是工作上痛点的切身感受,希望在未来,这种情况能慢慢变好,让中国的互联网能在北京之外遍地开花!