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

2018-07-10 18:30:38 +08:00
 Livid

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

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

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

6167 次点击
所在节点    Docker
23 条回复
finian
2018-07-10 18:35:58 +08:00
Serverless infrastructure 这个比较接近

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


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

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

离用户最近这个在国内比较重要因为各大 ISP 都不削做 peering

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/469681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX