学习~从0开始学架构~8
作者:互联网
架构师应该如何判断技术演进的方向?
潮流派的价值观是新技术肯定能带来很大收益;稳定派的价值观是稳定压倒一切;跟风派的价值观是别人用了我就用
影响一个企业业务的发展主要有 3 个因素:市场、技术、管理,这三者构成支撑业务发展的铁三角,任何一个因素的不足,都可能导致企业的业务停滞不前,业务处于三角形的中心,毫不夸张地说,市场、技术、管理都是为了支撑企业业务的发展
- 产品类业务:技术创新推动业务发展,用户会自然而然地选择那些功能更加强大、性能更加先进、体验更加顺畅、外观更加漂亮的产品,而功能、性能、体验、外观等都需要强大的技术支撑
- 服务类业务:业务发展推动技术的发展,当“规模”成为业务的决定因素后,服务模式的创新就成为了业务发展的核心驱动力,而产品只是为了完成服务而提供给用户使用的一个载体;服务类的业务发展路径是这样的:提出一种创新的服务模式→吸引了一批用户→业务开始发展→吸引了更多用户→服务模式不断完善和创新→吸引越来越多的用户,如此循环往复。在这个发展路径中,技术并没有成为业务发展的驱动力,反过来由于用户规模的不断扩展,业务的不断创新和改进,对技术会提出越来越高的要求,因此是业务驱动了技术发展
除非是开创新的技术能够推动或者创造一种新的业务,其他情况下,都是业务的发展推动了技术的发展
业务“复杂度”的上升,导致原有的技术无法支撑;复杂度要么来源于功能不断叠加,要么来源于规模扩大,从而对性能和可用性有了更高的要求;架构师需要基于业务发展阶段进行判断系统的演进过程
互联网技术演进:互联网业务驱动技术发展的两大主要因素是复杂性和用户规模,而这两个因素的本质其实都是“量变带来质变”
复杂性
- 初创期~快速迭代试错、用户的反馈等手段,不断地在实践中去完善,才能继续创新
- 发展期~快速地实现各种需求,只有这样才能满足业务发展的需要,堆功能+优化;业务能否发展到那个阶段还是个未知数,保证当下的竞争力是最主要的问题,当优化无法抗住业务增长后开始进入架构期,对系统的功能、服务、数据库等进行拆分重组,通过结构优化支撑未来的业务增长
- 竞争期~更多的新业务引入,导致系统无法支撑,平台化(存储平台化:淘宝的 TFS、京东 JFS。数据库平台化:百度的 DBProxy、淘宝 TDDL。缓存平台化:Twitter 的 Twemproxy,豆瓣的 BeansDB、腾讯 TTC。)服务化(目的在于解决“系统交互”的问题,常见的做法是通过消息队列来完成系统间的异步通知,通过服务框架来完成系统间的同步调用。消息队列:淘宝的 Notify、MetaQ,开源的 Kafka、ActiveMQ 等。服务框架:Facebook 的 thrift、当当网的 Dubbox、淘宝的 HSF 等)
- 成熟期:精细化,细粒度调优,提升用户体验
用户规模
- 性能要求越来越高
- 可用性要求越来越高
标签:服务,发展,用户,开始,业务,技术,学习,架构,支撑 来源: https://www.cnblogs.com/it-worker365/p/14610128.html