架构师 0 期 | 互联网巨头不是一天练成的

可以说所有的大型互联网系统都是一步一步慢慢演化来的。一般商业模式都是发现一处痛点或商机,先用最小的人力物力做一个MVP(最小化可行产品(Minimum Viable Product)),投入市场验证,如果可行的话,再投入更多的资源进行开发,如果不行则即刻止损。
系统演化
举例:阿里巴巴是在马云家客厅诞生的。Google是在斯坦福大学的实验室里诞生的。Facebook是扎克伯格在哈佛大学宿舍里开发的。而如今无疑他们都是巨无霸。
演化阶段0
最简单的程序
应用程序、文件、数据库

演化阶段1
应用数据分离
一个系统分成3个系统,系统性能可以提升3倍。

演化阶段2
使用缓存改善性能
将经常访问的数据放到内存中,可以显著提升访问数据IO操作慢的瓶颈问题。

演化阶段3
使用应用服务器集群
改善系统并发能力。部署多套应用服务,使用负载均衡软硬件去统一调度应用服务器。使业务平均分配到各个服务器上,当有部分服务器不能使用时,依旧可以提供正常业务能力。

演化阶段4
数据库读写分离
多数服务都是读的操作更多,使用主从数据库,让读的业务从从数据库中读取,主数据负责写入数据,写入的数据及时的同步给从数据库。

演化阶段5
使用反向代理和CDN
动、静态资源分离,把静态资源部署在运营商的机房,用户使用时,会从离他最近的机房请求到静态资源,一般静态资源比较大,少数的动态资源从服务器获取。这个服务一般购买对应的服务自动就具备此能力。

演化阶段6
使用分布式文件系统和分布式数据库系统
使用数据库和文件系统的集群,多个数据库统一提供服务。

演化阶段7
使用NoSQL和搜索引
增加搜索引擎服务器、NoSQL服务器
更换非关系型数据库,使用key-value方式查询数据,部署独立的搜索引擎来查询数据。

演化阶段8
业务拆分
将业务进行拆分A业务、B业务、通过消息队列服务器进行连接通信,解耦。假如A服务器挂了,B服务依旧可以对外正常提供服务。

演化阶段9
微服务和中台化
将更多业务进行拆分,全部独立部署。使用消息队列服务器进行通讯(MQ、dubbo等方式)
将核心模块统一管理,统一部署成中台。对外提供基础能力。
将来再做其他应用时,无需从头做起,可以快速孵化应用。

演化阶段10
大数据与智能化
随着业务不断积累大量数据,智能推荐系统、机器学习,模型不断训练等。
系统将变得越来越智能。
未来可期。
版权声明: 本文为 InfoQ 作者【刁架构】的原创文章。
原文链接:【http://xie.infoq.cn/article/ad5aef1142cd2093b307a9c5c】。文章转载请联系作者。
评论