架构师训练营 W4 作业
一个典型的大型互连网系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
我们可以将企业业务分两类 ,对于不一样的性质,以不同角度思考问题。
产品类业务,技术创新推动业务发展。据独占性,用户选择一个产品的根本驱动力在于产品的功能是否能够更好地帮助自己完成任务。
服务类业务,业务发展推动技术的发展。大量用户使用这些服务来完成需要与其他人交互的任务,单个用户“使用”但不“独占”某个服务。用户选择一个服务的根本驱动力不是功能,而是“规模”。
服务类业务符合的互连网的特徵与本质,都是业务的发展推动了技术的发展。技术方案的提出都是因为业务“复杂度”的上升,导致原有的技术无法支撑。
我们基于业务不同发展阶段来判断复杂度所体现的环节,以淘宝为例:
初创期
2003 年,业务刚刚创立,复杂度体现在如何才能快速开发各种需求。于是购买了一个 PHP 系统来二次开发。
发展期 - 现有的系统优化
2004 年,上线后业务发展迅速,用户请求数量大大增加,复杂度体现在如何才能保证系统的性能。于是用 Oracle 取代 MySQL。
用户数量持续增加,复杂度在性能和稳定性。于是以 Java 替换 PHP。
2005 年,用户数量继续增加,复杂度体现在单一的 Oracle 库已经无法满足性能要求。于是分库分表、读写分离、缓存等优化。
发展期 - 调整系统架构
2008 年,淘宝的商品数量在 1 亿以上,PV 2.5 亿以上,复杂度在系统内部耦合,交易和商品耦合在一起,支付的时候又和支付宝强耦合,整个系统逻辑复杂,功能之间跳来跳去,用户体验也不好。于是采取系统解耦,将交易中心、类目管理、用户中心从原来大一统的系统里面拆分出来。
竞争期 - 平台化
竞争对手加,业务继续发展,不断有新的业务创新出来。技术的要求开始往拆分进行。复杂度在系统数量的量变带来了技术工作的质变,于是有了平台化跟服务化。
存储平台化: TFS
数据库平台化: TDDL
消息队列: Notify、MetaQ
服务框架: HSF
成熟期
企业熬过竞争期,成为了行业的领头羊,该做的也都做了。用户量越来越大,复杂度在于性能与可用性。
评论