在传统企业做互联网架构是什么感受?

Untitled-1.jpg

最近与某位搞风险投资的朋友聊起中美贸易战,他对未来局势的走向很是悲观,而我却不屑一顾。

在他眼里,当下的美国已将中国列为竞争对手,曾今的大哥摆出了一副 “你若不死,绝不收手” 的架势——无论你再妥协,再讨好,甚至跪下,大哥恐怕也决不会罢休。因此,曾今的小弟也只能勉强还以 “你若强干,奉陪到底” 的架势,尽力不用任性、冲动的行为举止来对待至关重要的中美经济关系。

在聚会即将结束的时候,他说:“不过也只有在这种经济背景下才能分辨企业价值的真伪,毕竟当经济潮水退去之后,才知道谁在裸泳,你看那些天天嚷嚷着 ‘华为式狼性文化’ 的互联网企业,如今还有几家活着?反而是那些胆小谨慎的 ‘乌龟式传统型企业’,虽说成本控制严紧,使得互联网架构发展受限,但基本都还活得不错。”

不过在我看来,在寒冬来临之际,即便传统企业已囤够了食物与资源,在许多技术男眼里,能去互联网企业还是梦寐以求的愿望,而传统企业似乎早就已被历史所唾弃,哪还会管它是死是活呢?

在传统企业搞IT都会遭遇到什么?

在传统企业中,一般系统应用之间没有太大的关联,按业务功能垂直切分即可,联通或交互均使用关系型数据库来解决,同时连接多个数据库无非多搞几个连接池就行了。

在面对业务需求实现的时候,通常会有两种应对方法:

第一种,如果要在原应用上增加新功能,或对某项功能进行扩展,就将原本较小的系统慢慢发育成较大的系统。这种方式适用于需求比较少,且对迭代速度要求不高的情况下。
第二种,另起炉灶,推翻原有系统,针对新需求进行重新设计、开发。

/uploads/fox/20092855_0.jpeg
图1 传统的IOE架构

俗话说,什么样的土壤,就适合种植出什么样的植物。聊完技术视角,我们再来聊聊企业文化视角。

在传统企业中,常会听到 “技术不重要,不要过分强调” 这样的论调,似乎是说,行业IT的主要目标是开发、支持业务应用系统,不管用什么技术,只要可靠、稳妥、“成熟”,能把应用系统功能按业务部门要求做出来就行了。
什么技术创新,什么高扩展性,能通过加机器解决的场景都不是问题。管它什么Java还是C++,还是其他什么鬼,按时交货、上线不出问题,就是好样的。

比如,在强监管控制下的金融行业,不管用什么技术,监管提出个新要求,无论你用外包还是自研,能跑通就万事大吉了。

再比如,你技术团队的老大很有技术情怀,想要自主研发了一套消息中间件,首先团队要发自肺腑的想干这事,但要在不影响业务型项目进度的前提下、发挥极其巨大的“主观能动性”、自发自觉加班加点,或者躲在家里作为业余兴趣才能搞得起来。为什么这么说?因为在高层眼中,技术资源的配比都是按照业务功能对应计算得出的,假设A系统需要5个研发,再按业界标准配1个测试,运维工作可以共享,你说要加俩人搞个跟业务无关的东西?不好意思,一听不懂,二不明白,三请拿出价值链导向公式,用非技术人能听懂的逻辑关系说明白投入与回报之间的利益关系。

在我看来,在大部分的传统企业中,最终决策的高管通常不仅都是前台业务出生,而且从未经历过互联网文化的洗礼,对于技术与科技的认知只停留在工具化阶层,怎么理解这句话呢?比如,A销售员每年能给公司带来1000W的利润,而B销售员每年只能给公司带来800W的利润,那么A销售员必然会受到更多精神上的认可,物质上的奖赏,这个逻辑很好理解。但想要让高管弄明白一套消息中间件的奥妙,外加IT人天生口舌笨拙,他们自然不能理解为什么需要投入这些无法见到收益的资源。

我觉得,传统企业的IT特点通常可概括为以下几点:
/uploads/fox/20092855_1.jpeg
传统架构被抛弃的真正原因是什么?
在许多人眼里,“资源成本高” 与 “人才招聘难” 是传统架构被抛弃的两大最根本原因。我觉得这种观点既片面,且不客观。

先来说说 “资源成本高”。有人抨击Oracle、WebLogic这样的商业软件,不仅Listener贵,而且还必须跑在高昂的硬件资源上(比如小型机),而用MySQL不仅免费,而且还能上云,既便宜,又实惠。

