中国领先的IT技术网站
|
|

彻底透视CDN痛点,互联网老兵聊聊CDN的那些事儿!

51CTO 以“Tech Neo”为主题的技术沙龙第十五期于北京举行,本次沙龙邀请了来自国美互联网应用运维技术负责人张高明。这位互联网老兵的演讲,不仅让开发者对智能 CDN 有了更深入的了解,而且从中可以窥见国美互联网在 CDN 方向的实践与痛点。

作者:王雪燕来源:51CTO|2017-10-17 18:06

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


【51CTO.com原创稿件】2000 年左右是全球互联网发展的鼎盛时期,由于 HTTP 网页内容加速的需求日益暴增,进而 CDN 成为了产业关注的热点。当下,CDN 行业化、智能化越来越明显,主要是因为每个行业在技术、使用场景等方面都有个性化的需求。

近日,51CTO 以“Tech Neo”为主题的技术沙龙第十五期于北京举行,本次沙龙邀请了来自国美互联网应用运维技术负责人张高明。这位互联网老兵的演讲,不仅让开发者对智能 CDN 有了更深入的了解,而且从中可以窥见国美互联网在 CDN 方向的实践与痛点。

目前,国美互联网的体量较小,与大型互联网公司有一定差距。但麻雀虽小五脏俱全,在 CDN 方面的应用有很多。包括视频、图片、Js、css、Html 等传统的一些内容;以及 APP 的安装包、更新包、下载包等内容;还有抗 D,防攻击方面的一系列产品。

介绍下抗 D 的产品,2016 年,在 APP 推广过程中受到几次攻击,导致服务处于不可用状态,非常被动。当时可选的解决方案有两套:

  •     自研,但受到多方面限制,如资源不足(机房带宽、服务器都需要采购)、没有人员储备、时间周期不允许等。
  •     和已经有成熟产品的第三方公司合作,鉴于实际情况,采用第二套方案。产品的确没有出现问题,但对于第三方公司提供的数据没有有效的方法能够验证有效性和真实性。

智能 CDN 的六大元素

智能 CDN 也是 CDN,但是智能化是趋势,智能化的本质是通过技术、智能手段为消费者提供更好的服务。

谈智能 CDN 之前,有必要先来了解一下 CDN 的使用模型

  •     从浏览器或其他途径请求资源。
  •     由 DNS 对域名进行解析得到真实 IP 的地址。
  •     通过链路传输,到达目的机房。
  •     经过 CDN 调度器把资源返给用户(CDN 跳转或请求资源)。

基于 CDN 的使用模型,依次具体地分析智能 CDN,如下图所示:

智能 CDN 由智能 DNS、链路优化以及智能调度器、大数据、AI、人六大元素组成。

智能 DNS

在目前所有网络活动中,DNS 的作用可以说是不可替代的。早期 DNS 相对简单,功能也较单一,这里我们称之为 DNS 1.0。DNS 1.0 的作用非常简单,只是收到网址,反馈 IP 地址。随着技术发展和产品需要,DNS 2.0、3.0 先后出现。DNS 2.0 是根据用户所在 ISP、区域,智能提供最优 IP 地址,使得访问速度得到提升。DNS 3.0 弥补了之前 1.0、2.0 没有的状态缺陷,新增了健康检查的功能。智能剔除异常节点,把可用且最优的节点返给用户。

这里值得提醒的是 DNS 有两个不可规避的坎儿:

  • 进行全网 DNS 更新时,时间不可控。当更改 DNS 配置时,用户的生效时间不一,有时会达到不能容忍的时间长度。
  •  用户地址解析的准确度完全依赖于用户 Local Dns 的设置。DNS 是以 Local Dns 作为反馈的唯一依据,反馈最终地址。 一旦 Local Dns 设置错误,那么地址一定不是最优,甚至有可能是错误的。这样一来,就会导致用户访问过慢或访问不到资源的情况出现。

链路优化

