企业在实际运营的过程中,研发人员为了产品的快速上线运营,往往把一台服务器当网站,论坛、数据库等应用全部放到一台云服务器上,前期没有合理规划系统。此外,还有一种常见的情况是:前期测试的服务器到正式上线时,测试服务器直接变为线上环境,没有合理规划系统架构。
因此,当遇到故障时,容易造成整个业务系统瘫痪,同时,业务环境会对服务器的CPU、内存、磁盘、带宽等系统资源进行竞争,显然,目前常见的系统架构已经不适应企业的实际应用需求。
企业为什么需要进行系统架构升级
用户系统架构遇到这样的情况时,就说明亟待升级了,例如:
当业务系统访问量达到1000W级别应用场景时,有孚网络通过“垂直扩展“按照不同的业务拆分到不同的服务器上。
垂直扩展
按照不同的业务Web、缓存、数据库等切分到不同的业务服务器之上,这种切分称之为垂直扩展。
此时,通过分布式文件系统OSS已经解决了文件存储的性能问题,CDN也已经解决静态资源访问的性能问题。但是当访问压力再次增加,这个时候Web服务器和数据库方面依旧是瓶颈。在此有孚网络通过垂直扩展,进一步切分Web服务器和数据库的压力,解决性能问题。
业务拆分
在业务层,可以把不同的功能模块拆分到不同的服务器上面进行单独部署。如账户模块、订单模块、商品模块等,拆分到不同服务器上面部署。
读写分离
当数据库层结合数据库缓存,数据库压力还是很大的时候。有孚网络通过读写分离的方式,进一步切分及降低数据库的压力。
分库
结合业务拆分、读写分离,在数据库层,同样可以把账户模块、订单模块、商品模块所涉及的数据库表,如账户模块表、订单模块表、商品模块表等,分别存放到不同数据库中,然后把不同数据库分别部署到不同服务器中。
架构:CDN +SLB +ECS +OSS +缓存数据库Redis +RDS(数据库主从)+读写分离:
当业务系统访问量达到2000W以上级别应用场景时,有孚网络则通过“水平扩展”增加业务服务器、分布式数据库。
当访问量达到2000万pv及以上时,垂直扩展的架构开始无法满足需求。比如,读写分离仅解决“读”的压力,面对高访问量,高写入,业务无法满足需求,出现性能瓶颈。另外,分库虽然将压力拆分到不同数据库中。但单表的数据量达到TB级别以上,显然已经达到传统关系型数据库处理的极限。
增加更多的Web服务器
通过业务垂直拆分部署在不同服务器后,当后续压力进一步增大,增加更多的Web服务器进行水平扩展。
增加更多的SLB
单台SLB也存在单点故障的风险,即SLB也存在性能极限,如QPS最大值为30000。通过DNS轮询,将请求轮询转发至不同可用区的SLB上面,实现SLB水平扩展。
采用分布式缓存
虽然有孚网络Redis内存数据库已经是分布式结构,但是同样单一的入口也存在单点故障的风险可能。并且也存在性能极限,如最大吞吐量峰值为512Mbps。有孚网络部署多台云数据库Redis版,可以在代码层通过Hash算法将数据分别缓存至不同的云数据库Redis版中。
分布式数据库(DRDS)
面对高并发、大数据的需求,传统的关系型数据库已不再适合。需要采用DRDS(mysql sharding分布式系统)
架构:CDN +DNS轮询 +SLB +云服务器 +对象存储OSS +缓存数据库Redis + DRDS(分布式数据库)
随着云计算的发展,IT时代已经逐渐向DT时代开始转型,在云端构建千万级别的系统架构大势所趋。有孚网络在教育、医疗、零售、文娱传媒、政企等行业深耕多年,积攒了丰富的实践经验,充分展示了有孚云系统架构的能力,同时结合有孚云产品,致力于扩展千万级别的系统架构,为企业升级系统架构保驾护航。