让我们谈谈正事吧。 或者奶油蛋。 或者一盒盒糖果。 他们有什么共同点? 当然,它们都与假期有关。 事实证明,这些节假日是网站利润和业绩不佳的最大根源。
看看英国最近的一项研究,“该研究涉及 100 多名电子商务决策者”,结果显示“超过一半(58%)的人承认在去年的高峰期遇到过网站速度问题”。
现在,我们都知道性能很重要,即使是微秒的延迟也会造成数百万美元的损失。 说够了。
问题是,你能做什么呢?
答案在于记住操作公理#2: 随着负载的增加,性能下降。
应用服务器是在云端还是数据中心、在虚拟机还是容器中运行并不重要。 这个公理之所以是公理,是因为它永远是正确的。 不管怎样。 系统负载越大,运行速度越慢。 时期。
提高性能的关键是在最大化负载和优化性能之间找到平衡,以降低成本。 在大多数情况下,这意味着使用一切可以使用的工具来恢复平衡,尤其是在高峰期(无论系统位于何处,高峰期都会给系统带来很大的压力)。
1. 平衡负载
这就是为什么没有足够好的(基本的)应用服务。 因为虽然它们通常可以轻松扩展,但它们并不一定真正平衡可用资源的负载。 它们不一定提供根据性能或现有负载选择资源所需的智能。 他们“尽最大努力”并不比盲目的运气好多少。
平衡负载需要了解现有负载,以便将新请求定向到最有可能尽快响应的资源。 基本负载均衡无法实现这一点,因为它的重点纯粹是基于算法的决策,而这些决策很少考虑可用资源的静态权重以外的任何其他因素。 实时决策需要有关当前负载的实时信息。 否则,您就不是在进行负载平衡,而是在进行负载分配。
它不仅仅是选择有助于在平衡负载的同时提高性能的资源。 能够采用各种协议增强功能来减少负载而不损害可用性也是关键。 多路复用和重用 TCP 连接、卸载加密和安全以及将压缩任务重新分配给上游服务,可以减轻应用程序和 Web 服务的负担,释放资源并对性能产生实际影响。
无论是在云端还是在数据中心,无论是在容器还是虚拟机中运行,服务器都应该提供服务。 加密和压缩仍然是计算密集型的功能,可以由专门为此任务设计的上游服务执行。
消除请求-响应路径中的额外跳数也能提高性能。 是的,您可以跨负载均衡服务进行水平扩展,但这样做会将另一层决策(路由)推入到等式中,这需要花费执行时间(其中哪一个应该服务于该请求?)和传输时间(通过网络将其发送到那个)。 这意味着网络或应用服务器完成其工作所需的时间更少,而这实际上正是我们最初想要的。 在典型负载下,一个系统管理一百万个连接与十个系统各自管理其中一部分连接之间的差异可能可以忽略不计。 直到需求推动负载增加并且操作公理也开始发挥作用。 因为导致性能不佳的不仅仅是网络或应用服务器上的负载,而是整个应用交付链。
您的负载均衡服务可以同时处理的容量(连接)越多,所需的实例就越少。 这减少了管理另一层资源的开销,这些资源需要像任何其他服务一样仔细关注操作公理#2。
性能仍然是零售商面临的重要问题,并且随着数字经济的快速发展,它将成为(如果现在还不是的话)每个拥有数字业务的人都面临的问题。 在假期前总是会出现的繁忙中,人们对糟糕的表现变得更加无法容忍。 前一天还觉得还不错的事,现在却不够好了。 很多时候,性能问题不是应用的错误,而是用于交付和保护应用程序的架构和服务的错误。 通过使用具有正确功能集的正确服务,组织更有可能避免在高负载下出现性能问题。
足够好就是足够好,直到不够好为止。 那时再劝说失望的顾客回来就太晚了。 无论你想向他们出售什么产品,他们都已经找到了另一家供应商。