CDN通常是大量分布式系统跨互联网部署在位于多个地区的多个数据中心。该技术的主要目的是,向最终用户这个群体分发内容,并加快分发。内容所有者选择CDN技术出于多个原因,包括为最终用户确保高性能和高可用性。能够以一种灵活、按需提供的方式,随时随地为用户提供带宽密集型内容,比如图形、实时流媒体、在线存储的文件和社交网络数据库。
目前CDN提供商提供的几种最常见的服务包括如下:
Web加速:这一组技术让分发动态/静态网站的内容来得更高效,包括:缓存庞大的静态内容、动态缓存控制机制、TCP加速和数据压缩及其他技术。负载均衡:由于CDN服务器位于边缘,可以更深清楚地了解入站流量和源服务器的状态。这让CDN能够采用应用层负载均衡,从而通过精确衡量每一台源服务器的实际负载来提高流量分配效率。安全:CDN通过隐藏源服务器的身份对源服务器进行抽象化,从而保护源服务器、免受直接针对IP地址的攻击,还便于管理流量。许多CDN提供商提供适用于应对DDOS、应对Web应用程序攻击和垃圾邮件/机器人攻击的安全解决方案。内容存储:许多CDN提供商允许客户将内容存储在边缘服务器,无论这内容是庞大媒体文件、数据库文件还是脚本,可以根据需要智能化地分布在边缘服务器上。
CDN市场在如何变化?
1. 物联网的崛起
物联网的崛起已改变了互联网格局。由于更多的实体连接到互联网,带宽需求、数据量以及要求设备附近进行计算是有待解决的最大挑战之一。
据估计,到2020年将有2041540万个物联网设备连接到互联网。由于更多设备连接到互联网,数据会比以往更具动态性。由于带宽有限,面对分发数量如此多的动态内容这个重任,利用网络加速解决中间一英里(middle mile)将是过去的解决方案。物联网需要真正的边缘计算/雾计算来应对这些挑战。
物联网的要求很高。即使现代设备拥有更强大的计算能力,管理设备(业务逻辑在设备端运行)也常常颇为棘手。
大多数物联网设备需要对设备端收集的数据/信息加快计算,不过由于业务逻辑是独立的,需要更多的计算能力,因此常常建议将逻辑放在边缘,而不是放在设备端。它需要一条具有高可用性的反馈环路,以便物联网设备请求边缘执行某些计算,并利用结果加快处理。
边缘处计算逻辑显著缩短了中间一英里,实现了近乎实时的响应,因此提高了性能。
与此同时,如果创建一种BtoB模式,工业数据或物联网家用电器数据对于数据分析集群(data analytics farm)来说极其有价值,可用于实现业务战略。虽然从物联网设备收集的大量数据可能会让数据集群无力处理,但数据汇总逻辑可以放在边缘处,将数据发送到云端之前,让数据更紧凑合理。
基于Hadoop的批处理服务可以放在边缘,将数据发送到云之前,触发后可汇总和压缩数据。它将大大减轻数据收集的开销,同时提高源服务器和物联网设备的性能。
2. 更动态的内容和所有权分配
动态内容已日益急剧增多,可缓存内容的数量将大大减少。随着互联网用户增多,数据种类会多得多,静态网站在整个消费者生态系统中所占的比重会非常小。内容会在互联网上更加分布,使得真正的源服务器这个概念失效。更多的客户端代码将确定从哪个源端获取哪些内容。
与此同时,Web服务器正通过分配问题(distributingthe concerns)变得更加以业务逻辑为中心。比如说,Oath验证模式可能完全在客户端验证用户身份,然后为源服务器与客户端之间的连接确保安全。它使源服务器完全独立、安全,由另外某台Oauth服务器完成验证。
随着Serverless模式日益广为人知,并显得日益重要,它将很快使逻辑更加分布。边缘计算将扮演重要角色以承载一小部分的特定逻辑;需要在靠近客户源端运行这些逻辑,才能为客户提供可靠的体验,同时为源服务器减轻负载。比如说,客户上传的庞大图像/视频可以在边缘处以较低分辨率来调整大小,然后再发送到云端。
3. 边缘计算/雾计算及其对CDN提供商来说意味着什么?
边缘计算方面有不同的提议。事实上,边缘这个术语比以往来得更抽象。不过总体目标一样,即让计算更靠近设备,通过避免中间一英里来显著提高性能。
CDN提供了边缘的一种定义:让缓存内容的服务器靠近客户源端。如果把物联网设备视为数据源点,可以使用同样的基础。虽然商业模式与CDN逻辑大不相同,但CDN提供商可能会拿出一种平台,在靠近物联网设备的地方运行业务逻辑,而不是在源服务器来运行。CDN随带几个传统的概念:边缘到边缘连接、内容托管和存储,这将让CDN提供商成为构建雾计算模式的基础。这将使CDN提供商为来自物联网生态系统或下一代Web应用的客户打开新的大门。
4. 边缘计算并不意味着在边缘运行源服务器
CDN提供商绝对不可能在边缘运行处理繁重任务的应用服务器,这需要大量的计算能力和基础设施。与此同时,托管一台始终运行、功能完备的应用服务器(CDN本身并不是为此设计)常常面临很复杂的情形。不过CDN提供商有可能将轻量级的少许业务逻辑放在边缘,这将大大提高客户端的可靠性,或提升物联网设备的性能。
CDN的演变
考虑到总计算能力方面的限制和潜在的商业市场,CDN提供商应该转向面向某些函数的Serverless平台――函数即服务(FaaS)模式,以托管动态管理的、事件驱动型、轻量级的业务逻辑,这些业务逻辑可轻松部署,改善最终用户/设备体验。
1. 为什么使用Serverless?
Serverless计算是一种云计算执行模式,云服务提供商动态管理机器资源的分配。价格基于应用程序消耗的实际资源量,而不是预先购买一定数量的容量。它是效用计算(utility computing)的一种形式。
2. 快速部署、快速更新
Serverless函数是无状态的;借助适当的分离和封装,很容易转入/转出(rollin/out)不同的版本,可轻松部署。基于Docker的生态系统允许快速部署、转入变更内容。
3. 可扩展性是核心
函数并不是功能完备的Web应用程序,而是一小组封装起来的业务逻辑。这只允许某项功能大批量扩展,而不是允许扩展整个应用程序。
4. 事件驱动
让Serverless平台真正不一样的地方是,托管在Serverless平台的功能并不总是运行,而是基于事件来予以启动和扩展。这使得定价模式完全不同于传统的Web服务器托管,即预先购买一定数量的容量。价格基于请求数量和资源消耗量。没有提出请求,也就不存在函数。