关于云计算产品的标准,前段时间在群里讨论过,这里做个沉淀。
这个要从云计算的 Lock-In 说起,一家企业如果仅仅使用某个云的 IaaS,其实还是可以相对容易的迁移到另一家云,就是折腾点。但是如果用到了 PaaS 层,且大规模使用,比如 DB、缓存、消息、分布式存储和大数据等等,那基本就算是被 Lock-In 了,也就是被锁定在这家云上了,如果要动,那就是伤筋动骨了。
IaaS 能相对容易地迁移,因为 ecs、ec2、cvm 这样的产品,相对标准,OS 也相对标准,与业务的耦合基本没有,但是 PaaS 这里就五花八门了,使用姿势也各种各样,且直接跟业务逻辑有关。
举个数据库的例子,现在每家云标配产品是 MySQL,但是同时又有自己的自研 DB,比如阿里云的 PolarDB,腾讯云的 TDSQL,AWS 的 Aurora 以及 Azure 的 Cosmos 等等。
这些就都有自己的设计理念,随之而来的接口、路由、存储、规则等等就不一样。如果一旦使用某家云的 DB,要换另外一家,就非常非常麻烦了,特别是对于一些研发能力不那么强的公司,基本就是不太可能的事情。
所以,这里就有一个标准问题。
那各家云能不能统一这个标准呢?目前看,貌似不太可能,至少短期内不太可能,因为至少不能被别人说,你看 xx 云的数据库,跟 yy 家的没什么两样,感觉就是抄人家的,所以每家云厂商还是要有些自己的特色。
那未来有没有可能统一呢?或许有可能,但是我认为,这个标准一定是云厂商之间竞争出来的。
举个最典型的例子,比如 AWS S3,就是因为这是 AWS 最成熟且应用最广泛的产品,很多周边的生态和产品,以及客户的业务,都是基于 S3 来设计开发的,这里要感谢 Netfilx 的大数据业务当时对 S3 产品的大规模应用,不断打磨出这样一个优秀和经典的云产品。
后来其它的云厂商起来后,发现要是从 AWS 撬动客户过来,或者为了主动融入到云这个生态中,就必须得兼容 S3 协议和接口,所以大家纷纷去适配它,结果 S3 就成了事实上的云存储标准。
所以,从这个角度,未来某个云产品一定要能有足够多的应用,甚至形成生态,对其它云厂商的产品造成压倒性的优势,标准才有可能被竞争下来。
无论从短期还是长期看,这种竞争态势会非常激烈,而且未来极有可能是几分天下的局面。
不过,当云厂商之前激烈竞争的时候,这也给了开源产品一个很好的机会,因为,如果用户不愿意被某家云给 Lock-In,选择广泛而通用的产品会更好,比如 MySQL、Redis、Kafka、ES、MongoDB 和 PG 这些,以及当前国内最优秀的开源产品 TiDB。
如果能够做到足够大的用户生态,云其实会主动过来兼容这个生态,云厂商之间竞争不下来的东西,开源产品反而会有更多的机会。这部分内容会再起一篇文章写写开发者在其中的作用。
还有就是,云和开源产品商业利益怎么划分,也是当前纠缠不清的一个问题,这也是另一个话题了。
本文转载自成哥的世界公众号。
原文链接:https://mp.weixin.qq.com/s/MBqTStTTx804VcHtvpf2mg
评论