架构动静分离和分布式阶段——阿里云 MVP乔锐杰

本文涉及的产品
对象存储 OSS,20GB 3个月
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 乔锐杰,上海驻云运维总监,江湖人称“乔帮主”。本文是乔帮主在阿里云的直播中分享《阿里云千万级架构的构建——架构的成长演变之路》的第三部分。

乔帮主的直播内容经精炼整理、分以下5篇:
一、分享介绍&架构三原则
二、云架构、架构的原始阶段和基础阶段
三、架构动静分离和分布式阶段
四、架构数据缓存阶段和两个维度拓展阶段
五、架构微服务阶段

架构动静分离阶段:静态缓存 + 对象存储阶段

image.png

当访问压力达到100万PV到300万PV的时候,我们看到前端web服务出现性能瓶颈。大量的web请求被堵塞,同时服务器的CPU、磁盘IO、带宽都有压力,尤其是带宽压力。这时候我们一方面将网站图片、js、css、html及应用服务相关的文件存储在oss中进行静态资源集中管理,另外一方面通过CDN将静态资源分布式缓存在各个节点实现“就近访问”。通过将动态请求、静态请求的访问分离(也就是“动静分离”),有效解决了服务器在磁盘IO、带宽方面的访问压力。那这阶段采用的云产品,相比上阶段,主要增加了CDN和OSS。 

值得注意的是,CDN可以直接进行动静请求分离,但在此阶段用户量规模的架构中,可能很多人觉得甚至没必要用OSS。但我还是建议将静态资源采用独立的二级域名集中部署在OSS中,方便后续架构扩展,也是方便CDN回源请求加速。当然如若业务方面没有未来扩展的考虑等,直接采用CDN是最高效省事的做法。

架构动静分离阶段有两个技术特点:
第一点,动静分离其实是静态请求和动态请求的解耦。

第二点,CDN被誉为互联网高速公路的最后一公里。特别在电商等Web领域应用广泛,我们知道,电商业务中有大量的商品图片的静态资源,所以在电商类应用中几乎都会必选CDN,都说没有CDN的电商不是好电商。
接着进入架构分布式阶段:负载均衡。

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

image.png

当访问压力达到300万PV到500万PV的时候,虽然“动静分离”有效分离了静态请求的压力,但是动态请求的压力已经让服务器”吃不消”。最直观的现象是,前端访问堵塞、延迟、服务器进程增多、CPU100%,并且出现常见的502/503/504的错误码。显然单台 Web服务器已经满足不了需求,这里需要通过负载均衡技术增加多台 Web服务器,进一步保障业务的性能和高可用。负载均衡的加入,从而告别了单机的时代,转变分布式架构的阶段。

那在这个架构阶段采用的云产品,如左边架构图所示,相比上阶段,主要增加了SLB。此阶段的架构中,值得注意的是,采用七层SLB虽然可以满足绝大数Web应用场景。但在高并发场景下,我们优先考虑使用四层的SLB提高性能。虽然四层SLB在稳定性和性能会比七层要好,但是会带来运维配置管理工作量。

此阶段的技术特点主要有两点:
第一点,负载均衡是分布式架构的起点。云计算的普及,其实也是分布式架构的普及。值得注意的是,分布式架构是集群架构的演变,有很多人把传统的集群架构和分布式架构混为一谈,这是很大的误区。集群的虚拟VIP技术只能让一台服务器平时作为Backup热备,只有在故障的时候,才会切换到Backup上让其顶上,平时都是空闲状态。而分布式架构的技术特点,就是负载均衡的引入,让不同服务器来同时处理业务压力。
第二点,分布式架构是云计算体系阶段的标配。为什么是标配呢?接下来我们聊聊分布式架构的核心优势对比。
image.png

分布式经典架构1+1>2,我在分享中经常比较喜欢说这个案例,真的是百说不厌。一台4核8G配置的主机,部署着一个分布式业务,如传统电商系统。我们用单台部署,以及如若我们拆分成两台2核4G配置的主机,用分布式架构思路部署,会有什么不一样?我们详细来看看对比的区别。
1、在成本方面,单机要402,两台也差不多四百多,基本一样。

2、在性能方面,差距就开始出来了。带宽方面,云主机仅有200Mbps,而两台部署,通过SLB对外访问,带宽有1Gbps。

3、磁盘方面,一台默认40G云盘,而两台就是两块默认40G系统盘,就是2倍的IO性能。所以在早起还未推出SSD云盘,那时候IO很低,为了满足业务对IO的需求,相比单机高配部署,通过分布式架构拆分成多台低配机器部署,就能获取成倍的IO性能,这招对提升IO性能非常管用。

4、安全性方面,单机直接暴露源IP,被黑客直接攻击源站。而两台分布式部署,隐藏后端IP避免被扫描、被直接打。甚至SLB是基于LVS,由于直接改了LVS的源码,具有一定的抗攻击功能。

5、扩展性方面,单机只能升级服务器配置来垂直扩展,而两台分布式部署,不仅能垂直快照,而且只需要往SLB后面增加更多ECS来进行水平扩展。

6、稳定性方面,单机肯定存在单点故障,而两台分布式部署的,没有单点问题。

通过分布式部署唯一的缺点,是在管理维护上会变复杂。不过通过ansible等自动化运维工具,这个对运维来说也没多大问题。所以:拥抱云计算,其实也是拥抱分布式如若业务不适合用分布式架构,其实发挥不了云计算的核心优势。

接着进入架构数据缓存阶段:数据库缓存。
下一篇:架构数据缓存阶段和两个维度拓展阶段

相关文章
|
1月前
|
前端开发 测试技术 数据处理
Kotlin教程笔记 - MVP与MVVM架构设计的对比
Kotlin教程笔记 - MVP与MVVM架构设计的对比
52 4
|
14天前
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
662 243
|
4天前
|
设计模式 存储 算法
分布式系统架构5:限流设计模式
本文是小卷关于分布式系统架构学习的第5篇,重点介绍限流器及4种常见的限流设计模式:流量计数器、滑动窗口、漏桶和令牌桶。限流旨在保护系统免受超额流量冲击,确保资源合理分配。流量计数器简单但存在边界问题;滑动窗口更精细地控制流量;漏桶平滑流量但配置复杂;令牌桶允许突发流量。此外,还简要介绍了分布式限流的概念及实现方式,强调了限流的代价与收益权衡。
38 11
|
6天前
|
设计模式 监控 Java
分布式系统架构4:容错设计模式
这是小卷对分布式系统架构学习的第4篇文章,重点介绍了三种常见的容错设计模式:断路器模式、舱壁隔离模式和重试模式。断路器模式防止服务故障蔓延,舱壁隔离模式通过资源隔离避免全局影响,重试模式提升短期故障下的调用成功率。文章还对比了这些模式的优缺点及适用场景,并解释了服务熔断与服务降级的区别。尽管技术文章阅读量不高,但小卷坚持每日更新以促进个人成长。
30 11
|
8天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
42 11
|
10天前
|
自然语言处理 负载均衡 Kubernetes
分布式系统架构2:服务发现
服务发现是分布式系统中服务实例动态注册和发现机制,确保服务间通信。主要由注册中心和服务消费者组成,支持客户端和服务端两种发现模式。注册中心需具备高可用性,常用框架有Eureka、Zookeeper、Consul等。服务注册方式包括主动注册和被动注册,核心流程涵盖服务注册、心跳检测、服务发现、服务调用和注销。
45 12
|
22天前
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
7天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
33 2
|
15天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
17天前
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
33 1