大型网站架构技术的核心价值不是从无到有搭建一个大型网站,而是能够伴随小型网站业务的逐步发展,慢慢的演化成一个大型网站。——摘自李智慧先生所著《大型网站技术架构——核心原理与案例分析》
以下内容整理自该书。
架构的演进并不是技术驱动,而是依赖于业务扩张及用户访问量增长给基础架构带来的压力所驱动。
一个网站的架构从小到大成长历程,像极了一个组织(或称之为公司/部门/team)的成长历程,在这里,我拿客服团队做例类比之,希望能让技术和技术管理不再那么泾渭分明,相反,可以融会贯通。
说明:客服团队的一线这里专指接听电话并派单的,二线负责处理一线派来的工单,如果无法解决,则再转个更专业的三线处理。
-
初始阶段
特征:单机管一切
类比:早期的客服,来电咨询或报障少,一个人就可以全栈解决(接电话、排查故障、反馈用户等)
初始阶段 -
数据服务分离
特征:数据库服务器单列、文件服务器单列
类比:随着来电业务量增加,开始把三线从二线中划分出来,并细分三线专业
数据服务分离 -
引入缓存
特征:极大改善性能
类比:自动化客服,自动匹配过虑掉大部分咨询问题,或者制作一些FAQ传单
引入分布式缓存 -
引入应用服务器集群
特征:极大改善并发处理能力
类比:设置专职的一线,打造二线团队
使用应用服务器集群 -
数据库读写分离
特征:提升数据库性能
类比:针对特定的三线专业特征,做针对性的人员分工安排
数据库读写分离 -
部署CDN及反向代理
特征:利用缓存,加速网站响应;降低后端负载压力
类比:在现有一线的基础,更前置一线,形成云一线的效果
使用CDN和反向代理 -
部署分布式数据库服务器及分布式文件服务器
特征:解决存储的瓶颈压力
类比:三线在分工的基础上,分别形成团队
使用分布式数据库系统和分布式文件系统 -
使用NoSQL及搜索引擎
特征:满足这类非关系性的需求
类比:扩展三线专业,支持新业务领域
使用NoSQL和搜索引擎 -
拆分业务
特征:拆分为若干业务,并引入消息队列
类比:形成多个客服部门
业务拆分 -
分布式公共服务
特征:通过公共服务的可复用, 降低数据库连接资源的过度占用
类比:设置公共服务部门,支持多个客服部门
分布式的公共服务
我相信:
1、好的知识呈现,是追求化繁为简的。
2、即使是跨领域,只要保持开放的心态,认真写,认真读,总有可能提炼出共性的智慧。
理解粗浅,类比牵强,欢迎指正。
最后,感谢李智慧先生浅显却深刻的文字!
网友评论