技术干货阿里云构建千万级别架构演变之路

author author     2022-08-22     342

关键词:

前言  


 
 
 
    一个好的架构是靠演变而来,而不是单纯的靠设计。刚开始做架构设计,我们不可能全方位的考虑到架构的高性能、高扩展性、高安全等各方面的因素。随着业务需求越来越多、业务访问压力越来越大,架构不断的演变及进化,因而造就了一个成熟稳定的大型架构。如淘宝网、Facebook等大型网站的架构,无不从一个小型规模架构,不断进化及演变成为一个大型网站架构。 
 
 
    随着云计算的到来,当前已经从IT时代向DT时代转型。在云端如何构建千万级架构,本文主要结合阿里云最佳实践经验,向大家分享如何从一个小型网站逐步演变到千万级架构的过程。 
 
 
架构原始阶段:万能的单机 
    架构的最原始阶段,即一台ECS服务器搞定一切。传统官网、论坛等应用,只需要一台ECS。对应的web服务器、数据库、静态文件资源等,部署到一台ECS上即可。一般5万pv到30万pv访问量,结合内核参数调优、web应用性能参数调优、数据库调优,基本上能够稳定的运行。 
架构采用单台ECS:

技术分享

架构基础阶段:物理分离web和数据库

 
    当访问压力达到50万pv到100万pv的时候,部署在一台服务器上面的web应用及数据库等服务应用,会对服务器的CPU/内存/磁盘/带宽等系统资源进行竞争。显然单机已经出现性能瓶颈。我们将web应用和数据库物理分离单独部署,解决对应性能问题。这里的架构采用ECS+RDS: 
 

技术分享

架构动静分离阶段:静态缓存 + 文件存储

 
    当访问压力达到100万pv到300万pv的时候,我们看到前端web服务出现性能瓶颈。大量的web请求被堵塞,同时服务器的CPU、磁盘IO、带宽都有压力。这时候我们一方面将网站图片、js、css、html及应用服务相关的文件存储在oss中,另外一方面通过CDN将静态资源分布式缓存在各个节点实现“就近访问”。通过将动态请求、静态请求的访问分离(“动静分离”),有效解决服务器在磁盘IO、带宽方面的访问压力。 
架构采用CDN + ECS + OSS + RDS:

技术分享

架构分布式阶段:负载均衡

 
    当访问压力达到300万pv到500万pv的时候,虽然“动静分离”有效分离了静态请求的压力,但是动态请求的压力已经让服务器“吃不消”。最直观的现象是,前端访问堵塞、延迟、服务器进程增多、cpu100%,并且出现常见502/503/504的错误码。显然单台web服务器已经满足不了需求,这里需要通过负载均衡技术增加多台web服务器(对应ECS可以选择不同可用区,进一步保障高可用)。因而告别单机的时代,转变分布式架构的阶段。 
架构采用CDN+SLB + ECS + OSS + RDS:

技术分享

架构数据缓存阶段:数据库缓存

 
    当访问压力达到500万pv到1000万pv,虽然负载均衡结合多台web服务器,解决了动态请求的性能压力。但是这时候我们发现,数据库出现压力瓶颈,常见的现象就是RDS的连接数增加并且堵塞、CPU100%、IOPS飙升。这个时候我们通过数据库缓存,有效减少数据库访问压力,进一步提升性能。 
架构采用CDN+SLB +ECS +OSS + 云数据库memcache +RDS :

技术分享

架构扩展阶段:垂直扩展

 
    当访问量达到1000万pv到5000万pv,虽然这个时候我们可以看到通过分布式文件系统OSS已经解决了文件存储的性能问题,CDN也已经解决静态资源访问的性能问题。但是当访问压力再次增加,这个时候web服务器和数据库方面依旧是瓶颈。在此我们通过垂直扩展,进一步切分web服务器和数据库的压力,解决性能问题。 
