1. 背景描述
作为企业的 IT 人员,在今天充斥在我们耳边的最多的可能就是云计算、人工智能、分布式等名词。于是一场 IT 界的技术革命也在轰轰烈烈被掀起。于是越来越多的人人开始探讨集中式向分布式的变革,探讨传统数据库的更迭,探讨软件定义的 IT 世界。于是有了 IT 界发生的一切变化:越来越多的企业从私有云开始发展到混合云,从传统的关系型数据库探讨分布式数据库的过度,从传统的数仓模式过度到以大数据平台为核心的数据分析模式,从以 IaaS 为核心的基础架构过度到 PaaS & IaaS 并存的模式。
然而,这一系列变更的内部驱动力是什么?难道仅仅是因为分布式、云计算这些技术的革新需要我们不得不变么?那么大家有没有想到分布式、容器技术、大数据等这些技术本身的驱动力是什么?这些技术本身并不是这个时代才诞生的技术,而恰恰在这个时代才成为人们心中的主流,这不是因为技术本身的特质非常优秀,而是因为其特质顺应了这个时代的主流业务需求。了解到这一点,那么大家就很容易达成以下的几点共识了。
2. 顺势而为
做 IT 的人员针对技术的态度,可能粗略分为两种:一种是特别愿意接受新事物,一旦有新事物诞生,那么一定是第一个研究明白并且欣然接受的;另外一种是特别不愿意接受新事物,总抱着一种排斥的态度,主观寻找各种理由去否定新事物。
在这一节当中,我们想特别说一说后一种思维。这种人往往都是在传统的领域当中沉淀了很多,在这些领域当中非常优秀的人,他们花费了大量的时间和精力才得以对传统事物的认知,所以他们不愿意让一个自己并没有感情的新事物来撼动自己的权威性。但是,时代的发展是不以个人意志为转移的,不会同情个体在某一事物上的付出。互联网还不发达的过去,没有所谓的双 11 ,没有所谓的微博微信热点,没有所谓的春运抢票软件,那么作为 IT 人员,我们关注的更多的是因为单点故障导致的业务连续性破坏。我们会采用各种业务恢复技术(中间件集群、服务器高可用 HA 、数据备份恢复等)来保障我们的业务连续性。那么在互联网业务蓬勃发展的今天,我们会遇到千万级并发量的考验,会遇到瞬间增加数以百倍的系统压力,会遇到 PB 级的数据压力等等。其实最初的时候,互联网企业也是会用既有的传统技术去试图解决问题,靠不断的优化、升级、扩展等等,但是发展到一定阶段,他们发现传统技术固有的机制导致了问题的无解,然后才开始探索有哪些适合的技术。于是若干年前曾经诞生的但是并不起眼的一些技术登上了历史的舞台,比如说容器技术、分布式技术、大数据技术等等。
所以,任何新的技术能够成为热点趋势的时候,一定是因为它的某些特质顺应了时代的特殊业务场景。而这些业务场景我们是无法用固有的思维解决的。比如说你用数仓技术去处理海量数据的分析;比如说你用关系数据库去存取互联网上的半结构化数据;比如说你用传统的服务器 HA 技术去应对互联网银行业务系统;比如说你用 Oracle 参数优化的方法去优化 12306 的售票系统。这个时候我们要学会接纳,虽然我们目前没有遇到这样的业务场景,但是很可能未来会遇到。既然有实践证明这个新事物最起码适合某些特定的业务场景,或许不是很优秀的,但是一定有可取之处。所以我们要学会接纳。
3. 切勿轻浮
我们接着第二节当中说的第一种思维来聊聊。首先值得肯定得是乐于接受新鲜事物,因为新鲜事物才能带给我们创新的思维,带给我们时代的前沿思维。但是很多 IT 人一旦接触到了一点新鲜的技术,就敢于否定一切,敢于吹嘘他所接触到的这个事物是引领时代的弄潮儿。
经常有人一旦研究到一种所谓的分布式数据库,就认为传统的关系型数据库的末日到了,都应该下架了。请问逻辑在哪里?就因为这种分布式数据库是新鲜事物,就因为是某某互联网企业创造的?还有人认识到分布式对象存储技术的先进性之后就开始用对象存储的优势来全面否定传统集中式存储的价值。请问比较的基准公平么?有可比性么?我们不能把任何两种技术做简单的对比,然后得出好坏的结论,好坏都是相对于特定场景说的。其实如果你仔细研究,不仅仅要研究传统的关系型数据库的特质,还要研究新的分布式数据库的特质,你会发现从外界传递到你意识当中的信息和你真正研究下来得到的结论是不完全一致的,每一种数据库都是有其适用场景的,当我们认清了这种场景的特殊性和数据库的行为特征之后就知道其内在的必然性了,也就不会盲目去下一些不客观的结论了。
所以,接纳新事物否定固有事物不等于具备了创新思维,只有对新旧事物本身做了客观的分析和研究才具备了基本的技术分析能力和思维,结论的客观与否决定了我们作为技术应用者是否合格;只有从新旧事物的对比研究当中得出新的思路才能算作是创新,新的思路是否可行决定了我们是否可以称为技术创新者;否则盲目的评判就是技术的轻浮。
4. 业务为基,技术为驱
国家发展经济讲究供给侧改革,讲究的是社会及科技发展刺激新的需求,从而促进整体经济的良性循环。其实 IT 的发展也一样,互联网、云计算、人工智能不发达的过去, IT 的建设和发展基本上是要以业务需求为基准,并且是被动的适应。今天,虽然科技已经得到了突飞猛进的发展,但是基本的原则还是一样,那就是技术是要和业务的需求相适应的,只不过这个适应是从被动的适应转变为动态的自适应过程。也就是说技术的选型要与其支撑的业务场景特点相匹配,这个是基本原则。按照这个基本原则,如果我们的业务数据模型是二维表结构,如果我们的数据要求的是强一致,如果我们事务要求是严格的原子性,那么我们就必须选择关系型数据库;如果我们面对的是不确定性极大的互联网访问,如果我们面对的是经常性的秒级数以千万的并发量,如果我们面对的是瞬间的系统压力攀升,那么我们必须选择分布式架构,选择可以弹性扩容的容器架构。
与传统的被动适应区别的一点是技术和业务的自适应过程,也就是说新技术的应用可以促进业务发展的优化升级。举例来说,传统的业务场景在互联网发展的促进之下,可能演变出更多的需求。不仅仅对数据的一致性,事务的原子性等有要求,而且对并发量及灵活性有了更高的要求。那么这个时候我们就应该跳出传统的思维,通过前端业务改造将业务需求细分,把原有要求的业务范围缩小到传统架构的数据库上,将新的业务需求的业务范围剥离到新的分布式架构的数据库上,虽然架构不同,但是数据还是统一视图,仅仅是时间戳上的差异而已。其实很多互联网的业务都是基于这样的思维一点点升级改造成为今天他们可以自豪的定制化产品。
总而言之,时代改变的同时不仅仅带动了技术的变革,而且促进了业务的变革。业务场景的需求并不是一层不变,技术的选型也不是非此即彼、水火不容。关键的问题还是在于我们 IT 人员的思维是不是可以即抓住事物的原本规律,同时也能接纳并应用变通的原则。
5. 总结及展望
文到此处,没有任何褒贬批评之意,只是表达个人对今天这个时代的技术思维的一种认知。希望大家作为技术人能够脚踏根本、洗去浮层,重新审视新时代的脚下之路。