编者按:《运维之下》一书覆盖了系统、网络、数据库、安全、标准化、自动化等多个层面,从创业初期见招拆招到BAT级别的规模化运维,从PaaS、IaaS到公有云,从运维理念到平台实践,都有所阐述。作者从个人成长经历出发,分享了自己与团队在运维工作发展过程中遇到的问题,如何去思考问题,怎样去解决问题。与其说这是一本传授管理经验和工作秘诀的书,不如说它更是一本关于运维体系化的指导手册。在各种说教式理论类丛书漫天飞的同时,笔者能够耐得住性子,将自己的多年的从业经验,合力共聚为一本书,这本书的含金量自然可想而知。本篇为《运维之下》第十一章。第十一章:CDNCDN是ContentDeliveryNetwork的缩写,直译为“内容分发网络”。工作思路是把用户需要访问的内容缓存在边缘节点,就近访问,进而绕开经互联网骨干传输数据的不稳定性和速度瓶颈,起到提升最终用户体验的效果。通过在网络各处放置节点服务器所构成的基于现有互联网基础的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况,以及到用户的距离和响应时间等综合信息,将用户的请求重新导向离用户最近的服务节点上。其目的是使用户就近获取所需的内容,解决Internet拥挤的状况,提高用户访问网站的响应速度。CDN分为静态加速和动态加速两部分,分别介绍如下。静态加速通过缓存静态资源到CDN节点,使用户可以就近访问CDN节点来获取资源,避免用户直接从源站获取数据,提升用户访问速度和质量。如图11-1所示,相比用户直接访问源站,访问CDN节点可以带来以下收益:CDN节点更靠近用户,可以提供更小的网络延迟及更快的访问速度;CDN节点数量远大于源站,可以支撑更大的请求数量;CDN节点多地域部署,可以提供更好的容灾能力。静态加速可以分为小文件类业务、下载类业务。两者之间的区别在于文件大小以及访问方式,以及由此带来的业务不同侧重点。图11-1用户访问CDN节点和源站的路径小文件类业务:主要是通过浏览器访问的网页、图片、JS、CSS等内容尺寸比较小(无严格限制,一般为数KB至几百KB)的文件。特点是单次请求文件较小,请求总数较大,主要消耗CPU和带宽资源。一般都是直接在浏览器中展示,对访问成功率要求较高,要求RTT延时要尽量低,即节点要部署得离用户近。下载类业务:相对于静态资源类业务,下载类业务的单文件尺寸要大很多,需要更多的磁盘空间和带宽资源,对CPU的消耗不如小文件类业务大。并且下载类业务的下载时间会比较长,相对于静态资源类业务更注重于吞吐量,而不是RTT延时。动态加速静态加速业务是通过将文件缓存至CDN节点来提高用户的访问速度的,而动态加速是通过尽量减少用户到源站之间请求的网络耗时来提高用户体验的。可用的技术有TCP单边加速、多路TCP合并回源、回源压缩。TCP单边加速:主要原理就是在用户通过公网直接访问源站比较慢时,通过各种方式让用户请求绕过拥堵的网络环节。例如,在用户访问质量良好的区域建立CDN节点,用户访问先经过CDN节点,通过CDN节点中转至源站;或者在某些关键CDN节点使用专线和源站联通,以确保CDN节点到源站的回源质量(见图11-2)。图11-2TCP单边加速示意图多路TCP合并回源:在CDN节点将多个用户的数据合并在一个TCP连接上回源至源站,以减少回源时新建TCP连接带来的额外时间消耗(见图11-3)。图11-3多路TCP合并回源示意图回源压缩:将回源数据流进行压缩,减少在网络上传输的回源数据量。自建CDN初期公司更多的是使用第三方公司提供的CDN服务,随着业务量和业务需求的增加,第三方CDN在质量和运维效率上逐渐不能满足业务需求。为了提升CDN的质量,提高运维效率,自建CDN是一个不错的选择。在某案例中,使用自建CDN后,不仅业务质量有了明显提升,成本也有了大幅度降低,并且从侧面帮助公司在使用第三方CDN服务时提高了议价能力。该案例中,自建CDN支持静态加速和动态加速业务,带宽容量达数百Gbps,日常支撑了全公司90%以上的CDN流量,多次支撑了业务的大型发布推广活动(活动带宽相比日常带宽增长数倍)。自建CDN在设计之初就针对公司业务的特性,以及从节点选择、软硬件配置到参数优化都进行了有针对性的调整。在该案例中,针对公司业务的特点,我们首先开始了大文件静态加速的工作,随后逐步进行小文件静态加速和动态加速的工作。同时,CDN管理和调度系统也随着CDN的发展不断完善。CDN系统整体框图如图11-4所示。图11-4CDN系统整体框图◎CDN业务系统:对用户直接提供CDN加速的缓存服务器和代理服务器。◎私有调度系统:公司的HTTP调度服务器和调度服务器。◎GSLB系统:支持智能解析的DNS服务器。◎流量收集系统:采集节点交换机、服务器和各业务的流量。◎质量收集系统:对质量评测数据的采集、存储。◎日志统计系统:统计CDN访问日志、调度系统日志。◎质量分析系统:通过质量评测数据和日志统计数据,汇总统计出质量排序结果。◎CMDB系统:管理CDN节点的资产信息及状态跟踪。◎调度决策系统:根据质量排序结果、流量数据以及CMDB系统的服务器状态,计算出一个最优化的调度方案,并生成相关调度系统的配置文件。◎监控系统:对节点各类设备的基础监控及业务可用性监控。◎告警系统:CDN告警系统会做两件事情,一是在告警发生时通知运维人员;二是会同时向调度决策系统发送信令,可以实现某些特定故障的自动化修改调度处理。◎自动化接口:提供给CDN业务使用者的一些刷新、预加载等接口。◎Portal展示系统:展示CDN业务运行的各项数据。◎配置变更系统:CDN运维人员进行各种日常运维操作的系统。CDN硬件及节点选型CDN的目的是在尽量低的成本下为用户提供尽可能高的服务质量,所以在硬件选型时成本是一个很重要的考虑因素。针对静态资源类业务,在硬件选型上主要评估在节点出口带宽满载时,所使用的硬件总成本。例如,相同配置的1台万兆服务器和10台千兆服务器都可以跑满10Gbps带宽,这时肯定会选择万兆服务器。当然,在硬件选型时还要考虑实际业务对CPU、内存、磁盘的使用情况。CDN服务器选型策略静态资源类业务使用的机型规格为E5-*2+GBRAM+2TBSAS*4+GBSSD*6。关键指标:万兆网卡+大内存+SSD存储。使用万兆网卡可以有效避免单机网络吞吐达到瓶颈;大内存可以将更多的数据缓存在内存中,降低磁盘IO的使用;SSD可以提供更好的随机IO读/写性能。总体目标就是避免出现木桶效应。动态加速类业务使用的机型规格为E5-*2+64GBRAM+GBSAS*2。因为此类业务对带宽使用量较少,主要是大量TCP连接数对CPU的消耗,所以在硬件选型上主要侧重于CPU和内存,对于磁盘和网卡没有要求。在做硬件选型时,发现相对于Broad
娌冲崡鐧界櫆椋庡尰闄㈠摢瀹跺ソ鍖椾含娌荤枟鐧界櫆椋庡摢闂村尰闄㈡渶濂?
转载请注明:http://www.92nongye.com/gaishu/204613477.html