从阿里云全面崩溃看,真的需要「快速跨云迁移」

2023-11-14 20:03:40 +08:00
 Jianzs

众所周知,前天( 11.12 )阿里云又双叒宕机了,影响面非常大。一个小时过后,仍然有很多服务还没有完全恢复。这场事故中,给你的产品带来怎样的影响呢?

从这可以看出来,云作为基础设施真的非常重要。但与水电在使用标准上统一,在管理上分布不同(很好地避免了单点),云目前还处于使用标准不统一,各个云服务提供商“各自为政”的情况。这就导致了,在你的服务出现问题后,你却没法及时将业务迁移到另外一家服务提供商。这或许就意味着云距离成为真正的基础设施还需要再进一步,我在之前一篇文章中提到,有效的接入标准或许是促进云成为真正基础设施的关键因素。

你想一下,如果一份代码能够同时适配阿里云、华为云、腾讯云,甚至 Kubernetes ,那么在某一家发生异常后,你就能在极短的时间完成业务服务的迁移。这算不算给自己的服务提供更高的可用性呢?

如何实现云与代码的适配?

这里,代码与云服务提供商的适配有两个方向:1 )云适配代码:统一多云的接入标准使得相同代码能够在多云执行; 2 )代码适配云:提供自动化工具实现代码自动对多云的封装适配。

“统一多云的接入标准”目前看来不可能,各家云服务提供商都还在“努力”提供更多的云服务,并且都希望提供独有的特性以构建自身的壁垒,保留自己的用户。

“工具自动化封装代码以适配多云“是一个可以尝试的途径,并且目前也有产品正在试足这个领域,例如 Winglang,也包括我自己 —— Plutolang

自动化封装代码以适配多云:Plutolang

Plutolang 目标是:让用户仍使用常用的编程语言(如 TypeScript 、Python ),通过程序分析等手段完成业务代码对基础设施的依赖分析,最终,根据分析结果,以及对代码进行拆分,自动完成依赖组件的自动创建,和代码的自动发布。这样使得在保持现有生态便利性的情况下,降低上云的门槛,与多云迁移的负担。

感兴趣可以先看一个 Plutolang 的 Demo 视频,2 分钟,视频基于 TypeScript 实现一个多路由的 HTTP 服务在 AWS 与 K8s 的发布部署: 「 Pluto 云开发」

Plutolang 目前基于 TypeScript 进行实现,能够完成上图所展示的能力,也是 Demo 视频所对应的内容。用户编写一段 TS 代码,可以包含多个路由,以及 KV 数据库、消息队列等 BaaS 组件,不需要去控制台操作,也不需要编写基础设施代码,执行 pluto deploy 后,就能自动创建依赖的 BaaS 组件,以及将各个路由分别发布成 FaaS 组件。

想要动手试试可以 Fork 这个在线开发环境: Plutolang | CodeSandbox

回到文章的主题,从上图代码中可以看到,Plutolang 没有直接依赖于各个云平台的 SDK ,而是依赖于 @plutolang/pluto,为开发者屏蔽了底层不同云的异构性。这样,开发者开发时不与具体云服务提供商绑定,利用 Pluto 就能无缝地在多个云之间进行迁移部署。

当然,以上也只是完成计算服务的迁移,那么数据呢?还需要更多的工作去做,至少在计算上能够避免运营商锁定,在紧急时刻,可以及时将业务迁移到备份环境中。

想要进一步了解可以阅读:

同时,Plutolang 还处于非常早期的阶段,欢迎感兴趣的大佬们参与共建,如果你在使用 AWS 或者 K8s ,可以给我们提需求了。同时有任何想法或者建议,都非常欢迎,说出来,你的想法就会在后续版本实现。欢迎加入我们的 Slack 和 钉钉群:40015003990 。

11397 次点击
所在节点    推广
80 条回复
kuituosi
2023-11-15 09:49:28 +08:00
这方向都是错的
evilmiracle
2023-11-15 09:58:33 +08:00
不需要多云迁移,想要解决单云故障带来的单点问题,只需要把同样的应用和数据部署到多套云上即可;所有的应用和数据保持一致,部署在阿里云,腾讯云,天翼云,AWS ,GoogleCloud ,Azure ;所有数据库和配置文件,走专线完成同步,所有应用在发版的时候,每个云单独部署,云前走负载均衡,流量平均分摊到各个云上。