“何为垂直扩展,按照不同的业务(或者数据库)切分到不同的服务器(或者数据库)之上,这种切分称之为垂直扩展。” 
 
 
垂直扩展第一招:业务拆分 
在业务层,可以把不同的功能模块拆分到不同的服务器上面进行单独部署。比如,用户模块、订单模块、商品模块等,拆分到不同服务器上面部署。 
 
 
垂直扩展第二招:读写分离 
在数据库层,当结合数据库缓存,数据库压力还是很大的时候。我们通过读写分离的方式,进一步切分及降低数据库的压力。 
 
 
垂直扩展第三招:分库 
结合业务拆分、读写分离,在数据库层,比如我们同样可以把用户模块、订单模块、商品模块等。所涉及的数据库表:用户模块表、订单模块表、商品模块表等,分别存放到不同数据库中,如用户模块库、订单模块库、商品模块库等。然后把不同数据库分别部署到不同服务器中。 
架构采用CDN+SLB +ECS +OSS+ 云数据库memcache + RDS读写分离:

技术分享

架构分布式+大数据阶段:水平扩展

 
    当访问量达到5000万pv及以上时,真达到千万级架构的访问量的时候,我们可以看到垂直扩展的架构也已经开始“山穷水尽”。比如,读写分离仅解决“读”的压力,面对高访问量,在数据库“写”的压力上面“力不从心”,出现性能瓶颈。另外,分库虽然将压力拆分到不同数据库中。但单表的数据量达到TB级别以上,显然已经达到传统关系型数据库处理的极限。 
 
 
水平扩展第一招:增加更多的web服务器 
通过业务垂直拆分部署在不同服务器后,当后续压力进一步增大,增加更多的webserver进行水平扩展。 
 
 
水平扩展第二招:增加更多的SLB 
单台SLB也存在单点故障的风险,即SLB也存在性能极限,如QPS最大值为50000。通过DNS轮询,将请求轮询转发至不同可用区的SLB上面,实现SLB水平扩展。 
 
 
水平扩展第三招:采用分布式缓存 
虽然阿里云memcache内存数据库已经是分布式结构,但是同样单一的入口也存在单点故障的风险可能。并且也存在性能极限,如最大吞吐量峰值为512Mbps。所以我们部署多台云数据库memcache版,可以在代码层通过hash算法将数据分别缓存至不同的云数据库memcache版中。 
 
 
水平扩展第四招:sharding + nosql 
面对高并发、大数据的需求,传统的关系型数据库已不再适合。需要采用DRDS(mysql sharding分布式解决方案) + OTS(基于列存储的分布式数据库)对应的分布式数据库来根本性的解决问题。 
架构采用CDN+DNS轮询 + SLB + ECS + OSS + 云数据库memcache + DRDS+OTS:

技术分享


技术干货|阿里云基于hudi构建lakehouse实践探索「内附干货ppt下载渠道」

简介: 阿里云高级技术专家王烨(萌豆)在ApacheHudi与ApachePulsar联合Meetup杭州站上的演讲整理稿件,本议题介绍了阿里云如何使用Hudi和OSS对象存储构建Lakehouse,为大家分享了什么是Lakehouse,阿里云数据库OLAP团队如何... 查看详情

阿里云文件存储的高性能架构演进之路

...,2018中国计算机大会上举办了主题“数据中心计算”的技术论坛,一起探讨解决数据中心所面临的挑战。论坛上,阿里云分布式存储团队高级技术专家田磊磊进行了《阿里云文件存储的高性能架构演进之路》的报告。10月27日下... 查看详情

技术干货|阿里云基于hudi构建lakehouse实践探索

简介:阿里云高级技术专家王烨(萌豆)在ApacheHudi与ApachePulsar联合Meetup杭州站上的演讲整理稿件,本议题介绍了阿里云如何使用Hudi和OSS对象存储构建Lakehouse,为大家分享了什么是Lakehouse,阿里云数据库OLAP团队如何... 查看详情

从平凡到非凡阿里云李克的技术进阶之路(代码片段)

人物简介:李克阿里云边缘云计算领域技术负责人2009年硕士毕业加入阿里至今,一直从事CDN及边缘云领域的技术研发工作,在CDN、边缘计算等方向上有丰富的行业经验,全程参与了阿里云CDN商业化转型,边缘... 查看详情

paas服务之路漫谈

