云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

华为云_深圳阿里云大厦_哪家好

小七 141 0

水平世界中的垂直缩放

吉姆·科林在《永葆青春》一书中的一个关键概念是,重要的决定往往不是二元的。例如,你不必在纪律性和创造性之间做出决定。你也不必在实证分析和果断行动之间做出决定。同样的概念应该应用于设计和构建持久的应用程序环境。要遵循Jim关于"或"的暴政和"和"的天才的概念,在架构和管理现代应用程序时,您需要垂直或水平地缩放。有人会说,你只需要水平缩放,而垂直缩放是一种整体式的方法(在某种程度上,"单片"变成了一个四个字母的单词)。别误会,水平缩放是构建现代应用程序的基础。在您将应用程序拆分为其服务并利用一种允许您管理这些服务的方法之后,如何管理水平扩展和平衡负载就成了一个关键的考虑因素。另一方面,排队论认为,垂直扩展是性能优化的最佳选择,也就是说,如果你能用一条线路有效地满足需求,你就不必为性能损失和将需求(也称为路由)分割到多条线路的延迟付出代价。另外,同样的理论在杂货店和咖啡店也得到了证实。那么,你应该垂直缩放还是水平缩放?如果你读到这里,你知道答案是你必须同时做这两件事。这不是一个或辩论,而是一个和。要构建一个持久的应用程序环境,您需要同时为两者设计。对于涡轮力学6.3,我们添加了一致的缩放。为一组需要相同大小的虚拟机驱动最佳垂直扩展决策而设计的功能。这通常是由AWS的自动调整组管理的水平扩展应用程序或利用Azure可用性集的高可用性体系结构的要求。在我们的6.4版本中,我们将这个功能扩展到了Azure缩放集和容器中。对于一组实体(vm或containers,off或on prem)启用一致缩放,Turbonomic会将所有组成员调整为相同大小。所有属于Azure可用性集、缩放集和AWS自动缩放组的vm都会自动表示为一个Turbonomic组。默认情况下,会为这些组启用一致缩放。也可以在"策略"选项卡中将其关闭。现在,您如何利用垂直扩展决策来设计一个既可垂直扩展又可水平扩展的环境?让我们看一个AWS自动调整组(asg)的示例。在ASGs中,通过启动配置定义EC2实例的大小。然后,ASG进程确保使用指定的大小启动属于组的所有EC2实例。您需要指定组中EC2实例的最小、最大和所需数量。如果您想利用水平扩展(通常基于目标资源利用率)或保持组大小不变。asg还提供运行状况检查,自动发现不正常的实例,终止它们并启动替换实例,以确保高可用性。asg缺少的是一种确定为EC2实例指定正确大小的方法。一个决策,可能会造成性能瓶颈或浪费金钱,如果你过度供应或有未使用的RI库存。Turbonomics的分析确保您以尽可能低的成本在实体组上运行的应用程序获得最佳性能。那么,涡轮力学是如何与AWS的自动缩放配合工作的,从而提供垂直和水平缩放呢?一旦您利用Turbonic的决定来获得正确的EC2实例大小,就有不同的方法将垂直调整传播到一组多个EC2实例。应根据您管理ASG的方式和您可以容忍的中断级别来安排更改。下面是一个利用terraforms实现零停机的示例。下面是一种基于事件的方法,它将组的大小增加一个以最小化停机时间,然后利用ASG运行状况检查过程一次终止一个实例,并启动一个符合所需大小的新实例。通过这种方法,将产生以下工作流。涡轮力学缩放动作更新了ASG发射配置。对ASG的更改触发一个CloudWatch事件,该事件调用Lambda函数。Lambda函数执行一个python脚本,该脚本与ASG进程(例如健康检查、终止、启动)一起工作,以使组中的每个成员符合所需的大小。您可以在此处访问有关设置的更多详细信息的脚本。如果你有改进的建议,请告诉我们。希望在这一点上,您确信垂直或水平缩放是错误的辩论。两者都需要。