横向扩展和纵向扩展是什么?有什么区别?

现代应用程序不断变化,随着新要求的发展而发展,并且存在于对资源的不同需求的环境中。扩展应用程序可以根据资源需求适当调整其大小,以确保客户满意并降低基础设施成本。

如果不知道如何有效地扩展,不仅会损害应用程序,还会给运营团队带来不必要的压力。手动尝试确定何时扩大或扩大规模非常困难。如果购买更多基础设施来适应高峰流量,那么当负载不是高峰时,可能会超支。如果以平均负载为目标,流量高峰将影响应用程序性能,并且当流量下降时,这些资源将被闲置。

什么是纵向扩展与横向扩展

横向扩展(「Scale-out」)或水平缩放与纵向扩展(「Scale-up」)或垂直缩放形成对比。

扩展云资源的想法可能很直观。随着您的云工作负载发生变化,可能需要增加基础架构以支持增加的负载,或者在需求低时减少基础架构可能是有意义的。“向上或向外”部分可能不太直观。横向扩展是并行添加更多等效功能组件以分散负载。这将从两个负载平衡的 Web 服务器实例变为三个实例。相比之下,扩大规模是使组件更大或更快以处理更大的负载。这会将您的应用程序移动到具有 2 个 CPU 的虚拟服务器 (VM) 到具有 3 个 CPU 的虚拟服务器。缩减则相反。

两个比喻

火车动力

传统火车和动车。传统的存储Scale-up架构的存储就好像传统的火车一样,当后面的磁盘越挂越多的时候,控制器性能以及背板带宽却不能相应提升,因此传统存储在磁盘容量扩容到一定程度时候,往往性能下降。

集群存储就好像新一代的动车组火车一样,当火车车厢增加的时候,前面的火车头动力也随之增加,因此不会发生性能瓶颈。

所谓动车组的设计理念和传统火车设计理念的最大区别在于传统火车主要动力来自于火车头(就像传统模块化阵列的两个控制器),而动车组则不一样,除了车头配有动力装置外,每一节车厢都配有动力推动装置。集群存储大多都是由一个个节点(X86 服务器)组成,每一个节点添加进去后,不仅能够添加容量,还能够添加整个存储器的整体处理能力。

鱼缸启示

其实我认为Scale-out和Scale-up的概念可以用一个简单的例子来解释。

不知您有没有养过鱼? 当你只有六七条鱼的时候,一个小型鱼缸就够了;可是过一段时间新生了三十多条小鱼,这个小缸显然不够大了。

如果用Scale-up解决方案,那么你就需要去买一个大缸,把所有沙啊、水草啊、布景啊、加热棒、温度计都从小缸里拿出来,重新布置到大缸。这个工程可不简单哦,不是十分钟八分钟能搞得定的,尤其水草,纠在一起很难分开(不过这跟迁移数据的工程复杂度比起来实在是毛毛雨啦,不值一提)。

那么现在换个思路,用Scale-out方案,就相当于是你在这个小缸旁边接了一个同样的小缸,两个缸联通。鱼可以自动分散到两个缸,你也就省掉了上面提到的那一系列挪沙、水草、布景等的折腾了。

回到存储架构。用户在采购之初很难准确预测未来数据增长的速度和总量。用户往往不得不采购比自己目前实际需求容量更大的存储,这就导致两个问题,一是预算的浪费,很多存储空间都是为未来数据增长采购的,花了10TB的钱,但是可能只利用上了5TB,另5TB的资金都白白放在那里。另一个问题是,随着时间推移,数据增长,数据量超过了10TB。

按照过去Scale-up的理念,解决方案就是购买更大容量的存储,那么难免面临数据迁移的问题,用户必须停机迁移数据,意味着服务的中断。而Scale-out架构解决了这个矛盾。用户按需采购存储,一旦容量不够了,再购置一台接到原有存储上就可以了。


举个例子

常见的存储设备扩展案例,下图展示了scale-out存储方案的架构。在图中,系统只能通过增加具有完整功能的节点进行扩展,但一个scale-out系统可以有很多节点,而且节点之间的内部物理互联距离也可以很远。

Scale-up,即纵向扩展架构。从下面的拓扑图我们可见,纵向扩展是利用现有的存储系统,通过不断增加存储容量来满足数据增长的需求。

Scale-up和scale-out并非不能融合在一起,很多存储系统就可以同时实现纵向扩展和横向扩展,下面的示意图就展示了这种方案。


究竟选择scale-up还是scale-out架构,主要考虑以下因素:

成本

Scale-up架构只有容量升级的成本,不会增加控制器或基础设施的开销。如果我们主要衡量每GB存储的单位价格,scale-up的扩展方式无疑更便宜一些

容量

两种解决方案都可以满足容量需求,但scale-up架构也许会有些限制,主要取决于单个系统最大支持多少个磁盘数量和多大的容量

性能

Scale-out架构在性能上具有扩展潜力,在多个存储控制器下,IOPS处理能力和吞吐带宽都可以聚合。虽然节点之间的通信会引发延迟,但那是部署时的细节问题

管理

Scale-up架构本身就是以单一系统的方式来进行管理的。而Scale-out架构通常有聚合管理的能力,但每个厂商提供的产品可能会有所不同

复杂性

Scale-up架构的存储相对简单,而scale-out架构的系统会更复杂一些,毕竟每个节点都需要管理

可用性

多个节点可以提供更好的可用性,假使有一个部件故障或失效,系统也不至于整体宕机。这一点与具体的实施方案也有关系