...权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。天下大势,分久必合,合久必分,社会历史的发展方向总有着惊人的相似。把这种规律应用到软件应用架构的发展方向上,当生产力和生产关系到了不... 查看详情

paas服务之路漫谈

...权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。天下大势,分久必合,合久必分,社会历史的发展方向总有着惊人的相似。把这种规律应用到软件应用架构的发展方向上,当生产力和生产关系到了不... 查看详情

多维度创新打造领先阿里云技术生态

...中国计算机大会上举办了主题是“云计算生态与发展”的技术论坛。论坛上,阿里云技术战略架构师陈绪博士从构建目标、构建基石、构建要点三个方面详细陈述了阿里云开放的技术生态。目前阿里云正在全力打造一个由阿里云... 查看详情

干货12月29日阿里云内部技术分享

阿里云大数据助力东润环能高效利用云端资源http://click.aliyun.com/m/8857/从天津滨海新区大爆炸、危化品监管聊聊IT人背负的社会责任感http://click.aliyun.com/m/8858/SQLServer幕后英雄-统计信息http://click.aliyun.com/m/8859/如何以更优雅的方式... 查看详情

干货12月28日阿里云内部技术分享

高并发IM系统架构优化实践http://click.aliyun.com/m/8768/老司机推荐:云端建站10分钟快速上手教程http://click.aliyun.com/m/8769/万亿user_tags级实时推荐系统数据库设计http://click.aliyun.com/m/8770/新生代程序猿,如何进入心仪女神的科技大公司... 查看详情

性能追求之路——maxcompute2.0的前世今生

...mpute产品最新动态》。他首先介绍了MaxCompute的发展历程和技术架构,然后对MaxCompute2.0版本新特性和新技术进行了详细介绍。最后,分享了基于MaxCompute平台构建完整大数据应用架构、构建新型数据仓库、实现个性化推荐的实践。&... 查看详情

物联网架构成长之路(18)-接阿里云oss服务

1.申请/购买OSS服务  在阿里云上申请/购买OSS服务,然后在会得AccessKeyID,AccessKeySecret,bucketName这三个东西2.增删改查  在pom.xml文件上增加1<!--https://mvnrepository.com/artifact/com.aliyun.oss/aliyun-sdk-oss-->2<dependency>3< 查看详情

淘宝从几百到千万级并发的十四次架构演进之路!

...的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2.基本概念在介绍架构 查看详情

阿里亿级长连网关的云原生演进之路(2020最新沉淀)

导读AServer接入网关承载整个阿里集团的入口流量,负责亿级用户的长链保活,支持上万路由策略转发,是连接上亿用户与后端几十万服务节点的桥梁,在今年双十一需要支撑亿级在线用户、千万级QPS、生效上万条API管控策略,... 查看详情

(转载)中大型网站架构演变之路

 标签:网站架构 大型网站架构原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lizhenliang.blog.51cto.com/7876557/1951651前言网上有很多文章类似于... 查看详情

阿里云杨敬宇:边缘计算行业通识与阿里云ens的技术演进之路

近日,阿里云杨敬宇在CSDN阿里云核心技术竞争力在线峰会上进行了《5G基础设施-阿里云边缘计算的技术演进之路》主题演讲,针对5G时代下,行业和技术的趋势、边缘计算产业通识以及阿里云边缘计算从过去到未来的技术演进之... 查看详情

干货!《阿里云可观测技术峰会演讲实录合辑》重磅发布

...xff0c;云原生应用平台、天池平台主办的首届阿里云可观测技术峰会围绕「可观测与开源」主题,邀请友邦人寿、爱福路F6企业一线负责人、Grafana、Prometheus项目大咖,为听众呈现丰富且具备实践参考意义的精彩分享与讨论... 查看详情

深度干货|云原生分布式数据库polardb-x的技术演进

...品架构,以及分布式事务、透明分布式、水平扩展等技术内幕。一、PolarDB-X是什么PolarDB-X最早起源于阿里集团2009年提出用分布式架构替代传统商业数据库,阿里研发了TDDL分库分表中间件。2014年阿里集团开始全面上云ÿ... 查看详情

淘宝从几百到千万级并发的十四次架构演进之路!

...架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2、基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,... 查看详情