中国网络的复杂度众所周知,运营商多,并且每个运营商的用户都各自为战,融合起来并非易事。在跨网络请求情况下,不仅仅是慢的问题,有时候甚至无法访问目的资源。

链路优化方面,可以借鉴一些成熟方案,如协议的优化,比如 BGP、OSPF 等。还有就是资源部分,如通过带宽的建设、POP 点建设、机房的扩容进一步对链路进行优化。

智能调度器

DNS 在细分时颗粒度很大,不能精确为用户区分优化策略。想要提升精确度,就要靠调度器来实现。调度器会基于访问请求资源的热度、大小、内部资源情况为用户提供最优的节点。

大数据与 AI

谈智能化不得不提大数据与 AI,因为这两者正在给我们的生活带来潜移默化的影响。对于 DOS / DDOS 攻击,大数据可以给访问源地址合适的权重,知道哪些 ip"更危险"(以前发起过攻击),更加精确地定位是普通访问还是攻击,进而能够更加有力的防御攻击。

边缘计算与 CDN 的结合,带动了整个“人工智能+云”在各个场景的服务。以视频直播为例,同城互动直播放到边缘节点里去成本可能会减少 50%,涉黄的内容 90% 都能够在边缘网络上处理。这其中涉及到与 AI 相结合的部分,云厂商在其间拥有优势:一边有数据中心,一边运营边缘网络,并且能够知道这两者之间如何高效合作。而单纯的 CDN 公司在所获得的数据不多的情况下可能很难判断哪些东西需要过滤和分发,最终还是需要与云及AI协同去完成。

人·决策

为什么要在智能 CDN 模块加入人的元素呢?因为大多情况下,都是人在做决策,像采用哪种网络模型、哪种算法、哪种分布式结构等等;另一方面,就是人的服务。

综上这些是张高明老师对智能 CDN 的一些见解,但国美互联网因为精力、时间等原因没有涉及到这些。下面我们来看看国美互联网在 CDN 方面的优化实践和一些不可避免的痛点

国美 CDN 的优化实践

下面主要介绍国美互联网在 APP、IMG 和视频三方面的 CDN 优化实践。

APP 端

APP 端主要做的是针对静态文件进行优化,采用方式如下:

  • 缩略图。这里最主要的事情是图片匹配,国美互联网之前的缩略图更适用于 PC 端,不是很合理。这里的解决方案是基于自身访问和第三方的数据,得到主流机型的标准,再根据产品需求,制定五种缩略图。这样做在提升用户访问速度的同时还对带宽进行了优化。
  • 两种 Cache。前端开发有一个简单的技术,叫 App Cache。把重要的 Cache 缓存到本地,一定时间段内,请求时无须重新下载,会对提升用户访问质量有很大帮助。
  • 短缓存。规定合理的本地缓存时间,提升用户的访问速度,尤其是弱网情况下,效果特别好。同时,还能优化带宽。

IMG

图片部分,采用 WebP 的格式,谷歌推出这个图片格式的优点非常明显,和其他格式相比,WebP 格式仅占用 60%-70% 资源。它的缺点也同样明显,就是不是所有浏览器都支持。

在移动端就是 Android 的手机系统支持,但是 IOS 的不支持。国美互联网的解决方案是在 CDN 中储存 WebP 和 JPG 两种 Cache,在调度器设置 UA 判断流程,对节省带宽有很大改进。

视频

视频部分,主要涉及推、拉模式选择、CDN 调度器、自适应播放器:

  • 推、拉模式选择。以当前的技术手段,无论是把视频流推给 CDN,还是 CDN 主动来拉视频流,在技术上都可以实现。但在特定场景下,比如故障排查时,还是要选择 CDN 来拉的方式,这样对视频流的故障排查就可以由 CDN 提供方来完成。
  •  CDN调度器。CDN 流量是分阶段计算的,1G 以下、1~2G 价格不同,通过 CDN 调度可以把成本控制在最优。还有是在出现异常情况下,对用户的访问也可做一些调整。这上面的调整比在 DNS 层面调整更迅速。
  • 自适应播放器。自主开发,能根据不同的业务特点采用自适应播放器。比如实时性要求高的直播,就使用支持 rtmp 的播放器,需要回看的情况下,就使用支持 HLS 的播放器。

