努力应对交通激增

已发表: 2022-03-10
快速总结↬ “如果你建造它,他们就会来。” 当您投入大量时间和精力为客户构建网站和 PWA 时,这当然是正确的。 但是当“他们会来”变成“他们中的太多人同时来了,现在网站已经关闭”时会发生什么? 流量激增确实发生了。 但是,本指南不会让您的网站成为他们的受害者,而是将向您展示如何将其设置为胜利者。

(这是一篇赞助文章。)当流量激增时,您希望您的网站能够顺势而为,而不是淹没在它之下。

但是,您如何做到这一点,而不会因为预期可能会或可能不会发生的流量激增而不断超支服务器资源?

部分原因在于知道如何真正很好地读取数据,以便您可以预测即将到来的流量上升(或下降)。 即便如此,您的数据的潮起潮落并不总能准确预测流量激增的时间、规模或持续时间。

因此,您需要做的是确保您的客户的网站准备好承受冲击,然后维持流量。 我们今天要做的是帮助您创建一个工具、监控和测试系统,使您的网站能够做到这一点。

如何准备您的网站以应对流量激增

为了让您的网站为流量激增做好适当的准备,您需要建立一个既主动又被动的系统。 以下是它应该包括的内容:

1. 将您的网站迁移到可扩展的云解决方案

流量激增能够对网站造成严重破坏的原因是托管服务器和资源没有准备好处理它们。 纯粹而简单。

也就是说,如果您无法预测何时会出现激增,您如何确保您的主机有能力处理增加的流量负载? 您是否只是为了以防万一而将更多的钱投入到超大的托管计划中?

显然,这不是应对潜在流量激增的经济高效的方法。 相反,您应该寻找可以满足您需求的托管解决方案。

利用 DigitalOcean 托管技术

一个可以提供帮助的供应商是 DigitalOcean,它是一家可扩展云解决方案的开发商。

此选项的好处在于 DigitalOcean 为您提供优化的“液滴”供您选择。 无需猜测哪个计划适合您——DigitalOcean 非常有用的用例建议中清楚地说明了所有内容:

数字海洋 vCPU 液滴
DigitalOcean 销售针对特定用例优化的虚拟 CPU。 (来源:DigitalOcean)(大预览)

如您所见,Droplet 是为不同类型的网站和应用程序构建的易于配置的虚拟机。 更重要的是,它们通过 KVM 虚拟机管理程序、SSD 存储和 40GbE 连接进行了开箱即用的速度和安全性配置。

更重要的是,随着您网站流量的增长,您可以轻松升级 Droplet 中的存储量和带宽。 而且,如果您以后可以找出流量激增的规律或原因,您就可以快速扩展和缩减资源以适应流量的变化。

也就是说,可扩展的云托管解决方案不足以应对流量激增。 你还需要几样东西。

使用负载均衡器应对浪涌

如果你不熟悉负载均衡技术,让我们来看看有没有它的网站的区别。

当有人在没有负载均衡器的情况下访问您的网站时会发生这种情况:

DigitalOcean - 无负载平衡图形
来自 DigitalOcean 的图表,展示了访问者如何在没有负载平衡的情况下访问网站。 (来源:DigitalOcean)(大预览)

他们登录互联网,在他们的网络浏览器中输入您的 URL 或单击指向它的链接,然后您的服务器应该将您的网站传送到他们的屏幕。

但是,如果请求访问您网站的流量突然激增,这台单独的服务器可能无法有效地处理负载。 这就是为什么过高的流量激增会导致网站速度非常慢或完全无法访问网站的原因。

但是,使用负载均衡器时,您的网络流量会发生以下情况:

DigitalOcean - 负载平衡图形
来自 DigitalOcean 的图表,介绍了实施负载平衡时访问者如何访问网站。 (来源:DigitalOcean)(大预览)

负载均衡器充当服务器的一种代理。 这样,当流量达到峰值时,您的服务器就不必费力地处理需求。 相反,负载均衡器利用多个服务器来平衡不断增长的 HTTP 请求量。

