2015年12月初,谷歌宣布了云内容分发网络(CDN)的Alpha版本。该服务旨在通过谷歌的全球分布式边缘缓存从更近的地方向终端用户提供静态内容。谷歌提供的边缘缓存要比数据中心多得多,因此,提供内容的速度比向谷歌的某个数据中心发送完整的往返请求要快。谷歌总共提供了超过70个边缘接入点,它们会协助处理客户的CDN需求。
要使用Cloud CDN,用户必须在自己的实例上使用谷歌计算引擎的HTTP(S)负载均衡器。启用HTTP(S)负载均衡器只需要执行一条简单的命令。
在最近的一篇博文中,谷歌是这样解释该服务的机制的:“当用户从站点请求内容,请求会经过谷歌网络边缘的网络位置,与实际的实例相比,该位置距离用户要近许多。第一次请求内容的时候,边缘缓存发现自己无法满足请求,就将请求进一步转发给实例。实例将响应发回边缘缓存,而缓存会立即将内容发送给用户,同时还会将其存储下来用于响应将来的请求。如果后续请求经过相同边缘缓存并且请求相同的内容,那么缓存会直接响应用户,这缩短了往返时间,节省了实例处理请求的开销。”
下图说明了谷歌如何利用边缘接入点缓存来提高响应速度:
图片来源:https://cloud.google.com/compute/docs/load-balancing/http/cdn
一旦CDN服务启用,它就会自动缓存所有可以缓存的内容。通常,可缓存内容由HTTP GET请求定义。该服务会遵循显式定义的Cache-Control头信息,考虑过期或寿命信息。那些包含Set-Cookie头,消息体超过4MB或者通过no-cache指令明确禁止缓存的响应不会缓存。用户可以从谷歌的文档中查看完整的缓存规则列表。
为了提高向客户提供内容的速度,谷歌一直在同第三方合作,合作伙伴包括 Akamai、Cloudflare、Fastly、Level 3 Communications和Highwinds。
其他云提供商也有CDN产品,包括亚马逊的CloudFront和微软的Azure CDN。谷歌也面临着来自Akamai(也是前面提到的一个合作伙伴)的竞争,在Alexa前100万个站点中,该企业大约占据着16.3%的CDN市场份额。
来源:InfoQ