在科幻小说中,三体人用两粒智子锁死了人类的科技创新,而现实生活中,云厂家用RDS锁死了企业的数据库应用创新。IAAS/PAAS/SAAS亦或是前些年比较热的DAAS现在已经很少有人提了,几年前某企业讨论上云的时候我建议选择一个对于PAAS比较友好的IAAS云平台,通过自研逐步完善PAAS和SAAS。不过我的建议没有被采纳,客户还是经受不住大厂的诱惑,选择了某大厂的云平台。作出选择后的几年,似乎IT变得简单多了,不过几年后仔细算算账,好像还是高兴得早了一点。
数据库刚刚上云的时候,朋友和我说,自从上了云,用起来很方便,省去了数据库规划、数据库部署的繁琐,甚至连运维、优化都不需要了,云平台全给你搞定了。当年用Oracle还三天两头出问题呢,自从数据库上了云,出问题大不了重启一下,或者切一下备库就OK了。我当时也不好说你未来会遇到麻烦的,于是只能呵呵。几年之后的今天,他们突然发现当数据库上云进入深水区的时候,不单核心业务数据库上云遇到了瓶颈,连以前十分好用的RDS也开始频频出问题了。
大型企业上云的大方向是没问题的,很多企业都选择了多云融合的技术路线,既购买了功能完整,技术水平很高的大厂私有云,又保留了自建的开源云平台,甚至还保留了部分前些年建设的虚拟化资源池。不过有些企业走得较为激进,选择了单一云技术路线,全面拥抱某个大厂的云技术,这样就为以后的“云锁定”埋下了祸根。
当你点亮一棵树的时候,很可能就已经拉黑了整个森林。这还不是最坏的,当你忘记这片森林,专注于这棵树的时候,你会发现,这棵树也不被你完全拥有,当年想摘取某片叶子的时候,你发现这是一片金叶子,你还必须付出很多金子才能真正拥有它。没错,你买的只是云底座和保持云运营所必须的组件,很多漂亮的树叶都是待价而沽的,只要你肯付出,你一定能拥有。不过价钱么,不好意思,只此一家,别无分店。
对于某些企业来说,钱还真不是一个问题,能花钱买来的创新也是创新。只不过如果你上了云,那么你就必须按照云的规矩来用你的数据库。你想创建RDS时候使用MySQL 8.0,不好意思这个云底座还不支持,你必须升级云底座才能使用,否则你就老老实实的用5.6吧。
当你老老实实的在MySQL5.6上优化SQL,抖抖霍霍的确保系统能正常运行的时候,你突然发现,你的RDS已经达到了规格极限了。能不能通过调参扩大RDS的规格极限?不行,云底座不支持,你干脆拆库吧,一个数据库就不应该搞那么大,搞几个TB那么大的数据库,这应用架构设计不合理啊。
在这种体系中,你无需创新,只要按照云厂家给你点亮的技术树去开展你的IT工作就行了。对于有些企业来说,这也许不是坏事,而是一件好事。而对于某些面临数字化转型的大型企业来说,被锁死数据库应用的创新能力就不一定合适了。前阵子一个客户想在云平台上实施实时数仓项目,云厂商立即推出一个全家桶,不知道这个全家桶好不好用,一看报价客户立马就怂了。最主要的还不是价格贵,云平台上的所有东西都是按容量销售的,对于OLTP系统来说还好,对数仓、数据湖这种容量增长十分迅猛的系统来说,就不得不考虑了。一个更大的问题是,云上的全家桶并不是一个完全开放的体系,一旦用上,今后整个研发堆栈也应用堆栈只能围绕这个平台建设,自己想在这个技术发展十分迅速的系统上搞点创新也几乎不可能了。
实际上受云厂商锁定影响最大的还是国产数据库。现在很多企业都在高信创,不过几乎所有的商用云平台对信创数据库产品的支持都很差。这是必然的事情,基于所有的云平台大厂都有自己的“云原生数据库”产品,既然有原生的,你为啥还要用野生的。信创直接用我云上自带的数据库产品不就行了。
苦逼甲:云老大,我要在你的云上上个国产数据库,你能支持一下吗?
云老大:没问题,你把数据库装虚拟机上就行了。
苦逼甲:虚拟机不行啊,性能不行。云上的云盘性能太差。
云老大:我云有高性能块存储,跑国产数据库飞快。给您来一个?
苦逼甲:好啊好啊,赶紧来一个吧!
云老大:好的。…,别忙,你没买高性能块存储,得付费。
苦逼甲:…?,(咬咬牙),买一个吧?贵不贵。
云老大:有点小贵,不过你买得起的,放心,我会给你最优惠的价格。哦,不过,你的云底座版本太低了,要上高性能云盘,你得先升级云底座。
苦逼甲:你那个云底座升级太贵了,我升不起啊,那还是算了,看看有没有其他办法吧。你们的RDS能不能支持一下国产数据库呢?
云老大:你老大提的需求,当然得支持。不过我们给你们私有化定制的功能,得收点费。
苦逼甲:明白,收费是合理的,贵不贵?
云老大:也不太贵,比升级云底座略贵一些。
苦逼甲:KAO,还是玩不起。还有其他办法吗?
云老大:其实我云有云原生数据库啊,你直接用我云的云原生数据库不就行了。
苦逼甲:你们的云原生数据库,是自主研发的吗?
云老大:当然是了,而且和大名鼎鼎的屁股数据库完全兼容。
苦逼甲:那行吧,也只能这样了。
……一年过去了
苦逼甲:云老大,救急。你的全局临时表的全局锁什么时候能改善一下啊,现在应用动不动就锁死了。
云老大:我们的云原生数据库的新版本已经把这个BUG修复了。你升级就行了。
苦逼甲:拜托抓紧帮我升级数据库吧。
云老大:没问题,…,哦,不过你的云底座版本太低了,不支持这个数据库的新版本。你把云底座升级了,才能升级数据库。
苦逼甲:???????