V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
COW
V2EX  ›  云计算

防止云厂商绑定是怎么做的?

  •  
  •   COW · 2 天前 · 2761 次点击

    是不是应该写一个抽象层,IaC 里把各个云厂商 provider 接到抽象层下面,如果 AWS 不想用了,改一下 provider 类型,就随时能切换到其他云?

    46 条回复    2025-10-24 17:45:28 +08:00
    yinmin
        1
    yinmin  
       2 天前 via iPhone   ❤️ 2
    只用云服务器,所有服务都在云服务器上自建
    kapr1k0rn
        2
    kapr1k0rn  
       2 天前
    不要使用云厂商专有的产品
    opengps
        3
    opengps  
       2 天前
    你这个想法,是建立在单机背景下的,单机用途其实本身就不需要什么云。
    真正需要用云来发挥价值的都是集群用户,数量大客随时增减,组件多可以减少配置难度,这种客户下云非常困难,甚至为此都会主动去设计多云架构
    renmu
        4
    renmu  
       2 天前 via Android
    想得很美好,实际每个云厂商提供的功能千奇百怪
    COW
        5
    COW  
    OP
       2 天前
    @renmu 所以在最小化使用云厂商功能的前提下,做一个抽象层,云厂商切换还是可以实现的吧,剩下的就是服务本身的迁移了
    Ketteiron
        6
    Ketteiron  
       2 天前   ❤️ 1
    多云架构,抽象与实现有很多种,多活/双活/热备/温备/冷备等。
    双活/多活就是多个云上都准备好了服务,方便某个厂商拉跨时迅速撑起流量。
    冷备份是以单个云作为主力,出现灾害时通过自动化流程临时去其他云买/租机器然后迁移服务。
    热备/温备介于二者之间。
    但想法是理想的,现实是。。。
    99.999%服务并不会因提高可用性而提高实际可用性,反而引入了更多的复杂度。
    COW
        7
    COW  
    OP
       2 天前
    @Ketteiron 你提到的这个单云主力 + 冷备,出现灾害时通过自动化流程临时去其他云买/租机器然后迁移服务,跟我的想法是一致的。至于跨云多活,我就没想过,感觉是不可能完成的任务。
    Zarc9609
        8
    Zarc9609  
       2 天前
    我觉得企业在决策是不是上多云的主要问题是成本问题
    salmon5
        9
    salmon5  
       2 天前
    这个说说很动听,实际绝大部分公司,执行不好
    云上的每一个产品,都搞一个抽象层,那开展业务就像带上了脚镣
    wanniwa
        10
    wanniwa  
       2 天前
    我们公司就是的,我实现的跟你思路是一样的,都抽象出来,可以随时来回切换云厂商流量,我云函数和云主机都是这么实现的,支持云函数动态切流,云主机使用完动态关机……
    领导今天要接个京东云明天要接个腾讯云,后天华为云又过来说更便宜,确实会来回换。
    julyclyde
        11
    julyclyde  
       2 天前
    听起来很 java
    salmon5
        12
    salmon5  
       2 天前
    还有多云,说说简单;
    就像房子,你会为了某 1 套房子偶尔停水 1 天,搞 2 套房子热备、冷备?那成本是巨大的
    你说你有多套房子?那行,你有私人飞机?你会为了偶尔某 1 架私人飞机可能的故障维修,搞 2 架热备、冷备?
    你有 2 架私人飞机?那行,你有 2 个地球吗?地球曾经发生过恐龙灭绝?你有能力再备 1 个地球?
    salmon5
        13
    salmon5  
       2 天前
    @salmon5 多云 多活、热备、冷备,成本至少增加 50%、甚至 100%,还不算人力成本,故障概率也会增加
    很多决策者往往会忽略、无视这些因素
    salmon5
        14
    salmon5  
       2 天前
    A 供应商对象存储 10 万 QPS 、100Gbps 带宽、DB 10 万 QPS
    抽象层 怎么保证:
    B 供应商对象存储 10 万 QPS 、100Gbps 带宽、DB 10 万 QPS ,业务基本上无感知?
    zhengfan2016
        15
    zhengfan2016  
       2 天前   ❤️ 1
    你是否想寻找 docker 和 docker-compose ?
    salmon5
        16
    salmon5  
       2 天前
    这个抽象层有点像皮包公司( 2-3 个员工)( 2-3 QPS 的业务),随时可以换办公室;
    如果是很大的业务量呢?( 20000-30000 个员工)( 20000-30000 QPS 的业务),随时可以换办公室?公司停业 30 天?
    salmon5
        17
    salmon5  
       2 天前
    所以这个抽象层,终究是个鸡肋,很难通用,小业务玩玩可以
    COW
        18
    COW  
    OP
       2 天前
    @salmon5 我没说搞跨云多活,看我前面的回复,我只是针对 IaC 这一层实现,目的是云厂商之间快速迁移
    salmon5
        19
    salmon5  
       2 天前
    @COW 没这么简单,还涉及到有状态的数据同步
    salmon5
        20
    salmon5  
       2 天前
    比如 OSS 和 S3 ,如果担心 S3 炸了,但是 S3 又有 N PB ,甚至 EB 级别的数据?怎么快速迁移呢?这部分往往是最难的
    crysislinux
        21
    crysislinux  
       2 天前
    这样搞就只能用多个厂商 features 的子集了。我是无法接受的。
    gam2046
        22
    gam2046  
       2 天前
    理论是这么个理论,但实践很难落实。

    一方面云上组件,在不同厂家里提供的能力不完全一致,你的抽象层很难写,理想情况下,抽象层提供一个不同厂家能力的交集,但是一开始你也不知道后续要对接什么厂家,所以你也不知道交集到底有多大。
    salmon5
        23
    salmon5  
       2 天前
    @crysislinux #21 是的,肯定没法接受的;原厂至少都是国际大厂,bug 、性能、功能、SLA 上都基本能保证的
    SenLief
        24
    SenLief  
       2 天前 via iPhone
    主要是保证数据一致就好吧,迁移的时候无非就是迁移数据
    Alliot
        25
    Alliot  
       2 天前
    IaC 能实现低成本的基础设施跨云重建, 但是业务不是简单的基础设施重建就能 OK 。
    sslyxhz
        26
    sslyxhz  
       2 天前
    多云、混合云.. 状态、同步、网络各方面都一堆隐性麻烦,只能说看着很美好,实际成本挺高

    个人项目玩玩倒是挺好的
    jsq2627
        27
    jsq2627  
       2 天前 via iPhone
    过度 vender lock-in 和过度 vender indenpendent 都会提高成本,权衡折中吧
    COW
        28
    COW  
    OP
       2 天前
    @salmon5 如果只考虑最基础的云服务,比如 EC2 这种,能自建的都自建,其他的不做抽象,比如 S3 这种就不会考虑。
    COW
        29
    COW  
    OP
       2 天前
    @wanniwa 所以你们是自建的控制层和状态层吗?云函数挺吸引我的,不知道实际成本高不高
    adgfr32
        30
    adgfr32  
       2 天前 via Android
    数据库,对象存储呢,这种有状态的东西不是说切就切的。
    正式环境切换都得找个流量低谷,提前发公告,切完专人盯着。
    adgfr32
        31
    adgfr32  
       2 天前 via Android
    切完指不定哪个犄角旮旯有一个路由没配,dns 有问题,白名单没开,你就排查吧
    ajunno
        32
    ajunno  
       2 天前   ❤️ 1
    事实上各家参数都没有对齐,甚至对于 IaC 产品的设计理念也有差异。2022 年左右做 IaC ,用 terraform ,从 A 云切换到 T 云,可不止是改了个 provider 就可以的,踩了很多坑,也提了不少工单。感受到了理想和现实的差距。
    kenvix
        33
    kenvix  
       2 天前   ❤️ 1
    数据库和对象存储这种有标准协议的很好说,但是 FaaS 这种就难办了,考虑灵活性最好是别用
    COW
        34
    COW  
    OP
       2 天前
    @kenvix 为什么这么说,不是号称无状态的吗,按道理迁移应该更简单才对(虽然我没用过,怕隐形收费)。
    Ketteiron
        35
    Ketteiron  
       2 天前   ❤️ 1
    @COW #34 不同厂家的 FaaS/Serverless 的 触发器、API 、SDK 、Runtime 都不一样,上多云约等于全部重写多次。函数是无状态的不代表没有平台依赖性。
    https://github.com/serverless/serverless/issues/9583
    leeg810312
        36
    leeg810312  
       2 天前
    没那么多钱的,你想多了,多个云切换就是假命题,2 个全套就 2 倍成本,不说基础设施,就说开发成本,你总得 2 个云上都开发测试过才行,50w 变成 100w ,时间 3 个月变 6 个月,哪个老板能给你这样批项目预算和计划。这个适配层你还得保持维护,各个云任何一个接口更新你都得测试,有什么好处值得这么维护一个庞大的适配层呢?出了云存储这种变化相对少的 SaaS ,我还真没见过几个做跨云的 API 适配。新闻看到过吧,好多公司因为 AWS 或 Azure 云关键性故障就停摆几小时,你多大的项目还要搞成多云切换?大公司都没有想过这样做。
    tabliu
        37
    tabliu  
       2 天前
    看体量,单 region 体量年消耗几百万的话完全可以实现多云多活,体量到了一定级别就很难切量了,你想切,其他云未必能接的了。
    dko
        38
    dko  
       2 天前
    这个你不用操心,当你体量上来了,新厂商会派工程师上门给你评估和迁移的,出了事儿也都是他们赔
    经历过线下到腾讯云上云,腾讯云迁移阿里云等等。。
    NewYear
        39
    NewYear  
       2 天前
    在这里你很容易得到反对的答案。

    但我必须要和你说,早就有人在做这样的尝试了,我印象中有一个开源项目就是干这个的,抹平每个云厂商的差异。

    当然前提是你使用云厂商的各种服务,也是要差不多规格的才行,否则逻辑不通。

    这个最好你一开始就至少同时用 2 个服务商,这样要迁移都不是问题。

    上面大家和你说的都是“风险点”,你只要提前考虑进去就行。



    像阿里云之类的,也不是出事一次两次,你真的愿意每次都停下来等他们恢复吗?甚至在有可能丢失数据的情况下。

    像很多公司,业务是不准停下来的,停下来公司的运作就出问题了,马上要安排放假,否则就是巨大的经济损失。
    wanniwa
        40
    wanniwa  
       2 天前
    @COW #29 主要看你们用主机做什么,我们公司是拿主机和云函数执行任务。执行完任务就抛弃,或者没有任务就抛弃,云函数直接省的钱不是一点半点,太便宜了。如果你们公司对主机需求量非常大,且业务场景符合的话,切换到云函数,公司要降本的 kpi 能超额完成非常多。
    wanniwa
        41
    wanniwa  
       2 天前
    @COW #29 是的我们这边自己会维护主机的状态和开关机相关的控制。我们机器内部也会有心跳上报,也会调用云厂商接口同步实例的状态,多方面保证任务不丢,机器不卡死,能正常分派任务,任务多时自动购买云主机,少时自动关机。你可以理解成一个个云主机终端都由我这边汇总控制。 但是后面我们都往云函数切了,就跟接口一样调用执行任务所以成本降了非常多。云函数每个厂商的接口我也做了适配也是可以来回切流量
    wanniwa
        42
    wanniwa  
       2 天前
    @COW #29
    smilingsun
        43
    smilingsun  
       1 天前 via Android
    lizy0329
        44
    lizy0329  
       1 天前
    我的建议是跟某个云深度绑定,他死,你死。快速验证市场,慢慢迁移到自建架构上
    zmcity
        45
    zmcity  
       1 天前
    除非你只用裸金属服务器,对等连接,对象存储,其他都基于这三者自建,不然别想了。
    untitledabc
        46
    untitledabc  
       9 小时 20 分钟前
    担心啥绑定,你想迁移,厂商立马分分钟帮你一起整。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   947 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 19:05 · PVG 03:05 · LAX 12:05 · JFK 15:05
    ♥ Do have faith in what you're doing.