V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Docker

未来会不会有这样的一种基于 Docker 或者其他容器技术的云服务

  •  
  •   Livid · 2018-07-10 18:30:38 +08:00 · 6137 次点击
    这是一个创建于 2328 天前的主题,其中的信息可能已经有所发展或是发生改变。

    类似 GitHub Pages 那样,把代码 push 到一个 Git 仓库之后,就可以部署到世界各地距离用户最近的数据中心。然后根据程序实际消耗的运算时间和网络流量计费,不需要选择可用区( Availability Zone ),不需要选择机器配置。

    将来会有这样的一种服务么?或者现在已经有了?

    相比 GAE 及 Heroku 的不同之处是:

    • 代码是部署到全世界距离用户最近的数据中心,而不是某个城市的某个可用区
    • 运行环境和依赖安装的限制更少
    • 计费模式更简单
    23 条回复    2018-07-13 05:13:52 +08:00
    finian
        1
    finian  
       2018-07-10 18:35:58 +08:00   ❤️ 1
    Serverless infrastructure 这个比较接近

    《世界是 container 的,也是 microservice 的,但最终还是 serverless 的》
    http://liubin.org/blog/2018/05/04/the-world-is-full-managed/
    zhjits
        2
    zhjits  
       2018-07-10 18:44:38 +08:00 via iPhone   ❤️ 1
    est
        3
    est  
       2018-07-10 18:49:31 +08:00   ❤️ 1
    serverless 其实就是 GAE。其实我觉得 cloudflare 的 worker 符合 L 大想要的「离用户最近」的理念。


    https://blog.cloudflare.com/serverless-performance-comparison-workers-lambda/
    Livid
        4
    Livid  
    MOD
    OP
       2018-07-10 18:51:03 +08:00
    @est 或者其实“离用户最近”是一个伪需求,AZ 的存在有其经济学和工程上的必要性?
    monsterxx03
        5
    monsterxx03  
       2018-07-10 18:56:17 +08:00
    代码离用户近和前面套 CDN 好像没区别吧, 数据要落地的话, db 跨 region 实时同步总不是那么好搞的.
    LukeChien
        6
    LukeChien  
       2018-07-10 19:01:09 +08:00 via Android
    各个数据中心距主数据中心必须有高速稳定低延时的专线才能实现
    Livid
        7
    Livid  
    MOD
    OP
       2018-07-10 19:02:02 +08:00
    @monsterxx03 数据库及大文件存储要做到离用户最近这个是否可能,或者是否有必要,我也没有想明白。

    目前觉得数据库和存储可能还是需要选 AZ,用户用 OAuth 或者其他方式在边缘完成认证之后,通过某个算法,为其数据存储分配一个距离他相对较近的 AZ。
    mcfog
        8
    mcfog  
       2018-07-10 19:03:33 +08:00
    嗯嗯,算力分布好做,数据分布难做,事务分布 (还要自动地,业务无关地) 那是地狱难度了
    hu6360567
        9
    hu6360567  
       2018-07-10 19:05:20 +08:00 via Android
    容器对应的是业务,是能够方便交付,方便编排
    whileFalse
        10
    whileFalse  
       2018-07-10 19:09:21 +08:00   ❤️ 1
    代码部署在哪里都不重要,关键是 db。
    用 AWS 的 CloudFormation StackSets 可以很容易地将代码一键部署到全球多个 Region,然后通过 Route53 分发用户。
    但是,用户数据怎么办呢?
    如果不同用户的数据相对隔离,可以将用户在注册时自动分配至临近的 Region ;如果用户迁移了地理位置,再通过自动或者用户手动指定的方式迁移数据。
    或者使用 AWS DynamoDB GlobalTables,可以在不同的 Region 中自动同步。
    说到底,这样的解决方案对业务形态是有限制的。如果 @Livid 感兴趣,可以联系我讨论。
    monsterxx03
        11
    monsterxx03  
       2018-07-10 19:13:22 +08:00 via iPhone   ❤️ 1
    @Livid 数据分区存储,具体怎么存储,感觉还是个业务导向的事,google spanner 号称 global distributed, 而且不是最终一致性,没用过,不清楚跨 region 对业务有什么限制,直觉上没那么完美
    whileFalse
        12
    whileFalse  
       2018-07-10 19:36:48 +08:00
    @est #3 cloudflare worker 是基于 v8 做的隔离而不是 lambda 的容器,酷。
    rio
        13
    rio  
       2018-07-10 19:43:05 +08:00   ❤️ 1
    就是 Edge Computing。目前还没有这么完美的产品,但有些部分可以体验了,比如 Cloudflare Workers 和 AWS Lambda 都提供了 serverless 的体验,不用关心服务器的配置、位置等细节,计费也比较简单;又比如 Hyper.sh 提供了直接从 Dockerfile 部署到运行环境的体验,加个钩子到 GitHub 也不难实现 push 后直接部署。
    JohnSmith
        14
    JohnSmith  
       2018-07-10 20:35:31 +08:00 via Android
    是不是说的边缘计算
    Cbdy
        15
    Cbdy  
       2018-07-10 20:38:36 +08:00 via Android
    这不是函数计算吗?
    Tink
        16
    Tink  
       2018-07-10 20:53:14 +08:00 via iPhone
    雾计算和这个类似
    Kilerd
        17
    Kilerd  
       2018-07-10 21:43:15 +08:00
    如果抛开 docker 的话。serverless 最符合你的这个情况了。
    wtbhk
        18
    wtbhk  
       2018-07-11 00:01:49 +08:00
    主要还是 DB 放在哪,如果要追求分布式就一定要牺牲一致性
    scnace
        19
    scnace  
       2018-07-11 00:40:31 +08:00 via Android
    开个脑洞 如果数据分 Region 要考虑到分布式一致性很难(甚至没法做到完全实时)的话 那么是不是可以考虑有那么一种数据压缩技术 可以把数据碎片化之后存到每台接入 Distribute Network 的设备上呢(当然是考虑了 Region 的概念的) 那么是不是可以把每个地方(物理)都当成一个 db 集群了啊 然后随着用户的移动(物理) 再把用户的数据进行一次重新分发(感觉这个剧本哪里看过来着)
    est
        20
    est  
       2018-07-11 10:15:25 +08:00 via Android
    @Livid AZ 一般是指一个机房 AZ 挂了不影响别的 AZ。异地多活。

    离用户最近这个在国内比较重要因为各大 ISP 都不削做 peering
    noonempz
        21
    noonempz  
       2018-07-11 12:11:16 +08:00
    怎样衡量距离用户最近?哪个用户,哪些用户。
    night98
        22
    night98  
       2018-07-11 14:24:12 +08:00
    我的想法是未来云服务商会出现自有语言或自有 sdk,按照指定方式编程即可完成分布式事务,分布式文件,分布式事务等一系列操作,而只需要和普通单机一样编程即可,并且不再需要管理数据库等,只需要指定需要的字段,按照服务商提供的 key 就可直接连接数据库进行操作。
    部署时只需要打包发送并点击部署按钮即可,会自动进行部署,也可以选择高级部署方案,选择部署的国家或地区机房,无需选择资源,包括 cdn 等方案均自动完成,只需要按月进行后付费即可。
    Sliverburger
        23
    Sliverburger  
       2018-07-13 05:13:52 +08:00
    楼上的都说 serverless,这东西没办法满足“部署到世界各地距离用户最近的数据中心”的要求把?
    当然通过 Cloudformation 启动多个 lambda 倒是可以考虑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   960 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:04 · PVG 05:04 · LAX 13:04 · JFK 16:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.