这有点像在团队中分配工作量。 与其继续对已经超负荷的团队成员提出请求,不如与有能力的人分享工作。

然而,与现实世界的工作分配不同,负载均衡器在幕后完成所有这些工作,并且不需要您协调任何事情,因为它是完全托管的。

利用性能监控和备份

只要您在 Droplet 中配置了适量的带宽和存储空间,并激活了负载平衡,您的网站就会处于良好状态。 它不会不受流量激增的影响,但它会尽可能接近它。

请记住,对于您在服务器级别进行的所有强化工作,制定应急计划仍然很重要。

您的业​​务(网站)连续性计划应包括使您的网站恢复正常所需做的所有事情,包括如何:

  • 恢复网站,
  • 调查导致它的事件,
  • 并与受影响的访客和客户联系。

也就是说,DigitalOcean 可以帮助您完成连续性计划的某些部分。

自动备份对于任何网站都是必不可少的,但如果您知道您的网站容易受到流量激增的影响,那么它们绝对至关重要。 24/7 支持是另一个必须的,也是 DigitalOcean 提供的。

要寻找的另一件事是内置的性能监控——我将在这篇文章中进一步讨论。

2. 优化您的资产

有了可靠的云托管解决方案,您当然可以为您的网站提供在巨大的流量激增中生存所需的帮助。 但是,它不能全部落在您的主机上。 您需要尽自己的一份力量使您的网站“轻”到足以一次又一次地服务于访问者的猛烈攻击。

您可以采取以下措施来优化您的网站及其资产以获得更高的性能:

启用缓存和其他文件优化

想让您的数字资产更易于处理吗? 然后,您需要配置以下优化:

缓存

有多种方法可以实现缓存并加快您的网站交付给访问者浏览器的速度。 您可以在服务器、页面、浏览器数据库级别执行此操作。

您的虚拟主机可以帮助您配置服务器缓存。

如果您使用 WordPress 等内容管理系统构建了您的网站,您可以安装一个缓存插件来为您处理网站和数据库备份。 (它还会做一些事情,比如文件缩小、Gzip 压缩结合 CSS 和 JavaScript 文件。)

您始终可以手动启用缓存。 您将使用缓存标头和两种机制——缓存控制和过期——来配置缓存内容的方式。

图像优化

不要忘记您的媒体。 图像和视频文件会占用您服务器上的大量空间,并在流量激增期间阻碍服务器的运行速度。 要优化这些资产,您应该使用文件压缩和调整大小。

要批量压缩图像,我将使用 TinyPNG 或 TinyJPG 等在线工具为我处理。

TinyPNG 图像压缩
TinyPNG 提供了一种快速简便的批量压缩图像资源的方法。 (来源:TinyPNG)(大预览)

平均而言,我通常可以使用这个工具将文件大小减少约 75%。

为了进一步缩小图像的分量,您应该调整它们的大小。 如果您要使用的最大宽度为 1280 像素左右,则没有理由将完整尺寸的资产上传到网站。

为此,我要么使用我的文件软件一次性完成所有操作,要么使用批量调整照片等在线服务。

批量调整照片图像大小调整工具
批量调整照片大小提供了一种使用各种调整大小方法批量调整图像资源大小的简单方法。 (来源:批量调整照片大小)(大预览)

在如何调整图像大小方面有很大的灵活性,但我发现设置最大宽度通常效果最好。

使用托管数据库

除了优化您放入网站的资产外,您还应该注意优化您的数据库。 也就是说,说起来容易做起来难。

虽然我熟悉数据库清理和优化插件,您可以将其与 WordPress 一起使用以保持运行更顺畅,但在流量激增时,这并没有多大帮助。 您需要一些可以帮助您的数据库继续以更高速率处理传入数据请求的东西。

为此,您最好使用托管数据库解决方案——您可以从 DigitalOcean 提供该解决方案。

当检测到流量激增时,托管数据库服务会简化需要执行的操作,以便相应地扩展您的资源。 无需计算; 只需登录您的帐户并根据需要添加更多资源。

托管服务在这些情况下非常理想的另一个原因是它们内置的高可用性。 这不仅仅是 99.9% 正常运行时间的笼统承诺。 如果您查看主机的 SLA,您会发现它会竭尽全力防止停机时间过长。

添加 CDN

当流量激增时,还有另一层优化可以添加到您的网站:CDN。

出于多种原因,内容交付网络很有用。 它们非常适合为全球访问者提供网站。 对于想要提供更快结账体验的电子商务网站来说,它们绝对很方便。 它们为偶尔遇到流量高涨的网站提供额外的速度、安全性和故障转移。

如果您计划使用 DigitalOcean 来托管您的网站,请查看其 Spaces 产品(具有内置 CDN 集成),以更有效地存储和交付您的资产。

3. 分析您的流量报告

一般来说,努力从您的网站收集数据非常重要。 在与流量激增作斗争时尤其如此。 原因如下:

如果您的网站流量有可预测的高点和低点,您就会知道何时以及如何准确地规划它们。 这不仅意味着优化您的网站和服务器以处理流量,还意味着拥有适量的员工来监控和管理流量。

为此,请使用谷歌分析来密切关注一切。

谷歌分析 - 绘制网页浏览量
来自 Google Analytics 的示例流量和浏览量图表。 (来源:谷歌分析)(大预览)

此示例是 12 个月的数据拉取,显示每天(或多或少)发生的页面浏览量。 您也可以使用其他指标(例如用户数或会话数)来执行此操作。 然而,主要目标是确定全年压力的任何来源,过多的网页浏览量(或电子商务转换,如果相关)可能是衡量这一点的更有效方法。

您可以在这里看到发生了许多高点和低点:

谷歌分析 - 流量激增搜索
谷歌分析用户如何在他们的数据中寻找流量激增的一个例子。 (来源:谷歌分析)(大预览)

与其从表面上看,不如将它们与其他数据点进行交叉引用,以确保您看到的是可以从中学习的流量激增。

排除 Web 开发

例如,当时是否有任何现场开发正在进行? 如果有人正在修复错误或设计新页面,则可能会导致页面浏览量大大增加。

如果这种情况经常发生,最好在 Google Analytics 级别自动从您的报告中删除这些数据。 您可以从“管理”菜单执行此操作。

转到查看 > 过滤器 > 添加过滤器:

谷歌分析过滤器
谷歌分析用户可以从结果中删除他们的个人访问和浏览量指标。 (来源:谷歌分析)(大预览)

通过过滤掉您的 IP 地址的数据以及可能出于测试或内容创建目的而经常预览该站点的任何其他人,您可以更准确地了解您的流量水平。

假设流量高峰不是来自您的内部团队。 接下来,您需要查看这些流量激增(或下降)是否以可预测的时间间隔发生。

寻找可预测的浪涌

如果您的网站已上线一年以上,您可以使用 Google Analytics(分析)查看是否存在相关性。 只需将您的日期设置为与上一年的同一时间范围进行比较:

谷歌分析日期范围比较
谷歌分析允许用户并排比较两个日期范围。 (来源:谷歌分析)(大预览)

然后,寻找流量激增的重叠:

Google Analytics 日期范围比较数据
Google Analytics 用户可以同时查看两个日期范围的流量激增可预测性。 (来源:谷歌分析)(大预览)

在这种情况下,这两年可能只有一两个显着的峰值出现。 第一个是在 4 月初,另一个是在 11 月中旬左右。

如果这两年都出现过大的激增——至少是平时流量的五倍——我会说它们值得调查。 然而,在这个例子中,这可能只是一个巧合,可以排除它们。

检查日历

如果您发现数据中有明显的流量激增,最后要做的就是对照您的日历进行检查。

您正在寻找的是可能导致激增的事件。 像:

  • 假日销售引起了轰动。
  • 在主要新闻专线上获得的新闻稿。
  • 您发送的病毒式博客文章或电子邮件优惠。

我还建议在流量激增后的几天或几周内查看流量。

是怎么变细的? 是突然燃烧还是缓慢燃烧? 由于激增,该网站是否能够改善其每日访问量 - 甚至是轻微的?

另外,看看组织是如何受到影响的。 这对于提供客户支持和产品退货的电子商务网站尤其重要。 激增后的售后活动是否有所增加? 什么时候打的? 它持续了多长时间?

如果您能弄清楚流量激增发生的原因(即是什么事件触发了它)以及后果是什么,那么您实际上可以在未来利用这一点。 例如,如果您知道销售或病毒式帖子导致激增,您可以在下一个之前计划您的服务器和人力资源。

无论您在查看旧报告时发现什么,这都需要成为您正在进行的流程的一部分。 设置 Google Analytics 以生成流量报告并定期通过电子邮件发送给您。 这样,随着流量水平的变化(无论好坏),您将始终了解正在发生的事情,并可以相应地调整您的策略。

4.实时性能监控

Google Analytics 将帮助您了解过去发生的事情,并更有效地为未来的流量激增做好准备。 另一方面,实时性能监控将使您能够在瞬间对流量激增和其他性能变化做出反应。

您可以使用各种工具进行实时监控。 这里只是其中的一个示例:

前端性能监控

当页面速度突然开始下降或您的网站出现故障时,没有时间可以浪费了。 也就是说,您不应该定期登录您的网站以确保一切正常。

相反,您可以使用 Pingdom 之类的正常运行时间和速度监控服务:

Pingdom 监控和警报服务
用户可以使用 Pingdom 自动监控正常运行时间、用户和速度。 (来源:Pingdom)(大预览)

它处理繁琐的工作,监控您的网站流量增加、速度或正常运行时间问题以及结帐时检测到的问题。 它还将为您提供实时通知,以便您可以在流量激增之前解决问题。

这样,您只需要在流量激增对性能产生负面影响时给予您的网站所需的关注和关心,而不是一直担心它。

后端性能监控

虽然拥有前端监控服务来告诉您流量何时出现异常是很棒的,但这还不够。 您还需要知道后端发生了什么。

当然,使用托管托管解决方案,您将从您的提供商那里获得一些帮助。 但是,让自己熟悉服务器指标是一个好主意,这样您就可以积极主动地抵御浪涌的破坏性影响。

以下是一些需要关注的指标:

  • 托管资源(如内存和磁盘空间),
  • 您的应用程序性能(如错误率和资源使用情况),
  • 连接性(如延迟和带宽利用率)。

熟悉这些关键指标,这样您就不会急于弄清楚您的网站发生了什么或如何修复它。

现在,有了 DigitalOcean,您不仅可以访问这些方便的指标。 它还将为您设置实时监控和警报。 这还不是全部。

许多监控系统的问题在于它们就是这样:它们会寻找中断、错误和不稳定性,但采取行动仍然取决于您。 但是,使用 DigitalOcean,您可以在检测到特定场景时自动执行某些操作。

例如,假设您的网站收到的流量比您对假日促销的预期要大得多。 您的资源消耗得太快,这通常会使网站面临缓慢爬行或完全崩溃的风险。 但是在这种情况下,监控机制已经注意到了这个问题,并且您的自动缩放操作已被触发。

想象一下,将服务器对某些事件的响应自动化是多么有用。 您可以花更少的时间担心如何恢复您的网站,而是专注于如何不断优化您的服务器资产以维持高水平的流量。

包起来

如果您客户的网站或 PWA 还没有为流量激增做好准备,那么一旦尘埃落定,这可能会给他们的业务带来重大麻烦。 不仅仅是停机时间或加载缓慢的页面会让他们(或您)付出代价。

让所有这些额外的访问者看到一个状况不佳的网站——从损坏的结帐或表单到恶意软件感染——也会损害您的业务。

与其交叉手指或告诉自己您的网站不够大或不够受欢迎,无法体验其中一种流量激增,不如做好准备。 通过从 DigitalOcean 的实用云托管解决方案开始,然后优化您的服务器、资产和围绕它们的流程,您将提高您的网站不仅能够完好无损地生存,而且还能从中获利的机会。