以我曾经在某家电商公司的Oracle10g为例,费用支出一般可以分为以下四个部分:

1.购买Oracle License;
2.购买Oracle第三方服务;
3.聘用数据库管理员;
4.数据库服务器硬件。

 记得曾粗略的估计过,每年成本投入在200万左右。如果换成MySQL,除License能省点钱之外,其余部分不见得能省多少。但还是有人会怒喷,说Oracle不能上云,MySQL能上云,上云的费用比私有IDC便宜很多,这部分费用你怎么不算?

以我现在的公司为例,为了上云我们曾粗略的计算过成本,如果是公共云,的确可以省去不少的成本,但对于金融等强监管领域,从政策维度就没有可行性。如果是私有云,单硬件成本这项,就会比传统机房高出20%以上,再加一些PaaS服务的购买,拿个计算器按按,心里也会犯起嘀咕。

再来说说 “人才招聘难”。有人抨击说现在懂Oracle、WebLogic这样的商业软件的工程师屈指可数,而且这些技术早就扔进了历史的垃圾堆,不信?看看简历就知道啦,都是Redis、MySQL与MQ这样的关键字,不是精通,就是熟悉。

有一种现象叫,“企业的技术选型方向,并非来自于技术本身的优略性,而通常来自于技术当家人的情怀癖好”。
在90后当道的今天,有许多技术经理或总监,从他踏入技术圈的那天起,脑海中就充斥着 “某某宝用云服务,某某去IOE” 的经典桥段,先不评判这种教条是对是错,至少它是客观存在的,而且它影响着人的意识与判断。因此,只要你简历上写上Redis、MySQL与MQ这些关键词,就能获得更多的面试机会,只要你对Redis、MySQL与MQ这些技术原理与场景的经验越丰富,就能获得更好的晋升与加薪的机会。

为什么传统企业也来搞互联网架构?

有人说,照你这么说,传统企业那就老老实实的搞IOE呗。但有个问题奇怪,为什么类似于银行、制造业,也都纷纷举起互联网架构的大旗,摇旗呐喊的往里拱呢?

不可否认,传统架构存在一些弊端,无法满足传统企业在业务上的演进需求。

比如,工程效率。很多企业的商业套件随着需求的高效发展往往需要很长时间的迭代过程才能上线新的业务,而当下的业务都开启 “快速试错,快速迭代” 的节奏,不可能等上线之后再重新发起个全流程,重来一次。

再比如,弹性不足。很多传统企业在IT资源投入采用预算制,也就是在年初就已将支撑的用户数量确定好,要多少钱,多少人都数好,而随着业务的快速发展,甚至遇到业务下降的时候,传统架构,无论硬件的扩容或缩容,还是软件的License都无法快速的得到控制与下降(比如Oracle License是按照年度付费,还有像云节点是按照使用时间进行收费,高峰时间扩容出去用,低峰时间又可以缩容回来)。

还比如,技术氛围。传统企业与互联网企业一样,都希望能够吸引优秀的工程师,更希望能有头部工程师带动与引领,这样就能带动整个团队进行跨行业的、从其他地方来的新思维、新技术、新理念的碰撞,从而避免思想与文化始终处于一个封闭的环境中,这样做不仅有利于团队稳定,也更利于技术传承,好一好还能拿出一些技术成果去某技术大会上秀一把,满足大伙精神上的装X诉求。

总结思考

无论这是历史之潮流,还是人心之所向,虽说流行程度并不能代表适合程度,但传统架构在这股浪潮的波涛之中,逐渐走向灭亡已是不争的事实。

不过,任何技术都是为业务服务而存在的,脱离业务的任何技术解决方案都是耍流氓的一种手段罢了。虽说在传统企业做互联网架构,有时会感到孤单、畏惧、不被认可,但一名优秀的技术领导者,应该是集乐观、积极心态与自律于一身的复合型人物,当看到创新机遇时,会想到利用新技术与传统业务之间的结合,创造出更有效的价值。

谁规定搞传统业务的企业,就不能用上最前沿最好玩的技术了?谁规定传统企业就无法吸引到优秀工程师了?
事在人为,并不冲突。


作者:王晔倞,18年IT从业经验,现任职好买财富平台架构部技术总监,负责好买中间件及平台化的研发及运营,团队管理和实施重大技术决策。曾任大智慧测试总监,在2年内带领团队自研了“大智慧云测试平台”,通过平台化将金融数据服务业务从瀑布式逐渐转型为DevOps。


0 个评论

要回复文章请先登录注册