这样可以保证当某个云挂掉之后,可以实现秒切,用户无感知,因为部署在其他云上的应用和数据是实时同步的,当然前提是数据和配置文件的同步没有问题
gimp
2023-11-15 10:01:20 +08:00
像阿里云这次这么大的故障,躺平就完事儿了。
salmon5
2023-11-15 10:10:56 +08:00
@evilmiracle #42 不切实际,多部署 1 个云,成本翻 1 倍,你这成本 6 倍。工程复杂度指数上升。更容易出故障。
假如你的小区物业门禁坏了 1-2 小时,5-10 年碰到了一次,你会一怒之下再买几套房,来防范这种风险?
chendy
2023-11-15 10:11:30 +08:00
@Livid 推广内容
salmon5
2023-11-15 10:11:38 +08:00
@evilmiracle #42 完全是纸上谈兵。
salmon5
2023-11-15 10:12:38 +08:00
@gimp #43 ,大部分公司只能躺平,这样成本是最低的。
salmon5
2023-11-15 10:51:40 +08:00
躺平不代表不追究阿里云的责任,可以要求给出故障报告、上门解释道歉、后续的改进措施、赔偿等。
Masoud2023
2023-11-15 10:56:42 +08:00
那你来从这个方案的角度来讲一下怎么处理阿里云 OSS 这样级别的问题?
coolcoffee
2023-11-15 11:23:07 +08:00
本来云服务就已经很贵了,然后再来个费用 x2 、x3 ,云厂商做梦都要笑醒。
vanityfairn
2023-11-15 11:31:49 +08:00
推广自己的东西就就推广呗。当个标题党干啥呢?提升容灾能力,不做多套云部署?就是做一个拷贝工具么?
云服务商这么大的故障,中小公司遇到就是躺平好了。要求服务商出报告,谈赔偿就好了
mightybruce
2023-11-15 11:41:01 +08:00
大家散了吧, 楼主很明显不是做基础设施开发或运维开发, 前端还是和基础设施中间件团队多交流吧, 增加一些知识了解先。
pkoukk
2023-11-15 11:52:15 +08:00
业内公司都是多云融合,一套服务会同时布在几个不同的云服务商那里,然后做内网打通
不需要迁移
了解下业内行情再做东西吧,别闭门造车
pkoukk
2023-11-15 11:55:27 +08:00
@salmon5 #44 我司就是云备胎,有不少公司就这么干了。成本根本不会翻倍,原本你需要 100 台机器,100 台全在阿里云。现在 50 台阿里,50 台腾讯,20 台备胎小厂就行了,谁说非要全套都在一个厂了?多云混合网络互通的方案各家都有,还有专门做多云运维管理工具的,这行已经很成熟了,不是纸上谈兵。
bthulu
2023-11-15 12:08:43 +08:00
我司就租了一架 B2 轰炸机装了个机房在里面, 哪里崩溃了就飞哪里去.
目前存在的问题是, 当同时多地崩溃时, 一架 B2 不太够用.
现在公司正在讨论全球每百万平方公里配一架 B2, 就是费用有点大, 最近正在寻求新的全球全天候战略合作伙伴.
cnkuner
2023-11-15 12:12:53 +08:00
多云多活不是做不到,但是成本直接爆炸,这不是个技术问题啊。
shuson
2023-11-15 12:29:36 +08:00
cloud exit is coming
Jianzs
2023-11-15 12:42:25 +08:00
@Hyvi 的确,国内外部署是挺适合的场景,V 友有这方面的需要么?
Jianzs
2023-11-15 12:48:25 +08:00
很多 V 友都提到多云多活,但我个人感觉,这只能依赖于每个云都提供,且使用方式相同的计算组件吧,比如容器托管或 Kubernetes ,但是随着 Function as a Service 等能力的增强,其实利用好这些能力是有助于降低以往部署方式的成本的,而 FaaS 的适配方式各个云有显著的不同,这种情况下是不是就比较难做到多云多活了?

个人观点,欢迎来喷。
Jianzs
2023-11-15 12:53:14 +08:00
@mightybruce #52
@pkoukk #53 感谢建议,经验欠缺,会持续了解学习

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

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

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

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

© 2021 V2EX