阶段一(单机部署)ECS:应用和数据库存在资源争用;单机性能不足以支撑业务
阶段二(应用与数据分离)ECS+RDS:随着访问量增大,单个应用服务器无法应对;存在单点故障
阶段三(应用服务器集群)虚拟VIP KeepAlived,绑定主备虚机:无法做到多服务器负载均衡,只能以主备方式工作,单机性能有限
阶段三(应用服务器集群)负载均衡ECS+RDS+ELB:需要额外处理session数据;不能解决数据库高负载
阶段四(数据库读写分离)ECS+RDS(主从)+ELB:需要应用自身实现针对多个从数据源选择问题
阶段五(通过缓存减轻数据库读压力)ECS+RDS(主从)+ELB(弹性负载均衡)+DCS(分布式缓存):对于针对关键字的模糊查询效率不高
阶段六(通过搜索引擎提高数据库读效率)ECS+RDS(主从)+ELB(弹性负载均衡)+DCS(分布式缓存)+ES(Elastic search):对于数据库写操作压力无能为力
阶段七(数据库分库分表-垂直拆分)ECS+RDS(主从)+ELB(弹性负载均衡)+DCS(分布式缓存)+ES(Elastic search)+DDM(分布式数据库中间件):需要维护多个数据库的状态一致性和数据同步;需要考虑原来跨业务的事务以及跨数据库的join
阶段七(数据库分库分表-水平拆分)ECS+RDS(主从)+ELB(弹性负载均衡)+DCS(分布式缓存)+ES(Elastic search)+DDM(分布式数据库中间件):访问用户信息的应用系统需要解决SQL路由的问题,因为现在用户信息在两个数据库,需要了解数据在哪里;主键的处理也变得不同,例如,原来自增字段,现在就不能简单地继续使用;如果需要分页查询,那就更加麻烦
阶段七(数据库分库分表总体架构)ECS+RDS(主从)+ELB(弹性负载均衡)+DCS(分布式缓存)+ES(Elastic search)+DDM(分布式数据库中间件):所有用户访问中心站点,对于距离较远或者跨网络传输的用户,高时延造成的用户体验差
阶段八(就近访问,动静分离)CDN内容分发网络:静态文件的缓存更新以及前后端的更新成本比较大
阶段九(多层次负载均衡,提高大规模访问并发能力)ELB:所有用户访问中心站点,造成中心站点压力大,并且无法做到基于地域的容灾
阶段十(多站点负载均衡,提高容灾能力)ELB+CSDR/CSHA+RDS主备+第三方智能DNS+GSLB+应用级灾备方案:随着数据的丰富程度和业务的发展,检索、分析等,单单依靠关系型数据库无法解决如此丰富的需求
阶段十一(引入NoSQL数据库)MRS大数据+DWS融合数仓+DDS文档数据库:引入更多组件解决了丰富的需求,业务维度能够极大扩充,随之而来的是一个应用中包含了太多的业务代码,业务的升级迭代变得困难
阶段十二(应用拆分)分布式配置中心Zookeeper:不同应用之间存在共用的模块,由应用单独管理会导致相同代码存在多份,导致公共功能升级时全部应用代码都要跟着升级
阶段十二(面向服务的架构SOA)ESB总线:如何进行不同服务间的远程调用
阶段十三(通过消息中间件实现异步解耦)HttpAPI、TCP SDK、Kafka SDK三种数据访问接口:拆分的子系统随着业务的复杂耦合仍然面临难以开发和维护的问题
阶段十四(容器化部署)CCE云容器引擎+CCI云容器实例
阶段十四(服务网格)ServiceCombo基于SDK的微服务治理框架/ASM基于isito的服务网格
阶段十四(微服务化)华为FusionStage分布式事务中间件DTM