CDN 优化不可避免的痛点

在 CDN 优化过程中,也有很多痛点不可避免。这里主要分享三方面:ISP、CDN 厂商、内外部用户

ISP

说到 CDN 优化,必然离不开 ISP(互联网服务提供商),这里涉及到如下四个方面:

  • 劫持。常见的劫持有两种。第一种是 DNS 劫持,可通过商务手段解决,但时间跨度很长;还可通过私人关系解决,但不是每个人都有这种关系。针对这种劫持,目前还没有特别好的解决方案。
  •     还有一种就是内容劫持,会在 PC 或 APP 端出现其他公司的广告,这种劫持的解决方案是做全站 HTTPS。
  • IP。IP 使用比较混乱,运营商之间有混用的情况。如出现跨运营商的情况,对用户进行 DNS 解析时,精确度就会受到影响。
  • 移动端。用手机进行网络访问,第一跳肯定是手机和基站之间的连接。目前基于大的环境,手机和基站在通讯过程中的延迟无法避免,而且也没有有效的监控方法。
  • GFW。这个是所有拥有海外业务公司的痛点,目前国美互联网采用的是第三方的设备。

CDN厂商

CDN 厂商这部分,涉及四个方面:

  • 服务质量。这里的服务质量其一是指节点的响应速度,其二是节点正常运行的保障。服务质量是一切的前提条件。
  • 计费方式。一般计费方式有按平均带宽、95 计费,第四峰值计费等,根据业务情况可能还有根据访问次数计费。一般采用 95 计费即可,具体情况根据业务来定。
  • 以国美直播举例,发展初期,直播场次少,基本一月一次,那么按照 95 计费是比较合理的,对公司成本也是最优的。
  • 个性化需求。有些 CDN 厂商,不太愿意提供个性化的需求,所以在合作前期就要沟通好,因为每个公司,每个产品对 CDN 的需求都是不一样的。
  •  朋友非敌人。和 CDN 厂商合作,是朋友而非敌人的关系,是相互学习的过程。在合作的过程中,都能学习到很多知识。

用户

用户分为外部、内部两种,有各自的痛点:

  • 外部用户。当对一些故障进行修复时,需要外部用户的配合,可能会涉及进行有些用户很反感的远程操作。
  • 内部用户。当内部用户发现故障时,应该第一时间反馈数据,进而缩短解决问题的时间。做为互联网工程师,应该具备相关的网络基础知识。

结束语

从传统的 CDN 加速到目前的智能 CDN,速度发展的非常快。CDN 是用户访问的入口,其服务质量直接关系使用公司的成败。虽然如今智能化是趋势,是方向,但是最基本的服务质量才是所有的根本。

作为使用方的我们,希望 CDN 使用应该是:

  • 专业服务。
  •  智能技术。
  •  量身定制。

张高明为自己定义的两个标签是“互联网老兵,电商新兵”,曾就职过 SP、传统互联网、电商。目前就职国美互联网,是应用运维技术负责人,主要负责站内应用运维与站外第三方合作。

沙龙相关文章

每日数亿视频播放量,秒拍播放链路优化实践

给高并发降温,美团高性能、高可靠四层负载均衡MGW优化实践

10 月 28 日 / 北京,第十六期“Tech Neo”沙龙,主题:“自动化运维与 DevOps”,点击图片,立即报名。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

【责任编辑:wangxueyan TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C#和.NET核心技术

本书重点讲解如何用实用的代码来解决具体的实际问题。本书的内容覆盖面很广,从新的C#范型到Web服务,从反射到安全等都有涉及。系统地介绍...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言