翻译 | 3种方式提升云可扩展性

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: Cloud 本文在腾讯云+社区首发, 为原创翻译文章. 原文面向对较为专业的IT从业者, 为此译者将对文中一些概念进行注解 以扩大文章所面向的读者群体.
背景知识
有相关知识的读者可以跳过此部分内容

云计算作为一种资源, 它的可扩展性是指关于如何处理可变规模业务的能力. 包括 水平扩展垂直扩展.

什么意思呢?
水平扩展(horizontal scaling)
也称为横向扩展, 指能够连接多个软硬件的特性,这样可以将多个服务器从逻辑上看成一个实体.
垂直扩展(vertical scaling)
当一个现有IT资源被具有更大或更小容量的资源所代替,则为垂直扩展. 也就是对当前服务器的CPU性能等进行原地的扩大和缩小. 由于在进行垂直扩展的时候服务器需要停机(就如同我们平时使用虚拟机时, 要重新分配它的内存或CPU的时候需要先关机, 因此在云环境中这类扩展并不常见.


INTRO

在亚马逊云服务中部署被盛赞为是一个很好的方式来实现高扩展性, 并且你只需要支付你所使用的云计算机性能即可。那么,如何从这项技术中获得最佳的扩展性呢?

Deploying in the Amazon cloud is touted as a great way to achieve high scalability while paying only for the computing power you use. How do you get the best scalability from the technology?

1. 使用弹性伸缩(Use Auto-scaling)

亚马逊的EC2产品提供弹性伸缩这一云计算的独特功能。像往常一样为你的应用程序设置一个负载均衡器和几个Web服务器。在模板AMI的基础上设计你将不断复用的Web服务器。然后设置弹性伸缩并根据你预测的流量设置阈值。当超过阈值时,AWS将启动你的Web服务器的新实例,并自动将其置于负载均衡器池中。一旦流量低于最低阈值,亚马逊将从负载均衡器池中为你移除一台服务器。

Auto-scaling is a unique feature of cloud computing and Amazon's EC2 offering. Setup a load balancer and a couple of webservers for your application as you normally would. Design your webserver based on a template AMI that you'll reuse over and over. Then setup auto-scaling and set thresholds based on the traffic you forecast. When a threshold is passed, AWS will spinup a new instance of your webserver, and roll it into the load balancer pool automatically. Once traffic falls below the scale back threshold, Amazon will take a server out of the pool for you.

请务必要监视此活动的开始,并为之运行一些负载和压力测试。你需要确保它能如你所期望地正常运转,并且没有异常的情况就不会不必要地运转服务器。

Be sure to monitor this activity to start with, and also run some load and stress tests on it. You want to ensure that it behaves as you expect, and no anomalous cases will cause you to spinup servers unnecessarily.

2. 横向伸缩数据库层(Horizontally Scale the Database Tier)

MySQL在这里提供了一系列的解决方案。你可以在Master-Master(主对主)主动被动集群(也称为循环复制)中配置MySQL。在这种配置中,MySQL将把所有已完成的事务发送到集群中的其他服务器。你的被动服务器也可以处理你的应用程序的读取流量。在实现高可用性的同时,你也可以通过将大部分的SELECT操作流量发送到另一个服务器来获得可扩展性。

MySQL offers a number of solutions here. You can configure MySQL in a master-master active passive cluster, also known as circular replication. In this configuration, MySQL will send all completed transactions to the other server in the cluster. Your passive server can also handle read traffic for your application. At the same time as you achieve high availability, you also get scalability by sending much of the SELECT traffic off to another server.

随着负载的进一步增长,将额外的只读的从盘(read-only slave) 转入你的设置, 你就可以进一步扩大读取操作的规模。在执行此操作时,你可以继续将所有写入的内容发送到单个处于活动状态的主数据库。

As the load grows further, roll in an additional read-only slave into your setup. You can then further scale out reads. As you do this, you'll continue to send all writes to the single active master database.

[注]我们为PC配置额外硬盘时, 原有的装有系统的盘可以称为主盘(Master)
作为扩展的硬盘称为从盘(Slave), 在服务器上类似.

或者,你希望采用基于MySQL社区版( community)服务器的亚马逊RDS解决方案,但需要某些设置保持锁定。在这个配置中,你将不能使用诸如Percona的高速服务器之类的另一种MySQL发行版。这个配置提供的是multi-az(多可用区)配置。请记住,任何你启动的MySQL服务器都将有一个区域和可用性空间作为其配置的一部分,所以你可以在亚马逊网络服务中自由使用这些功能来提高可用性。

As an alternative, you may wish to employ Amazon's RDS solution, which is based on the MySQL community server, but with certain locked in settings. In this configuration you will not be able to use an alternate MySQL distribution such as Percona's high speed server. What this configuration does offer is multi-az configuration. Keep in mind though that any MySQL server you spinup will have a region and availability zone as part of it's configuration, so you are always free to use those features of Amazon's network to increase availability.

如果单个主数据库上的负载仍存在问题,那么可以垂直扩展该节点。通过在EBS的根卷(root volume)上实例化一个新的更大的EC2实例来完成此操作。然后分离该root volume,停止你的旧实例,分离旧实例的root volume,并将其移动到新的服务器。当你将那个活动的root volume附加上去,新的更大的EC2实例将是你原来的服务器,也就是你的服务器就地扩大了!

If the load on the single master database continues to be a problem, you can vertically scale that node in place. Do this by spinning up a new larger EC2 instance on and EBS root volume. Then detach that root volume, stop your old instance, detach it's root volume and move it over to the new server. Once you attach that live root volume, your new larger EC2 instance will be your original server, scaled UP in place!

3. 使用 条带化(Striped) EBS root volume

[注] EBS, Elastic Block Store, 即弹性块存储

EBS是一项非常棒的技术,因为它为每个EC2实例带来了存储区域网络的灵活性。这不是没有挑战,并且有时在磁盘I / O (input/output) 的吞吐量上还会有很大的变化。这个变化对数据库层而言是一个挑战。请记住,亚马逊的基础架构虚拟化层将根据实例的大小增加或减少实例接收的磁盘I / O数量。

EBS is a great technology, as it brings the flexibility of a storage area network to each of your EC2 instances. It's not without it's challenges though, and at times you will experience great variability in disk I/O throughput. This can pose a challenge for the database tier especially. Keep in mind too, that Amazon's infrastructure virtualization layer will dial up or dial down the amount of disk I/O your instance receives based on how large the instance is.

另一个获得更好EBS性能的方法是使用Linux软件的RAID技术。由于EBS内置冗余,因此你可以简单地在多个EBS卷上使用Striping或RAID 0 -- 我们推荐使用4个。

One additional way to get better EBS performance is by using Linux's software raid technology. Since EBS already has redundancy built in, you can simply use striping or RAID 0 across a number of EBS volumes - we recommend four.

[注] RAID, Redundant Arrays of Independent Disks
即磁盘阵列, 利用数组方式来作磁盘组, 将数据切割成许多区段
分别存放在各个硬盘上, 在数组中任意一个硬盘故障时,仍可读出数据

一共有0~6一共7种,这其中RAID 0、RAID1、RAID 5和RAID6比较常用。

RAID 0 又称为Stripe(条带化,串列)或Striping
它代表了所有RAID级别中最高的存储性能

RAID 0:如果你有n块磁盘,原来只能同时写一块磁盘,写满了再下一块,
做了RAID 0之后,n块可以同时写,速度提升很快,但由于没有备份,
可靠性很差。n最少为2。

引自知乎
作者:孙小霞
链接:https://www.zhihu.com/question/20131784/answer/28026813
来源:知乎

要小心地进行这些配置,因为现在每个EBS卷都不能自动操作,但要求四个都要完成。这也会影响EBS快照备份。

Be careful with such configurations as each of your EBS volumes won't operate by themselves now, but require all four to be complete. This will impact EBS snapshot backups, as well.


翻译人:FesonX
文章链接 : https://cloud.tencent.com/developer/article/1020235
原文链接:https://dzone.com/articles/3-ways-boost-cloud-scalability
原文作者:Sean Hull
封面图案:Julien Deveaux
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
缓存 数据处理 数据库
构建高效移动应用:基于云函数的动态背景同步技术
【4月更文挑战第8天】 在移动应用开发中,提升用户体验和后端服务效率始终是核心目标之一。随着云计算的兴起,云函数作为一种轻量级的计算服务模式,为移动应用提供了新的优化途径。本文将探讨一种利用云函数实现的动态背景同步技术,该技术能够在不占用移动设备额外资源的前提下,实现数据的实时更新和同步,从而为用户提供无缝衔接的体验。我们将详细介绍这一技术的工作原理、实现方法以及在实际移动应用中的应用场景。
|
8月前
|
存储 JSON 数据库
【C++ 软件设计思路】跨平台应用开发:如何选择合适的格式保存信息
【C++ 软件设计思路】跨平台应用开发:如何选择合适的格式保存信息
205 0
|
18天前
|
人工智能 自然语言处理 开发工具
Languine:专为开发者设计的 AI 多语言翻译工具,快速生成100+种语言的准确翻译,简化应用程序的 i18n 国际化配置
Languine 是一款面向开发者的 AI 翻译工具,支持 100+ 种语言,自动化翻译流程,提升多语言应用开发效率。
56 15
Languine:专为开发者设计的 AI 多语言翻译工具,快速生成100+种语言的准确翻译,简化应用程序的 i18n 国际化配置
|
2月前
|
自然语言处理 运维 开发工具
深入探讨了 NeoVim 相较于传统 Vim 的优势,包括更好的扩展性、现代化的界面和用户体验、多语言编程支持、强大的异步处理能力、更好的协作支持、持续的更新和改进、活跃的社区以及与现代开发工具的集成
本文深入探讨了 NeoVim 相较于传统 Vim 的优势,包括更好的扩展性、现代化的界面和用户体验、多语言编程支持、强大的异步处理能力、更好的协作支持、持续的更新和改进、活跃的社区以及与现代开发工具的集成。通过命令对比,展示了两者在启动、配置、模式切换、移动编辑、搜索替换、插件管理、文件操作、窗口缓冲区管理和高级功能等方面的差异。总结部分强调了 NeoVim 在多个方面的显著优势,解释了为什么越来越多的运维人员选择 NeoVim。
117 3
|
4月前
|
IDE C# 开发工具
C# 语言的主要优势是什么?
C# 语言的主要优势是什么?
206 2
|
5月前
|
存储 XML JSON
解锁Winform应用全球化:高效实现多语言处理的实战案例与技巧,让你的软件跨越语言障碍
【8月更文挑战第3天】随着全球化的推进,软件需支持多语言以满足国际用户需求。在Winform中,通过精心设计和工具辅助可简化多语言实现。本文以一个支持中、英、日、韩四语的应用为例,介绍如何使用JSON文件存储语言资源,并借助自定义类库动态加载和切换语言。通过准备不同语言的JSON文件、编写`LanguageHelper`类管理和更新UI文本,以及在配置文件中保存用户语言偏好等步骤,展示了实现多语言支持的有效途径。此方案不仅结构清晰,而且易于维护和扩展。
174 2
|
7月前
|
数据采集 JavaScript Java
一款分布式爬虫管理平台,支持多种语言和框架
项目介绍 Crawlab —— 一个基于 Golang 的分布式爬虫管理平台,支持Python、NodeJS、Go、Java、PHP 等多种编程语言以及多种爬虫框架。 主要功能:
|
存储
使用云存储为你的游戏扩展新能力
前言 这是一篇如何在微信小游戏制作工具中使用云存储功能的教程,云存储可以帮助我们扩展游戏的很多新能力。这是一篇付费教程,但是能够帮助你节省很多的精力和时间。所有小蚂蚁的学员可以在知识拓展库中免费阅读这篇教程
180 0
|
自然语言处理 数据挖掘 Unix
R 语言是什么、R 的优势、资源|学习笔记
快速学习 R 语言是什么、R 的优势、资源。
218 1
R 语言是什么、R 的优势、资源|学习笔记
|
缓存 安全 算法
CleanMyMacX2023功能优势介绍
CleanMyMac更新最新版本x4.12,完美适配新版系统macOS10.14,拥有全新的界面。CleanMyMac可以让您安全、智能地扫描和清理整个系统,删除大型未使用的文件,减少iPod库的大小,最精确的应用程序卸载,卸载不必要的应用程序或修复不能正常工作的程序,管理所有的扩展和做更多的事情-所有从一个新设计和美丽简单的界面。
159 0