使用 Google Cloud 和图像优化创建 CDN

Posted

技术标签:

【中文标题】使用 Google Cloud 和图像优化创建 CDN【英文标题】:Create a CDN with Google Cloud and Image Optimization 【发布时间】:2019-05-07 20:42:42 【问题描述】:

我有很多网站以及客户制作的网站,我想对其进行优化。我目前正在使用不同的 CDN 提供商,但我想简化我的工作流程并希望还能降低成本。

我想要一个带有 Pull Zone 的 CDN,该 CDN 还将优化图像(同时不修改其他静态资源)。

理想情况下,我还可以访问每个拉区的统计数据(因为我想向我的客户收取这项服务的费用,而不是猜测)。

使用 Google Cloud 执行此操作有哪些不同的方法?有没有办法只使用 Google Functions、CDN 和 Google Storage 来做到这一点?当然,我想也需要运行一个小的 NodeJS 应用程序来优化图像。我只是想知道一般架构以及它是否可能(我知道 Azure 和 AWS 是这样,但我已经在 Google Cloud 上运行了一些东西)。

非常感谢:)

【问题讨论】:

【参考方案1】:

在 GCP 中,可以通过将 HTTP(S) Load Balancer 关联到 Cloud Storage Bucket 并启用 Cloud CDN 来创建拉区。

为每个客户使用不同的存储桶会分解您项目的日志,但不会分解它的计费。

为了能够分开计费,您可以随时 export 将日志发送到 BigQuery,并使用它来根据每个客户的使用情况细分计费成本。


关于图片的优化,Google CDN 不会做任何操作,GCS Bucket 也不会。

在这个方向上唯一可用的操作是使用和服务GZip-compressed files。

我建议您专用一个 Instance 以便能够在存储之前准备图像或添加/替换存储桶中已有图像的优化版本。

【讨论】:

感谢您的回复。但是,它与使用 MaxCDN 或任何其他 CDN 服务相同。在这个流程中,我该如何优化图像? 内容可以是gzip格式的服务器,甚至来自云CDN,请查看Transcoding of gzip-compressed files。 Cloud CDN 的行为类似于所有大型缓存提供程序,但我会阅读概念页面以获得更好的理解。 实际上,我想更多的只是 gzipping。我正在考虑真正优化这些图像,缩小它们并通过优化器运行它们 (npmjs.com/package/sharp)。这就是我问这个问题的原因,因为我不知道如何整合这个过程。没有它,当然会容易得多:) 不幸的是,不是。此设置旨在提供内容,任何准备文件的操作都应在添加到存储桶之前完成。此外,修改已经在存储桶中的文件将导致operation charges。 不幸的是,您的意思是不可能?我不介意运营费用,我只是想知道最好的方法,至少在架构上是这样。

以上是关于使用 Google Cloud 和图像优化创建 CDN的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google Cloud Vision API 确认图像(包含手写和打印文本)是不是包含手写文本?

如何使用 Ruby 作为后端将 React 上的图像上传到 Google Cloud Storage

在 Cloud AutoML Vision 中将图像导入 Google 存储时出错

在上传到Google Cloud存储之前调整图像大小并进行压缩

Google Cloud Profiling 如何通过分析优化我的代码?

Google Cloud Vision API PDF 文本提取