V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
NGINX
cURL
andywuwu
V2EX  ›  CDN

自研 CDN 的难度在哪里?为什么都是大厂才搞自研 CDN,网上的 CDN 教程也很少,哪里有相关技术参考的吗?

  •  
  •   andywuwu · 2020-05-21 23:30:57 +08:00 · 6516 次点击
    这是一个创建于 1638 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,感谢。

    39 条回复    2020-06-28 15:06:30 +08:00
    opengps
        1
    opengps  
       2020-05-21 23:32:59 +08:00 via Android   ❤️ 2
    难在节点数量,难在昂贵的骨干网络
    jugelizi
        2
    jugelizi  
       2020-05-21 23:37:01 +08:00 via iPhone
    你要保证上海北京西雅图访问速度一样快 还不知道难点
    Kilerd
        3
    Kilerd  
       2020-05-21 23:40:24 +08:00   ❤️ 1
    做到以下几点就好了:
    1. 不同地方解析到最近的 CDN 节点 IP
    2. CDN 节点的文件保持一致
    3. 文件更新时,即使下发到各个节点

    就那么简单。
    huntcool001
        4
    huntcool001  
       2020-05-21 23:41:34 +08:00
    并不难.. 你自己在各大洲买 VPS 部署都能搭建 CDN. 比云服务厂商的便宜很多.
    cz5424
        5
    cz5424  
       2020-05-21 23:42:32 +08:00 via iPhone
    不难啊,有钱就行
    xmumiffy
        6
    xmumiffy  
       2020-05-21 23:43:02 +08:00 via Android
    难度在于钱
    andywuwu
        7
    andywuwu  
    OP
       2020-05-21 23:44:09 +08:00
    @Kilerd 现在网上有没一些开源的 cdn 自研解决方案或相关组件? 自己以前点播就玩过 traffic server+nginx+lvs,直播就 SRS 相关,发现找不到其他更好的
    niubee1
        8
    niubee1  
       2020-05-21 23:44:56 +08:00
    资源型的业务,需要大量的钱
    andywuwu
        9
    andywuwu  
    OP
       2020-05-21 23:46:07 +08:00
    钱的确是一大问题...不想每个地方建物理机房的话就只能用云主机...
    XanderChen
        10
    XanderChen  
       2020-05-21 23:46:44 +08:00
    想开发个 CDN ?

    搜索关键词 how to build cdn network

    百度也行,谷歌更好。
    Meltdown
        11
    Meltdown  
       2020-05-21 23:48:09 +08:00 via Android
    CDN 感觉就像京东自建仓储物流
    andywuwu
        12
    andywuwu  
    OP
       2020-05-21 23:50:19 +08:00
    @XanderChen 看过了 大部分都是国内外公司的解决方案
    lizytalk
        13
    lizytalk  
       2020-05-21 23:57:19 +08:00 via iPhone
    难在缺钱吧
    Xusually
        14
    Xusually  
       2020-05-21 23:58:08 +08:00
    其实也有很多自建的,或者类似于自建的多节点。

    难度不说吧,至少成本是一个考虑的问题。
    janus77
        15
    janus77  
       2020-05-22 00:03:22 +08:00
    买服务器是一部分
    另外就是和各 ISP 进行深度合作,确保体验一致(同城的同一家 ISP,城里和乡下也有区别)
    Kei001
        16
    Kei001  
       2020-05-22 00:52:34 +08:00
    楼主想自建 CDN 可以考虑使用 Fikker
    2kCS5c0b0ITXE5k2
        17
    2kCS5c0b0ITXE5k2  
       2020-05-22 01:07:17 +08:00
    你看 b 站的 CDN 就知道 自建不难 但是好用就很难了
    holinhot
        18
    holinhot  
       2020-05-22 03:31:50 +08:00
    搭起来容易,要质量高才是难点。看看阿里云(国际)那垃圾 CDN 。经常 502 。 根本不监控和优化回源和访问速度感知优化。
    qfdk
        19
    qfdk  
       2020-05-22 05:24:38 +08:00 via iPhone
    自建其实就是 nginx 反向代理吧 其实 cf 就挺好 blog.qfdk.me 看看速度喽
    ohao
        20
    ohao  
       2020-05-22 06:24:15 +08:00 via iPhone   ❤️ 4
    说容易的 看回复大部分小白 大部分理解的 cdn 都是几个机器做个集群,压根不是 cdn

    涉及的太多了
    先是智能 dns,需要准确的 IP 归属,这个涉及 IP 库的清洗,不是 apnic,rpie 这类去官方脚本抽取就能用,需要 bgp 层面做测量,然后就是 dns 服务器的稳定性,一攻击挂掉整个服务就凉了 (估计很多人会告诉你用 dnspod 什么的.....呵呵吧......),cf 的 dns 也是分组,被攻击的时候好牵引

    然后不说使用什么软件层面,就配置文件下发,实时性,比如从美国到南非,有时候网络稳定性巨差,导致各种问题
    大公司 cdn 的区域是存储池模式,定制的一组机柜比如 40 台服务器共用一个 san 存储,这样缓存的文件一个 copy 就可以了,不需要每个服务器都配置缓存硬盘缓存一样的数据,还能区分热数据冷数据分 ssd 或 hdd 存储,这 40 台组内网集群,在 n 个 cdn 前端出口做 lb

    如果是租用设备,设备的硬件和网络不同,配置文件都是需要单独配置优化的

    还有日志的分析和收集,不要说什么 syslog 了,这个都是 elk 集群
    uzumaki
        21
    uzumaki  
       2020-05-22 06:51:28 +08:00 via iPhone
    @ohao 有钱都可以实现自建。
    sinxccc
        22
    sinxccc  
       2020-05-22 07:24:42 +08:00
    @uzumaki 有钱的大公司自建 CDN 的翻车次数也不少了,做的好的基本都是业务单一的。
    alexkkaa
        23
    alexkkaa  
       2020-05-22 07:28:57 +08:00 via Android
    难得是 cf 这样的,一般的 cdn 没啥难度,就是人民币玩家。国内的还要有关系,价格低
    luren123
        24
    luren123  
       2020-05-22 07:46:16 +08:00
    难点是成本,人力成本&设备成本,就比如你开一个面包店的时候,你回去开面粉厂?回去开烤面包机的生产厂么?
    如果你在全国有几百家连锁店,你可能回去做这件事
    luren123
        25
    luren123  
       2020-05-22 07:46:31 +08:00
    难点是成本,人力成本&设备成本,就比如你开一个面包店的时候,你会去开面粉厂?会去开烤面包机的生产厂么?
    如果你在全国有几百家连锁店,你可能回去做这件事
    brendanliu
        26
    brendanliu  
       2020-05-22 08:42:05 +08:00
    自建不难,主要是成本问题,可以参考京东的本地仓
    brendanliu
        27
    brendanliu  
       2020-05-22 08:42:39 +08:00
    @brendanliu 还要和运营商搞好关系
    salmon5
        28
    salmon5  
       2020-05-22 08:47:16 +08:00 via Android
    一堆小白,钱不是更难的吗?
    salmon5
        29
    salmon5  
       2020-05-22 08:48:06 +08:00 via Android
    和你挣钱千万年薪一样难
    ica10888
        30
    ica10888  
       2020-05-22 08:59:11 +08:00 via Android
    bilibili ?
    ajaxfunction
        31
    ajaxfunction  
       2020-05-22 10:17:01 +08:00
    这玩意和 CPU 一样, 入行门槛特别特别高,然后售价确是白菜价, 这就形成了壁垒

    谁能初期投资上亿 ,然后售价几毛几块的往回收啊?
    namelosw
        32
    namelosw  
       2020-05-22 11:36:09 +08:00
    我也好奇为什么没有,比如我关心的国家和地区都有一些机器,为什么没有开源的东西能让我把这些机器很容易地变成 CDN 。这样甚至我的某些不太重依赖 DB 的 web server 还能像 CDN 一样分布。

    因为没有最后只能买现成的 CDN 。
    est
        33
    est  
       2020-05-22 11:40:46 +08:00
    自研 CDN 的难度在哪里?

    我觉得不是研的难度吧。是买线路买机房的难度。
    hst001
        34
    hst001  
       2020-05-22 11:53:27 +08:00
    CDN 的关键是硬件和线路,开源软件给你有什么用?
    HuHui
        35
    HuHui  
       2020-05-22 12:06:33 +08:00 via Android
    这和一个人做饭不划算是一回事
    uzumaki
        36
    uzumaki  
       2020-05-22 17:38:59 +08:00 via iPhone
    @sinxccc 做的好的业务单一的还是证明不够钱。
    xsen
        37
    xsen  
       2020-05-24 08:24:19 +08:00   ❤️ 1
    现在 cdn (各大厂的)还是有一定的局限性,都是针对性的普适性的方案。没有针对企业私有云或混合云的方案

    1. 不支持私有云部署

    2. 不支持 p2p cdn 类似这样的方案
    这属于细分市场,企事业(大型的)基本都有类似需求。用公有云成本高(流量成本),对带宽要求也高。若采用混合云部署的方式,就非常理想

    3. 不支持实时流媒体的传输
    流媒体这块当前主要是基于 rtmp,延迟太高。需要支持低延迟流媒体传输(如直播或视频会议这些)

    4. 缺乏对智能硬件接入的支持
    thinkxen
        38
    thinkxen  
       2020-05-29 15:15:55 +08:00
    智能 DNS 分地区分线路解析
    节点监控 节点自动上线下线
    节点防护节点负载
    反正很复杂
    gz911122
        39
    gz911122  
       2020-06-28 15:06:30 +08:00
    有什么简单的开源 cdn 系统么....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3468 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:37 · PVG 18:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.