<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>腾讯云 on 丸子有记, 记录生活、分享技术，专注于运维架构、运维开发(devops)。</title>
    <link>https://wanzi.dev/zh-cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91/</link>
    <description>Recent content in 腾讯云 on 丸子有记, 记录生活、分享技术，专注于运维架构、运维开发(devops)。</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <managingEditor>wzdushu@gmail.com (wanzi)</managingEditor>
    <webMaster>wzdushu@gmail.com (wanzi)</webMaster>
    <copyright>丸子有记</copyright>
    <lastBuildDate>Wed, 07 Sep 2022 12:22:42 +0800</lastBuildDate>
    
        <atom:link href="https://wanzi.dev/zh-cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>对CDN建设一些总结与思考</title>
      <link>https://wanzi.dev/zh-cn/post/linux-cdn-cloud-aliyun-cloudfront/</link>
      <pubDate>Wed, 07 Sep 2022 12:22:42 +0800</pubDate>
      <author>wzdushu@gmail.com (wanzi)</author>
      <guid>https://wanzi.dev/zh-cn/post/linux-cdn-cloud-aliyun-cloudfront/</guid>
      
        <description>&lt;p&gt;新冠病毒疫情反反复复，对于日常生活和工作造成了不小影响，对于我最近半年发生了太多事情，家中亲人病重，奶奶去世，有很多事儿要忙，所以博客也停更了半年;&lt;/p&gt;
