前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3种提升云可扩展性的方法

3种提升云可扩展性的方法

作者头像
Caffe_tt
发布2018-01-08 18:25:15
1.9K0
发布2018-01-08 18:25:15

如果只为计算资源付费,在Amazon云上部署业务可以实现高拓展性。但是要怎样利用Amazon的相关技术才能获得最好的可拓展性呢?

1.使用自动缩放(Auto-scaling)

Amazon EC2提供自动缩放这一云计算独有的特性。我们可以像往常一样为应用程序设置一个负载均衡器和一些Web服务器。基于AMI模板设计Web服务器,这个模板会多次复用。然后设置自动缩放,并根据我们预测的流量设置阈值。一旦流量超过了阈值,AWS将创建一个新的Web服务器实例,并自动将其加入到负载均衡器的资源池中。一旦流量低于阈值,Amazon将自动从资源池中移除一台服务器。

注意监控这个行为什么时候启动,并且跑一些负载和压力测试。需要确保它能够像我们预料的那样工作。不应该存在异常的情况使得创建无谓的服务器实例。

2.水平缩放数据库层(Horizontally Scale the Database Tier)

MySQL为此提供了许多解决方案。你可以将MySQL配置在主动-被动模式的Master-Maste集群(master-master active passive cluster)中,这种集群结构也被称为循环复制。在这种配置下,MySQL将把所有完成的事务发送到集群中的其他服务器。因此,你的被动服务器也可以处理应用程序的读流量。在实现高可用性的同时,通过将大部分SELECT流量发送到另一个服务器,也可以兼顾可扩展性。

随着负载的进一步增长,我们只需要再加入一个额外的只读slave服务器。这样一来服务器处理读请求的能力就增强了。在执行此操作时,所有写请求仍然可以持续发送到单个活动的主数据库。

或者,你可能会希望采用基于MySQL社区服务器的Amazon RDS解决方案,但是对服务器的设置作出一些限定。在这个配置中,人们将不能使用诸如Percona的高速服务器之类的备用MySQL发行版。这个配置提供的是多az配置( multi-az configuration)。请记住,任何你启动的MySQL服务器都将有一个Region(译者注:Region指服务器所在的地理区域,比如美洲区,日本区)和Availability Zone(译者注:比Region更小的概念,通常是指某一台AZ)作为其配置的一部分,所以我们可以使用Amazon网络的这些特性来提高可用性。

如果单个主数据库上的负载仍然是个问题,那么我们可以垂直扩展该节点。通过在EBS根卷上开辟一个更大的新EC2实例,我们可以完成此操作。然后解挂这个根卷,停止旧实例,解挂旧实例的根卷,并将其移到新的服务器。一旦你附加了这个活动的根卷,更大的EC2新实例就和你原来的服务器一样了,只是它的容量变得更大了!

3.使用分区的EBS卷

EBS可是个了不起的的技术,它使每个EC2实例的存储区域网络变得更加灵活。虽然这个技术本身也有难题需要解决。同时使用这个技术可能会使得在磁盘I / O吞吐量上有很大的波动,这对数据库层来说是一个很大的挑战。请注意,Amazon的基础架构虚拟化层将根据实例的大小调整实例磁盘的I / O吞吐量。

获得更好的EBS性能的另一个方法是使用Linux的软件RAID技术。由于EBS已有内置冗余,我们可以在多个EBS卷上使用striping(译者注:其实就是RAID 0) 或RAID 0 —— 推荐使用4个。

这样的配置需要格外小心,因为现在每个EBS卷不会自己运作了,但RAID 0却要求全部四个卷都是完整的。同时,这也会影响EBS快照备份。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档