中台演进之路

与大部分企业的服务化的演进之路如初一辙

单体应用阶段

单体应用,所有的服务跑在一个war包中,这个war包200多MB。之后遇到了如下的问题

  1. 数据库的链接到了瓶颈:因为所有的程序在一个war包中,这个工程的数据库连接池非常大,已经逼近了单机数据库的连接池的上限;
  2. 所有功能耦合在一起:牵一发而懂全身,很可能一个小改动就引起宕机;
  3. 性能问题:没法做业务的隔离,一个接口慢,会拖垮整个项目
  4. 业务膨胀导致没有一个人能了解所有的代码,祖传代码盛行。

服务化

飞行中换发动机,采用去中心化的分布式架构逐步用服务替换掉单体应用。

淘宝的微服务化

淘宝采用去中心化的微服务架构。与之相对的是中心化架构,著名的“ESB”架构,这个架构有个致命的问题,ESB作为真个架构的路由,所有的服务都会落在ESB上,那么他就会成为整个系统的瓶颈,维护成本很高,并且会制约业务发展。这些是互联网业务无法容忍的,所以淘宝就采用了HSF这种去中心化的分布式架构,服务直接点对点的直接调用。(它的特点naming服务只做服务发现、订阅和配置更新的推送,在服务之间大量的请求并没有走naming)。

这种架构也就是现在的微服务架构,因为它:

  1. 以服务方式提供应用
  2. 以服务的方式而非项目的方式组织架构
  3. 通过服务的只能编排提供业务支撑
  4. 智能运维,以及健壮的平台稳定性(降级、限流、熔断)

    当然微服务话我们也要接受如下挑战:

  5. 服务的管控:服务的配置中心,服务的全链路跟踪等需要支持否则排错,自我运维闭环是无法实现的;

  6. 分布式事务的支持:与单体不同,对于数据一致性要求高的场景我们要想办法支持分布式事务的场景;
  7. 只能运维的支持以及平台稳定性挑战;
  8. 组织架构的变化:要根据服务特点组织组织架构的变化;

演进史

建立共享服务中心,前期根据业务拆分了4个中心用户中心,商品中心,交易中心,店铺中心。

用户中心

改造成本低相较于其他模块功能简单,受益巨大上游调用次数多,所以是很好的🕙。