&lt;p&gt;面对经济不景气，各行各业开始了裁员，很多公司业务开始收缩，趁着最近闲暇，把以前CDN工作经历做一个简单总结。&lt;/p&gt;
&lt;h2 id=&#34;一大型网站架构剖析&#34;&gt;一、大型网站架构剖析：&lt;/h2&gt;
&lt;p&gt;移动互联网时代，对于一个高并发的大型网站，架构的设计都不会太简单，我简单从如下几个方面概括一下：&lt;/p&gt;
&lt;h3 id=&#34;1客户端&#34;&gt;1、客户端：&lt;/h3&gt;
&lt;p&gt;设备端主要电脑PC、移动手机、智能设备等&lt;/p&gt;
&lt;p&gt;浏览器层主要有Chrome、微软IE/Edge、Safari、火狐Firefox、欧鹏Opera等，这里主要以浏览器内核为准统计。&lt;/p&gt;
&lt;p&gt;协议层：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;（1）普通网页：Http1.1/Http2/Quic&lt;/li&gt;
&lt;li&gt;（2）流媒体：Rtmp/Http-FLV/HLS(m3u8)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2cdn层&#34;&gt;2、CDN层：&lt;/h3&gt;
&lt;p&gt;对于中小型网站一般采用商用CDN即可&lt;/p&gt;
&lt;p&gt;对于大型和特大型网站，建议采用自建和商用CDN，这个后边我会详细介绍。&lt;/p&gt;
&lt;p&gt;在CDN领域，主要有两大部分组成，缓存层+调度层。&lt;/p&gt;
&lt;p&gt;对于不同业务形态，一般分为静态加速、动态加速、下载加速、音频加速、视频加速、直播加速、P2P加速、安全加速。&lt;/p&gt;
&lt;h3 id=&#34;3静态服务&#34;&gt;3、静态服务：&lt;/h3&gt;
&lt;p&gt;前端业务形态一般分为H5、小程序、安卓、IOS，主要元素有HTML/CSS/JS&lt;/p&gt;
&lt;p&gt;前端主流框架，VUE/React/Angular&lt;/p&gt;
&lt;p&gt;一般服务器端使用Nginx或Openrestry搭建，设置SSL证书、过期时间、跨域配置等即可。&lt;/p&gt;
&lt;h3 id=&#34;4动态服务&#34;&gt;4、动态服务：&lt;/h3&gt;
&lt;p&gt;一般根据公司主力编程语言，一般为php/java/golang/python等&lt;/p&gt;
&lt;p&gt;目前大部分公司都会把动态服务跑在docker或者k8s集群&lt;/p&gt;
&lt;p&gt;对于动态层面，如果无法做到动静分离，必须要走CDN，建议配置策略回源，减少路由损失。&lt;/p&gt;
&lt;h3 id=&#34;5数据缓存层&#34;&gt;5、数据缓存层：&lt;/h3&gt;
&lt;p&gt;这部分主要采用Redis或Memcached
云原生生态链也有采用etcd或tikv做缓存的。&lt;/p&gt;
&lt;h3 id=&#34;6数据库服务器&#34;&gt;6、数据库服务器：&lt;/h3&gt;
&lt;p&gt;传统数据库主要有Mysql、MariaDB、PostgreSQL、SqlServer、Oracle、DB2关系型数据库。&lt;/p&gt;
&lt;p&gt;对非关系型数据库（NoSQL），主要代表有Mongodb、Hbase、Cassandra（facebook）等。&lt;/p&gt;
&lt;p&gt;随着对性能和海量数据要求越来越高，新型分布式数据库发展越来越好，比如Tidb(PingCAP开源)、Greenplum、DorisDB(百度开源)、Clickhouse等&lt;/p&gt;
&lt;h3 id=&#34;7分布式数据存储&#34;&gt;7、分布式数据存储：&lt;/h3&gt;
&lt;p&gt;一般采用Ceph/HDFS/GlusterFS/GFS根据不同类型场景选择不同存储软件。&lt;/p&gt;
&lt;p&gt;目前主流以Ceph和HDFS两大阵营为主，很多云厂商底层采用Ceph，主要是它支持块存储、对象存储、文件系统，同时openstack默认就走的这货，对k8s支持也比较完善；而HDFS主要满足海量数据存储，一般配合hadoop和Spark使用，对云原生支持不是很好。&lt;/p&gt;
&lt;h2 id=&#34;二自建cdn还是商用cdn&#34;&gt;二、自建CDN还是商用CDN？&lt;/h2&gt;
&lt;h3 id=&#34;1选择cdn&#34;&gt;1、选择CDN&lt;/h3&gt;
&lt;p&gt;是考虑自建CDN还是采用商用CDN，我觉得需要根据公司业务规模以及成本、场景来考量。&lt;/p&gt;
&lt;p&gt;对于普通静态文件CDN加速，规模在1000万PV以下，不要考虑自建CDN，商用CDN即可满足，调度策略优先选择价格低廉、服务效果好的CDN；&lt;/p&gt;
&lt;p&gt;对于大文件下载CDN加速，这类如果公司带宽不富裕，不建议自建CDN，商用CDN即可；&lt;/p&gt;
&lt;p&gt;对于音频和点播加速，这类如果研发团队实力不够强，建议采用商用CDN，建议采用价格低、节点多、效果好的CDN；&lt;/p&gt;
&lt;p&gt;对于直播加速，这类对体验效果要求较高，主要考量CDN节点网络质量，建议采用大型云CDN厂商。&lt;/p&gt;
&lt;p&gt;对于动态加速、安全加速，优先考虑回源链路优秀、安全策略完善CDN厂商。&lt;/p&gt;
&lt;h3 id=&#34;2如何自建cdn&#34;&gt;2、如何自建CDN？&lt;/h3&gt;
&lt;p&gt;对于服务器硬件，从硬盘、内存、CPU考虑采用性价比更高服务器；&lt;/p&gt;
&lt;p&gt;对于机房带宽，首选运营商代理商，优选条件：机房出口大，链路优秀，有硬防护等；&lt;/p&gt;
&lt;p&gt;对于缓存节点，选型一般为Nginx或Apache traffic server或者varnish、squid；&lt;/p&gt;
&lt;p&gt;对于调度系统，首选第三方智能CDN，有一定研发实力可以考虑Bind View或Bind DLZ；&lt;/p&gt;
&lt;p&gt;对于CDN高可用负载均衡，选型考虑LVS、Nginx、Keepalived、Haproxy&lt;/p&gt;
&lt;h3 id=&#34;3如何选择商用cdn&#34;&gt;3、如何选择商用CDN？&lt;/h3&gt;
&lt;p&gt;对于国内提供CDN厂商，主要有阿里云、腾讯云、网宿、华为云、百度云、金山云、白山云、七牛云、蓝汛、又拍云、帝联、ucloud、青云等&lt;/p&gt;
&lt;p&gt;对于海外提供CDN厂商，主要有AWS的cloudfront、Akamai、Google、Fastly、Limelight、Cloudflare、StackPath、CDNetworks等&lt;/p&gt;
&lt;p&gt;无论国内还是海外，在选择CDN的时候可以参考如下指标进行选择：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;（1）节点分布，如果CDN分布节点越多，越靠近用户，一般加速效果越好；&lt;/li&gt;
&lt;li&gt;（2）首屏时间，用户第一次打开时间，这个指标越短，用户体验越好；&lt;/li&gt;
&lt;li&gt;（3）节点延迟，用户侧到CDN节点延迟越短，说明网路链路效果越好；&lt;/li&gt;
&lt;li&gt;（4）下载速度，用户下载文件速度很快，说明服务器性能和网络都很好；&lt;/li&gt;
&lt;li&gt;（5）丢包率，用户侧丢包率很高，说明用户到CDN节点整体网络效果不好；&lt;/li&gt;
&lt;li&gt;（6）回源率，从回源请求数比例和回源流量比例入手，越低越好，说明CDN帮你抗下了流量；&lt;/li&gt;
&lt;li&gt;（7）命中率，命中率越高，说明CDN缓存资源越多，加速效果越好；&lt;/li&gt;
&lt;li&gt;（8）平台功能是否丰富，基本功能是否完善，界面体验效果如何；&lt;/li&gt;
&lt;li&gt;（9）运营团队响应速度，反馈后多久能给响应、处理；&lt;/li&gt;
&lt;li&gt;（10）调度策略，观察服务商调度策略是否合理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;三总结&#34;&gt;三、总结&lt;/h2&gt;
&lt;p&gt;对于最近几年，云计算时代来临，国内CDN行业也算来了一次大洗牌，原先CDN巨头网宿、蓝汛，目前已经被阿里云、腾讯云替代；曾经的帝联业务也越来越不行，快网被世纪互联收购，白山云转型边缘云计算，其他中型云厂商如金山云、ucloud、七牛云、又拍云正在逐步瓜分这个市场。&lt;/p&gt;
&lt;p&gt;写在最后，未来CDN行业发展方向该如何，这个谁也不知道，根据目前这势头，各家厂商都在大搞边缘计算，随着5G、人工智能、容器技术迭代升级，CDN不仅仅只是一门技术那么简单了，它需要不断的和其他技术整合，最终应用到我们生活中。&lt;/p&gt;
</description>
      
    </item>
    
  </channel>
</rss>
