1、百度开放云的口号
百度开放云的口号是把百度核心的技术架构对公众和客户进行开放,线上已经有大概29款的产品,有十大解决方案。
百度把自己从大概2010年起自建的CDN,包括节点、包括里面的架构,对外来做开放。从2010年开始,百度的CDN承载过百度搜索、百度音乐、百度视频、百度网盘,包括网页、小文件托管、大文件分发、以及多媒体等等多业务形态的CDN服务。大概整个百度有70%以上的流量是承载在CDN上面。每天处理的PV数超过1千亿,UV数也有一个量级。
2、关键技术
网民的请求先到边缘节点,然后到CDN的中心节点,然后回到原站。对于整个CDN,日志、收集、处理、报表等,可以用这样的系统进行处理。
“同时在全国各地有这样的一个点,我们要做统一的运维管理、包括日常的升级、故障的处理,有一套完善的运维系统做支撑。”
对于整个架构来说,第一个核心技术就是流量调度系统。相对于CDN来说也是最核心的一个技术。会考虑网民的分布、距离、包括运营商,还有CDN本身的质量,存活性、带宽的能力、成本等方面,对用户的请求到底分配到哪个节点,会有相应的调度。
配合流量调度,需要一个比较准确的、及时更新的IP库,在百度内部结合百度搜索的一些数据,包括访问的一些日志,和运营商、友商的数据做一些融合之后,可以实时地进行更新。
百度开放云做的比较多的是高性能缓存,除了基于内存、SSD之外,里面还包括大文件的分片的缓存,以及回源方面,因为系统回源是由缓存系统来做这个事情的,包括一些合并的回源、分片的回源,比如说你请求多少、我就拉多少回源,能够控制源站的压力。
TCP协议栈优化方面,通过TCP的优化算法来做一些优化。
“比如说你去尽量地激进的做一些重发,或者说窗口的调大等等这样一些操作,实际上这样做的话,一方面来说,据我自己的观察,它的效果不见得最好,另一方面来说,可能还有一个更严重的问题,由于互联网上的几个骨干网的流量主要集中在几家,如果这几家都用比较激进的方式做网络传输的话,实际上对整个互联网的流量是一个很大的冲击,可能会带来更大的问题。作为一个有责任心的厂商,其实这块要做更细致的、更适配的一些优化。另外,我们对于海外的CDN,我们也提供了专线回源的支持。”
3、百度CDN的特点
“我们整个百度的CDN,首先就是快,我们希望客户在我们这里可以达到快如风的这样一个特点。”
第二个特点是简,对于客户来说操作简单,几乎是一键式可以开启某些功能的特点。
第三个特点是稳,有很强的稳定性。最后是希望达到客户可依赖的产品。
“我们希望有一个比较透明的计费方式,最后我们希望做到可知、可感、可控、可信赖的这么一个CDN的产品。”
整个CDN产品,怎么能对客户做到极简的,是怎么考虑这个需求的呢?
今年4月初,百度开放了整个CDN对https的支持。相当于客户把证书托管给CDN,然后用户会有一些https的请求,百度开放云会给客户的源站做一些https的卸载,当然可能也支持源站的响应。
“我们问了自己一些问题,然后来做具体的产品思考。”
第一,实际上https,对于http来说只是加了一个s,但是实际上做过这个升级的人可能都比较理解,不管是在证书的开销,包括加密、解密的处理请求,因为是做一个加速产品,肯定不能影响用户的性能,这是一个基本的要求。
第二,已经用了https加速的客户,怎么能够做到很快地、或者无缝地从http升级到https,怎么帮助他们做这种无缝升级。
第三,实际上升级的时候需要在源站加载自己的证书,特别是一些静态的资源,也希望做https的一些改造。这样的改造,可能很多客户做起来也是很费劲的,这样的一些客户怎么处理。
百度作为国内互联网的一个大型站点、首家把全站升级到https,我们最后希望达到的效果,源站完全不用改造,直接把证书托管给CDN,CDN可以帮助兼容用户的请求,对于客户的源站不需要做任何的改造,可以直接升级。
“我们直接把用户的请求,http过来,然后到达https,然后客户还是用https进行访问,通过这样的兼容性处理,然后让客户达到满意的效果。包括我们对于客户来说,想用户所想,充分考虑产品的细节,让用户放心使用我们的产品。”
第二个解决方案,是智能图。对于图像的处理,比如说实时的图像处理,比如说一些缩略图、裁剪,包括格式的转换、甚至加一些水印等等,让客户做到图片的支持印和下载的一些内容。包括人脸识别、文字的识别,例如身份证拍的照片,从整个照片里面提取身份证号等等类似的处理能力,都是在开放云上可以无缝地使用的能力。
第三,视频点播方案。这个方案的特点是,因为要做视频点播,首先要解决源文件从哪儿来的问题。
“我们实际上提供了10000路以上的分布式实时转码能力。我们回源的时候,有这种比较领先的截流模式,命中率也很高。还提供播放器等等的SDK,让客户可以基于这套解决方案,可以打造出客户自己的一套视频点播的系统。”
百度开放云还推出了音视频直播LSS,并且在直播的同时去做转录的功能。
“比如说我们直播的流媒体,实际上有一个可追溯的条件,我们也是无缝提供了这块内容。包括标准协议的直播服务,也是从服务端到播放器等等一整套的SDK,让开发能力可能没有那么强的客户做一些定制开发,搭建起这样一套服务。包括流媒体实时处理的技术,我们支持一码率的服务,可以节省10%-30%的带宽。我们支持一整套的SDK服务,包括web端、不管是推流、拉流、还是播放,都是可以很容易集成进来,做到无缝对接。”