在选择scale-up还是scale-out的时候,我们要考虑大量的因素。而结果往往取决于哪个厂商有比其他人更好的整体方案、实施能力和技术优势。但我们最好从了解最基本的信息起步,了解这两种技术及其之间的差别。除此之外,一个好的云服务器也是非常重要的,德迅云安全弹性云服务器,灵活管理资产,拥有强大的实时可视化监控、一键自主重装等功能,保障业务系统高效运行。并且可以按需选配,资源弹性扩容;分钟级的交付周期将提供给您实时的业务响应能力;云快照助力轻松备份及拓展;控制台可轻松查看并使用,操作指引简洁易懂。主要的优势在于:

一、稳定

单实例可用性达 99.975%,多可用区多实例可用性达 99.995%,云盘可靠性达9个9,可实现宕机自动迁移、快照备份

二、弹性

支持分钟级别创建千台实例,多种弹性付费选择更贴合业务现状,同时带来弹性的扩容能力,实例与带宽均可随时升降配,云盘可扩容

三、安全

提供DDoS防护、木马查杀等服务,提供支持可信计算、硬件加密、虚拟化加密计算的实例,通过多方国际安全认证,云服务器云盘支持数据加密功能

四、高性能

单实例最高可选256vCPU ,内存6TB,主频3.8GHz,性能最高可达2400万PPS,80Gbps,100万IOPS,1600万session,网络时延20us+

五、易用性

丰富的操作系统和应用软件,通过镜像可一键简单部署,同一镜像可在多台云服务器中快速复制环境,轻松扩展

六、可拓展性

弹性云服务器可与德迅云安全产品无缝衔接,可持续为业务发展提供完整的计算、存储、安全等解决方案


并且弹性云服务器主要的功能在于:

一、丰富的实例类型和多种存储选择

面向各类企业应用场景,弹性云服务器将提供超过100款高性能规格选择。按实际业务场景可选择不同配置实例搭配1到16块不同容量的存储磁盘。

1.计算架构

提供X86、ARM计算架构,在选型时可以选择适合的架构,充分贴合业务场景。

2.实例规格

每种计算架构下提供多种面向不同场景的实例类型和规格,在满足需求的同时提供极致的性价比。

3.存储类型

按实际业务场景可选择不同配置实例,搭配1到65块不同容量的存储磁盘。云盘、本地盘提供多样选择的同时,云盘将提供给最高9个9的可靠性。

二、VPC专有网络

基于德迅云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离,只能通过对外映射的IP(弹性公网IP和NAT IP)互联。由于使用隧道封装技术对云服务器的IP报文进行封装,所以云服务器的数据链路层(二层MAC地址)信息不会进入物理网络,实现了不同云服务器间二层网络隔离,因此也实现了不同专有网络间二层网络隔离。专有网络内的云服务器使用安全组防火墙进行三层网络访问控制。

1.访问控制

灵活的访问控制规则。 满足政务、金融的安全隔离规范。

2.软件定义网络

按需配置网络设置,软件定义网络。管理操作实时生效。

3.丰富的网络连接方式

支持软件VPN;支持专线连接。

三、快照与多种镜像类型

快照与多种镜像类型,支持业务快速部署。

1.快照安全系数更高

每个云盘有多个快照额度,为数据提供更长的保护周期和更细的保护粒度。

2.自动快照策略

实现无人值守的自动化数据备份,减轻运维部门工作负担。

3.快照灵活易用

性能影响小,用户业务无感知,随时支持数据快照备份。支持秒级创建/回滚的极速快照和快照一致性组。

4.镜像种类丰富

公共镜像、镜像市场、自定义镜像、社区镜像满足各类型用户对于应用环境的快速部署、灵活管理的需求。

5.实例规格

每种计算架构下提供多种面向不同场景的实例类型和规格,在满足需求的同时提供极致的性价比。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ChatGPT: BASE是指基本可用、软状态和最终一致性的缩写。基本可用指系统在出现故障或部分失效时仍能保证基本的可用性;软状态指系统中的数据可能存在中间状态,而这些中间状态不会影响系统的整体可用性;最终一致性指系统中的所有副本最终会达到一致的状态。 ACID模型是指原子性、一致性、隔离性和持久性。原子性指一个事务中的所有操作要么全部执行成功,要么全部失败;一致性指事务执行前后,数据库中的数据必须保持一致;隔离性指多个事务并发执行时,彼此之间是隔离的,互不干扰;持久性指事务一旦提交,对数据库中的数据的修改就是永久性的。 数据库的规则和约束条件包括主键、外键、唯一约束、非空约束等。NoSQL不能实现完整性约束是因为其设计初衷是为了高可用性和高扩展性,而完整性约束会影响其性能和扩展性。 关系型数据库横向扩展纵向扩展难以实现是因为横向扩展需要对数据进行分片,而分片会导致数据之间的关系变得复杂;纵向扩展则需要增加硬件资源,但是硬件资源的增加是有限度的。 记录查询是指根据记录的主键查询数据,范围查询是指根据记录的某个范围查询数据。NoSQL在复杂查询方面不如数据库是因为其设计初衷是为了高可用性和高扩展性,而复杂查询会影响其性能和扩展性。 NoSQL使用MapReduce来加速查询是因为MapReduce可以将数据分成多个部分并行处理,从而提高查询的效率。 数据一致性和可用性之间存在一定的矛盾关系,提高一致性会降低可用性,提高可用性会降低一致性。 SQL标准是指关系型数据库的标准化语言,包括数据定义语言(DDL)、数据操作语言(DML)和数据控制语言(DCL)等。 规范应用程序接口可以通过制定标准的接口规范、文档和示例代码等方式来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值