从技术演变的角度看互联网后台架构
首先是2008年以前,我把它称为网站时代。为什么这么说?因为那时候的后台开发就是写网站,而且通常是页面代码和后台数据逻辑一起写。你只要能写JSP/PHP/ASP来读写Mysql或者SQL Server,基本就能保证一份不错的工作了。 要强调一下,这种简单的两层结构并不能说就是落后。在现在各个企业、公司以及小团队的大量web应用包括移动App的后端服务中,采用这种架构的不在少数,尤其是很多公司、学校、企业的内部服务,用这种架构已经足够了。 注意一个时间节点:2008。 当然,这个节点是我YY的。这个节点可以是2007,或者2006。这个时间段发生了两个影响到现在的事情:google上市,facebook开始推开 我个人相信前者上市加上它发表的那三篇大数据paper影响了后来业界的技术方向,后者的火热则造成了社交成为业务热点。偏偏社交网站对大数据处理有着天然的需求,技术的积累和业务的需求就这么阴差阳错完美结合了起来,直接影响了大海那边后面的科技发展。 同时在中国,那个时候却是网络游戏MMO的黄金年代,对单机单服高并发实时交互的需求,远远压过了对海量数据data mining的需要,在这个时间点,中美两边的互联网科技树发生了比较大的分叉。这倒是并没有优劣之说,只是业务场景的重要性导致了技能树的侧重。直到今天,单机(包括简单的多服务器方案)高并发、高QPS仍然也是国内业界所追求的目标,而在美国那边,这只是一个业务指标而已,更看重的是如何进行水平扩展(horizontal scaling)和分散压力。 国内和美国的科技树回到一条线上,大数据的业务需求和相关技术发展紧密结合起来,可能要到2014年左右,随着互联网创业的盛行,O2O业务对大数据实时处理、机器学习推荐提出了真正的需求时,才是国内业界首次出现技术驱动业务,算法驱动产品的现象,重新和美国湾区那边站在了一条线上,而这则是后话了。 到了2010年前后,facebook在全球已经是现象级产品,当时微软直接放弃了windows live,就是为了避免在社交领域硬怼facebook。八卦一下当时在美国湾区那边聚餐的时候,如果谁说他是facebook的,那基本就是全场羡慕的焦点。 facebook的崛起也带动了其他大量的社交网站开始出现,社交网站最大的特点就是频繁的用户搜索、推荐,当用户上亿的时候,这就是前面传统的两层架构无法处理的问题了。因此这就带动了中间件的发展。实际上在国外很少有人用中间件或者middelware这个词,更多是探讨如何把各种service集成在一起,像国内这样强行分成frontend/middleware/storage的概念是没听人这么谈过的,后面中间件再说这问题。当时的一个惯例是用php做所谓的胶水语言(glue language),然后通过hessian这些协议工具来把其他java服务连接到一起。与此同时,为了提高访问速度,降低后端查询压力,memcached/redis也开始大量使用。基于lucene的搜索(2010左右很多是自行开发)或者solr也被用在用户搜索、推荐以及type ahead这些场景中。 我记忆中在2012年之前消息队列的使用还不是太频繁,不像后来这么重要。当时常见的应该就是beanstalkd/rabbitmq, zeromq其实我在湾区那边很少听人用,倒是后来回国后看到国内用的人还不少。Kafka在2011年已经出现了,有少部分公司开始用,不过还不是主流。 2013年之后就是大数据+云的时代了,如果大家回想一下,基本上国内也是差不多在2014年左右开始叫出了云+大数据的口号(2013年国内还在手游狂潮中...)。不谈国外,在中国那段时间就是互联网创业的时代,从千团大战到手游爆发到15年开始的O2O,业务的发展也带动了技术栈的飞速进步。左上角大致上也写了这个时代互联网业界的主要技术热点,实际上这也就是现在的热点。无论国内国外,绝大部分公司还并没有离开云+大数据这个时代。无论是大数据的实时处理、数据挖掘、推荐系统、Docker化,包括A/B测试,这些都是很多企业还正在努力全面解决的问题。 但是在少数站在业界技术顶端或者没有历史技术包袱的新兴公司,从某个角度上来说,他们已经开始在往下一个时代前进:机器学习AI驱动的时代 2018年开始,实际上可能是2017年中开始,AI驱动成了各大公司口号。上图是facebook和uber的机器学习平台使用情况,基本上已经全部进入业务核心。当然并不是说所有公司企业都要AI驱动,显然最近发生的波音737事件就说明该用传统的就该传统,别啥都往并不成熟的AI上堆。但另一方面,很多新兴公司的业务本身就是基于大数据或者算法的,因此他们在这个领域也往往走得比较激进。由于这个AI驱动还并没有一个很明确的定义和概念,还处于一种早期萌芽的阶段,在这里也就不多YY了。 互联网后台架构发展的简单过程就在这里讲得差不多了,然后我们快速谈一下web开发框架。 (编辑:衡阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |