静态内容与动态内容分离

在过去的几年里,与计算能力相比,存储变得更加便宜。您可能想知道,这与网络应用程序有什么关系?好吧,如果您考虑为小型三层 Web 应用程序使用单个 Web 服务器和数据库服务器,这可能并不重要,但随着规模的扩大,您存储和提供内容的方式会对实现所需的性能产生直接影响涉及的成本最少。

让我们深入了解细节,了解构建 Web 应用程序来存储和提供内容的重要性。

图片标题

当涉及到 Web 应用程序提供的内容时,可以将其分为两部分:静态内容和动态内容。静态内容主要涉及 HTML、JavaScript、CSS、图像、视频和文件等内容。相比之下,很难识别动态内容的确切类型,但大多数这些应用程序数据都是动态内容的形式,通常保存在数据库中。重要的是要了解,根据特定的应用程序要求,某些静态内容也可以用作动态内容。

传统的三层 Web 应用程序
传统上,在三层应用程序中,我们习惯将所有内容存储在 Web 服务器和数据库服务器中。

我见过许多应用程序在 Web 服务器上存储静态内容,例如 HTML、JavaScript、Web 应用程序图像和 CSS。这很好,因为一旦发生新的部署,这些文件就会发生变化。但是,不建议将从应用程序上传的文件、图像和视频存储在Web服务器内,因为这极大地限制了应用程序的水平扩展能力,并增加了Web服务器的文件I/O和存储消耗。使用第三方托管服务或 网络附加存储来存储静态内容可以帮助解决这些问题。

2023 年性能和站点可靠性将会发生什么

我们的 2022 年性能和站点可靠性报告对可观察性、分布式跟踪、常见 SRE 实践的当前状态以及从无可指责的事后分析文化的失败中吸取的教训进行了以开发人员为中心的评估。


同样,不建议  在 Web 服务器上执行计算量大和内存密集型操作,例如图像处理或视频转码。这些操作是高度资源密集型的,可能会影响遭受大规模性能瓶颈的 Web 服务器的常见操作。

您可能想知道使用第三方服务、CDN 等是否有助于降低 Web 应用程序的成本并提高可靠性、性能和效率。仅查看内容存储并不能显示全貌。

减少计算需求
如何在 Web 应用程序的静态内容和动态内容之间找到适当的平衡一直是一个争论。正如我们所讨论的,由于存储更便宜,因此有一些技术可以最大限度地减少网络服务器的计算需求。

例如,您可以使用 JavaScript 在客户端进行 图像操作 ,并将图像上传到 Web 服务器、文件存储服务器,甚至第三方托管服务。

这是单页应用程序在客户端而不是 Web 服务器上呈现 HTML 时变得越来越流行的原因之一。

在开发 Web 应用程序时,还可以识别需要高处理能力和时间来计算或查询的数据,这些数据可以存储起来以供直接访问,而不是每次都计算或运行复杂的查询。

提供 Web 应用程序内容
提供静态内容和动态内容时,缓存要求不同。例如,静态内容可以通过内容交付网络 (CDN)轻松提供 ,而动态内容则需要大规模应用程序级别或数据库级别的第三方缓存解决方案。此外,动态内容主要通过 Web 服务器提供服务,但对于静态内容,这不是强制性的。

使用第三方托管服务(例如 Amazon S3、Azure Blob、Cloudinary 等)时,可以直接或通过相应的 CDN 来存储和提供文件。

这如何影响总拥有成本
当我们考虑使用 Web 服务器来处理静态和动态内容时,我们选择的硬件是克服限制的一个重要因素(可以是处理、内存、存储和吞吐量)。从规模上看,这会增加成本,因为我们必须水平扩展这些服务器来处理增加的容量。此外,由于在世界各地实施数据中心的开销很大,为全球用户群构建内容分发网络的成本相当昂贵。最重要的是,实现可靠性将进一步增加成本和复杂性,这在规模上更为重要。

因此,确定静态和动态内容、存储和交付要求并使用适当的第三方托管服务(或所需的分布式存储和交付实现)并设计 Web 应用程序非常重要。

你可能感兴趣的:(网页)