导读:《架构设计》系列为极客工夫李运华老师《从 0 开始学架构》课程笔记。本文为第十二局部。次要介绍了技术演进的能源和演进模式,如不同期间所面临的问题以及该如何解决。
扫描文末二维码 关注公众号 回复“架构设计”获取架构设计笔记残缺思维导图
技术演进能源
- 对于产品类业务:技术创新推动业务倒退!
- 对于“服务”类的业务:业务倒退推动技术的倒退!
互联网技术演进模式
互联网业务千差万别,但因为它们具备“规模决定所有”的相同点,其倒退门路也基本上是统一的。互联网业务倒退个别分为几个期间:
- 初创期
- 发展期
- 竞争期
- 成熟期
不同期间的差异次要体现
业务复杂性
初创期
初创期的业务对技术就一个要求:“快”,但这个时候却又是守业团队最强大的期间,可能就几个技术人员,所以这个时候十八般武艺都须要用上:能买就买,有开源的就用开源的。
发展期
堆性能期
业务进入疾速发展期的初期,此时团队规模也不大,业务需要又很紧,最快实现业务需要的形式是持续在原有的零碎外面一直地减少新的性能,重构、优化、架构等方面的工作即便想做,也会受制于人力和业务倒退的压力而放在一边。
优化期
- 优化派 核心思想是将现有的系统优化
- 架构派 核心思想是调整零碎架构,次要是将原来的大零碎拆分为多个互相配合的小零碎。
架构期
- 通过优化期后,如果业务可能持续倒退,缓缓就会发现优化也顶不住了,毕竟再怎么优化,零碎的能力总是有极限的。
- 架构期能够用的伎俩很多,但归根结底能够总结为一个字“拆”,什么中央都能够拆。
竞争期
- 反复造轮子
- 零碎交互一团乱麻
解决方案
平台化:目标在于解决“反复造轮子”的问题。
- 存储平台化:淘宝的 TFS、京东 JFS。
- 数据库平台化:百度的 DBProxy、淘宝 TDDL。
- 缓存平台化:Twitter 的 Twemproxy,豆瓣的 BeansDB、腾讯 TTC。
服务化:目标在于解决“零碎交互”的问题,常见的做法是通过音讯队列来实现零碎间的异步告诉,通过服务框架来实现零碎间的同步调用。
- 音讯队列:淘宝的 Notify、MetaQ,开源的 Kafka、ActiveMQ 等。
- 服务框架:Facebook 的 thrift、当当网的 Dubbox、淘宝的 HSF 等。
成熟期
此时技术上其实也根本进入了成熟期,该拆的也拆了,该平台化的也平台化了,技术上能做的大动作其实也不多了,更多的是进行优化。这个时候的技术优化没有固定的套路,只能依照竞争的要求,找出本人的弱项,而后逐项优化。在逐项优化时,能够采取之前各个期间采纳的伎俩。
用户规模
用户量增大对技术的影响次要体现
- 性能要求越来越高
- 可用性要求越来越高
质变到量变
- 互联网业务驱动技术倒退的两大次要因素是复杂性和用户规模,而这两个因素的实质其实都是“质变带来量变”。
- 应答业务量变带来的技术压力,不同期间有不同的解决形式,但不论什么样的形式,其外围指标都是为了满足业务“快”的要求,当发现你的业务快不起来的时候,其实就是技术的程度曾经跟不上业务倒退的须要了,技术改革和倒退的时候就到了。
reference
- 《从 0 开始学架构》https://time.geekbang.org/col…