可扩展性是许多IT商店的主要目标,无服务器应用可以帮助他们实现这个目标。首先,他们需要解决负载均衡等一系列的挑战。
无服务器应用是云上最热门的话题之一,其中一个原因是随着业务环境的变化,它们能够在高负荷时进行扩展。
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
然而,为了确保可扩展性,云团队需要恰当地设计、开发和部署无服务器应用。 一般而言,当应用可以根据需要来调用处理资源时,它就是可扩展的。
可扩展的应用还必须由可以在高负荷下进行扩展的组件组成。换句话说,团队可以根据需要创建应用的其他实例,然后随着工作负载的变化而销毁它们。
无服务器应用可扩展性面临的挑战 无服务器系统可扩展性的挑战从软件本身开始。假设您想要扩展支持ATM取款的应用。您可以启动应用的另一个副本来承载增加的负载,但是第二个副本如何连接到工作流呢? 答案是通过负载均衡,主要的云供应商都提供这一服务。一定要使用它。
第二个问题更为复杂。如果您启动应用的另一个副本来响应负载,如果用户在一个副本上启动他或她的ATM活动,然后转移到另一个副本,这会发生什么呢? 大多数现实世界的事务都有上下文,这意味着他们需要完成若干步骤才能完成这项工作。
依赖于这种上下文的软件无法伸缩,因为应用的一个副本不知道先前在另一个副本上发生了哪些操作。 大多数商业应用都具有这种上下文,或者称为状态。要创建可以扩展的无服务器应用,可以从单一应用中提取特性和功能,这些应用可以在无状态的情况下编写,也可以从外部获取状态或上下文信息。
来自三个主要云供应商(Amazon Web Services,Microsoft Azure和Google Cloud Platform)的云产品提供了如何编写完全可扩展的无状态或无上下文的软件的示例。这里有三种方法:
使用函数或lambda编程技术编写可扩展组件。这可以生成高度可扩展的应用,但可能需要在编程实践中做出重大改变。 使用可以管理应用的分发副本的工具包来编写应用,如Apache ZooKeeper和Curator。
编写应用组件,这些组件可以在数据库里维护状态,或者让用户将状态传递给它们。
所有这些都很好,但第二个是最简单的。
但是,仅仅拥有可扩展的应用组件并不能解决所有的问题。如果我们以ATM应用程序为例,那么在一定程度上只需要一个帐户余额数据副本。这意味着应该有一个地方可以更新数据,或者所有这些地方都能协调更新。确保为分布式事务处理应用最佳实践来构建可扩展的无服务器应用。
确保可扩展性的部署技巧
如上所述,负载均衡对于无servlet应用来说很重要,它将同时影响开发和部署。当同一应用组件有多个副本时,管理员如何确保能够将通信路由到正确的副本上呢? 开发一个负载均衡的无服务器组件是可能的,并且市场上也有一些软件负载均衡器。
但是,这些可能会过载并导致单点故障。云供应商提供分布式的负载均衡——管理员应该使用该特性来优化其无服务器的扩展策略。 在部署方面,管理员必须控制可扩展性的过程。
例如,由于供应商根据使用情况对无服务器应用收费,因此对扩展性进行严格限制至关重要。限制应用副本的最大数量,以及用户可以生成新的应用副本的条件。另外,请记得在需求下降时缩减无服务器的应用。 为了进一步避免成本失控,成本监控至关重要。云服务供应商为无服务器计算列出费用,这些数字可帮助您评估您的可扩展性控制是否有效。直接或通过成本分析应用从云供应商获取无服务器应用的使用数据。