阿里云构建千万级别架构演变之路.docx
《阿里云构建千万级别架构演变之路.docx》由会员分享,可在线阅读,更多相关《阿里云构建千万级别架构演变之路.docx(16页珍藏版)》请在冰豆网上搜索。
阿里云构建千万级别架构演变之路
窗体顶端
窗体底端
∙云头条
∙博客
∙问答
∙聚能聊
∙直播
∙论坛
∙云栖大会
∙公众号
∙订阅
∙云大学
∙
1.云栖社区>
2.博客列表>
3.正文
【技术干货】阿里云构建千万级别架构演变之路
驻云科技 2016-06-1617:
01:
21 浏览11342 评论2
阿里云 驻云 架构设计
摘要:
随着云计算的到来,当前已经从IT时代向DT时代开始转型。
在云端如何构建千万级架构,本文主要结合阿里云最佳实践经验,向大家分享如何从一个小型逐步演变到千万级架构的过程。
本文作者:
乔锐杰,现担任XX驻云信息科技XX运维总监/架构师。
曾任职过黑客讲师、java软件工程师/架构师、高级运维、阿里云架构师等职位。
维护过上千台服务器,主导过众安保险、新华社等千万级上云架构。
在云端运维、分布式集群架构等方面有着丰富的经验。
前言
一个好的架构是靠演变而来,而不是单纯的靠设计。
刚开始做架构设计,我们不可能全方位的考虑到架构的高性能、高扩展性、高安全等各方面的因素。
随着业务需求越来越多、业务访问压力越来越大,架构不断的演变及进化,因而造就了一个成熟稳定的大型架构。
如淘宝网、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(mysqlsharding分布式解决方案)+OTS(基于列存储的分布式数据库)对应的分布式数据库来根本性的解决问题。
架构采用CDN+DNS轮询+SLB+ECS+OSS+云数据库memcache+DRDS+OTS:
杜绝抄袭,支持开源,我为自己呐喊,百分百原创作者:
乔锐杰
好啦~本文到这里就结束了,同时,如果喜欢我们的话就赶紧订阅我们吧~~~每天定时推送新鲜干货~~~也可以关注我们的微信公众号:
架构云专家频道每天同步更新哟~~~
声明:
本文内容由互联网用户自发贡献,归作者所有,本社区不拥有所有权,也不承担相关法律责任。
如果您发现本社区中有涉嫌抄袭的内容,欢迎发送至:
yqgroupservice.aliyun. 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》加快推进基于IPv6的下一代互联网规模部署,计划指出2025年末中国IPv6规模要达到世界第一,阿里云也第一时间宣布了将全面提供IPv6服务,那么在全面部署IPV6前,你需要了解都在这儿 详情请点击
(13) (23)
分享到:
∙上一篇:
【技术干货】前端开发之IONIC移动端开发
∙下一篇:
【技术干货】浏览器工作原理和常见WEB攻击(上)
相关文章
∙【云栖精选7月刊】抛开晦涩的算法、模型,让我们来谈谈互联…
∙APMCon2017|一大波技术大神来袭,你要的性能…
∙SDCC2016中国软件开发者大会盛大开幕
∙映客直播技术实战:
直播平台的数据库架构演变
∙首届中国IT架构大师高峰论坛(十年架构之路汇成一句话!
)
∙解析日活从0到千万的数据库架构演进,揭秘阿里自研数据库原…
∙避免单点,云上应如何实现高可用和高性能架构设计(系列…
∙【云周刊】第137期:
阿里知识图谱首次曝光:
每天千万…
∙阿里workshop站丨打造千万用户海量视频,不…
∙【云周刊】第129期:
探秘!
双11背后的基础设施支撑
网友评论
1F
萨瓦迪康2016-06-1710:
46:
03
赞
0 0
2F
iwenfeng2017-05-0911:
06:
22
如何让公司膨胀到需要最后的架构我的运营之道
0 0
窗体顶端
登录后可评论,请 登录 或 注册
评论
窗体底端
关注
驻云科技
XX驻云信息科技XX成立于2013年,是一...
72篇文章|67关注
∙文中提到的云产品
阿里云办公
一站式提供企业即时通讯、销售管理、协同办公。
更多>
阿里绿网
基于深度学习技术及阿里巴巴多年的海量数据支撑,提供多样化的内容识别服务,能有效帮助用户降低违规风险。
其产品包括... 更多>
阿里聚安全
凝聚阿里巴巴多年来在无线业务安全防御的成功经验和技术成果,并面向开发者和企业提供安全扫描、应用加固、安全组件、数... 更多>
云服务器ECS
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低IT成本...更多>
∙博主其他文章
更多>
∙云栖AI大热驻云CloudCare揭云服务新趋势
∙驻云Gartner联合发布人工智能时代的MSP白皮书
∙百城千县,万企一云驻云成阿里云首批城市服务商
∙高级安全Windows防火墙概述以及最佳实践
∙云服务器ECS下的FTP服务的安装配置与使用
∙如何快速部署Node.js项目
∙云端安全之三:
最佳实践
∙从IT之家看企业上云
∙湖畔第一大脑深度解析:
别做“自嗨”的SaaS
∙大牛解密阿里云直播技术平台
∙相关话题
更多>
∙抖音怎么怎么就杀出一条血路了?
∙如何在嵌入式IoT环境中,千万级设备进行日志管理
∙程序员在高铁上怎么杀时间?
∙阿里云完成德国C5云安全标准评审,云上安全应该如何保护?
∙程序员中年危机,大家应该如何提升自己的技能
社区之星年度评选,投票可抽奖
热点导航
云服务器2折起云计算网络安全互联网架构ECS升级配置物联网Java教程PHP
用户关注
自动化测试解决方案linux命令云服务JavaScript函数服务器监控Python语言移动数据分析
更多推荐
用户体验云数据库Rds负载均衡域名注册Whois查询数据可视化ICP备案查询主题地图阿里云大学域名Redis加速nginx增加移动站IT论坛企业云虚拟主机
关于我们 法律声明及隐私权政策 廉正举报 友情
阿里巴巴集团 淘宝网 天猫 聚划算 全球速卖通 阿里巴巴国际交易市场 1688 阿里妈妈 飞猪 阿里云计算 YunOS 阿里通信 万网 高德 UC 友盟 虾米 阿里星球 来往钉钉 支付宝
©2009-2017Aliyun.所有ICP证:
浙B2-20080101
浙公网安备099号